我是Keras的新手。
我正在研究Keras Xception模型(版本2.2.0),我已经成功地使用RGB图像进行了训练。
我的资源有限,因此已将图像转换为灰度图像以减小数据大小(我不确定这是否是正确的直觉)。我当前的数据集由灰度图像组成,正如我研究keras预训练模型所期望的3通道输入一样。我尝试了下面的代码来生成图像数据:
train_generator = train_datagen.flow_from_directory(
train_folder,
target_size=(img_width, img_height),
color_mode='grayscale',
batch_size=batch_size,
shuffle=True,
seed=seed)
,然后按如下所示构建模型:
model = xception.Xception(include_top=False, input_shape=(img_width, img_height, 1))
但是我得到了错误:
ValueError:输入必须具有3个通道;必须为0。得到了
input_shape=(257, 321, 1)
我已经检查了数据生成器功能中的 color_mode ,但没有找到任何解决方案。 如果有人可以帮助您解决问题,将不胜感激!
答案 0 :(得分:0)
根据Keras documentation中的规定:
input_shape:可选的形状元组,仅当include_top为False时才指定(否则,输入形状必须为(299,299,3)。它应该具有3个输入通道,宽度和高度不小于71.例如(150,150,3)将是一个有效值。
您将无法为该模型提供灰度图像。如果存在内存问题,则可以尝试减小图像的宽度和高度,或者使用较小的批处理大小进行训练和推理。