代码之家  ›  专栏  ›  技术社区  ›  AaronDT

使用tf.image.rgb_to_grayscale的自定义预处理函数-值错误:使用序列设置数组元素

  •  0
  • AaronDT  · 技术社区  · 7 年前

    我正在尝试使用一个自定义的预处理功能,在训练期间将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(...) . 不使用此自定义函数的培训效果很好,但是一旦使用它,就会出现以下错误:

    值错误:用序列设置数组元素。

    从这个答案判断 here ,我想我需要将输入更改为 rgb_to_grayscale ,但我不知道正确的传球方式是什么 x 到函数。

    你知道怎么解决这个问题吗?

    1 回复  |  直到 7 年前
        1
  •  1
  •   today    7 年前

    相反,您可以使用 color_mode 论证 flow_from_directory 并将其设置为 'grayscale' 将图像转换为灰度。从 Keras docs :

    颜色模式 :一个“灰度”、“rbg”、“rgba”。默认值:“rgb”。是否将图像转换为具有1、3或4个通道。