我的数据集是灰度图像的形式,这意味着是单通道,对吗?
我将代码中的input_shape从(64,64,3)改成了(64,64,1)
classifier.add(ZeroPadding2D(padding=(2,2), input_shape = (64, 64, 1)))
但是我得到了错误提示
Error when checking input: expected zero_padding2d_1_input to have shape (64, 64, 1) but got array with shape (64, 64, 3)
这是怎么回事?我怎样才能使用单通道input_shape (64,64,1)来运行训练?
完整代码可以在以下链接查看 Why my acc always higher but my val_acc is very small?
回答:
主要原因是您的所有图像都是RGB格式,并且默认情况下由keras的flow_from_directory读取为RGB图像。因此,您需要设置flow_from_directory以灰度模式读取您的图像,并将第一层的input_shape设置为(64,64,1)。
flow_from_directory的代码示例
train_datagen.flow_from_directory('dataset/training_set', target_size = (64, 64), batch_size = 32, class_mode = 'binary', color_mode = "grayscale")
)