我正在尝试使用自定义预处理功能在训练过程中将RGB图像转换为灰度图像。因此,我尝试为此使用 public void save(User user) {
userRepository.save(user);
}
。我的功能如下:
tf.image.rbg_to_grayscale
def prep_data(x):
x = tf.image.rgb_to_grayscale(x)
return x
datagen = ImageDataGenerator(preprocessing_function=prep_data,validation_split=0.15)
是使用train_generator
定义的。没有此自定义功能的训练效果很好,但是一旦使用它,就会出现以下错误:
ValueError:设置具有序列的数组元素。
从这个答案here来看,我假设我需要将输入更改为datagen.flow_from_dataframe(...)
,但是我不知道将rgb_to_grayscale
传递给函数的正确方法是什么。
关于如何解决此问题的任何想法?
答案 0 :(得分:1)
相反,您可以使用color_mode
的{{1}}参数并将其设置为flow_from_directory
以将图像转换为灰度。来自Keras docs:
color_mode :“灰度”,“ rbg”和“ rgba”之一。默认值:“ rgb”。图像是否将转换为具有1、3或4个通道。
答案 1 :(得分:0)
将RGB图像更改为灰度(示例):
img = image.load_img('/kaggle/input/cassava-leaf-disease-classification/train_images/'+train['image_id'][i], target_size=(28,28,1), color_mode="grayscale")