sqh4587 2017-10-25 09:10 采纳率: 0%
浏览 12497

如何在keras+tensorflow中对4通道图像如何输入并分类呢?

ImageDataGenerator默认的flow_from_directory函数中有个color_mode设置,我看文献中只支持‘gray'和'rgb',但我现在要处理的图像是RGBD的4通道图像,如何设置呢?求大师指点。
我尝试着将color_mode设置为'rgb',但是在第一层卷积层的输入数据类型,设置的是(width,height,4)的四通道格式,运行的时候出错了,提示如果我的color_mode设置成了‘rgb',那么自动生成batch的时候,依旧是会变为3通道格式。具体如下:

在flow_from_directory中的color为‘rgb'

 train_generator = train_datagen.flow_from_directory(
        directory= train_dir,  # this is the target directory
        target_size=(200, 200),  # all images will be resized to 200x200
        classes= potato_class,
        batch_size=60,
        color_mode= 'rgb',
        class_mode='sparse')

在卷基层的输入input_shape中设置为4通道

 model = Sequential()  # CNN构建
model.add(Convolution2D(
    input_shape=(200, 200, 4),
    # input_shape=(1, Width, Height),
    filters=16,
    kernel_size=3,
    strides=1,
    padding='same',
    data_format='channels_last',
    name='CONV_1'
))

运行后的错误提示如下:
ValueError: Error when checking input: expected CONV_1_input to have shape (None, 200, 200, 4) but got array with shape (60, 200, 200, 3)

怎样才能让keras接受4通道图像呢?我在stackOverflow中看到有人留言说4通道是支持的,但是我没有找到代码。

  • 写回答

2条回答 默认 最新

  • 一呆飞仙 2017-12-28 11:15
    关注

    我也在做RGB-D图片训练,并且已经成功了。你应该是配置文件没找对。1、因为是四通道嘛,config中要将MEAN_PIXEL改为 MEAN_PIXEL= np.array([123.7, 116.8, 103.9, 0])。2、如果有预训练模型,请把conv1之前的包括conv1的数据给去掉,具体名称你可以打印输出一下自己预训练集合中层的名称
    3、Keras在将图片导入时,类似为keras.layers.Input(shape=config.IMAGE_SHAPE.tolist(), name="input_image"),
    你看一下你config中IMAGE_SHAPE最后一维度有没有改成4
    就这些,希望对你有用。

    评论

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)