0

我正在尝试使用自定义预处理功能在训练期间将 RGB 图像转换为灰度。因此,我尝试使用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是使用 定义的datagen.flow_from_dataframe(...)。没有这个自定义函数的训练工作得很好,但是一旦我使用它,我就会收到以下错误:

ValueError:使用序列设置数组元素。

从这里的答案来看我认为我需要将输入更改为rgb_to_grayscale,但我不知道传递x给函数的正确方法是什么。

关于如何解决这个问题的任何想法?

4

2 回答 2

1

相反,您可以使用color_mode参数flow_from_directory并将其设置'grayscale'为将图像转换为灰度。来自Keras 文档

color_mode:“灰度”、“rbg”、“rgba”之一。默认值:“RGB”。图像是否将转换为具有 1、3 或 4 个通道。

于 2018-11-22T10:10:44.480 回答
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")
于 2020-12-07T01:24:23.590 回答