5 回答

TA贡献1880条经验 获得超4个赞
我遇到了这个错误,因为我使用已转换为灰度的图像作为我的数据。如果有人这样做,您可以从灰度转换为彩色格式,或者在不转换为灰度的情况下重新准备数据,这就是我所做的。
根据我找到的解决方案:“也许你正试图将灰度图像输入 CNN,它需要一个彩色图像。在 Keras 中找到输入的形状,例如 print(model.input.shape),你会得到例如 (None, 224, 224 , 3) 并且您的输入 blob 必须具有相应的形状,因此对于灰度图像,您必须将其转换为(正式)彩色图像(所有三个通道都将相同)。但是,不要忘记您还需要知道输入 blob 的其他方面 - 均值、范围、偏差……具有良好的形状,它会计算一些东西,但如果不考虑这些方面,计算的结果就不好”

TA贡献1757条经验 获得超8个赞
我找到了答案!就我而言,以下程序帮助了它。
XXX = tf.convert_to_tensor(XXX[:,:,:3])
我希望它也能帮助你。谢谢你。

TA贡献1878条经验 获得超4个赞
如果您的模型如下所示:
model = tf.keras.Sequential([
tf.keras.layers.Conv2D(16, (3, 3), activation = 'relu', input_shape = (150, 150, 3)),
tf.keras.layers.MaxPooling2D(2, 2),
tf.keras.layers.Conv2D(32, (3, 3), activation = 'relu'),
tf.keras.layers.MaxPooling2D(2, 2),
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(512, activation = 'relu'),
tf.keras.layers.Dense(10, activation = 'softmax')
])
将input_shape(在第一个卷积层)的值从(150, 150, 3)更改为(150, 150, 4)。
仅将元组中的最后一项(此处为 3)替换为 4。这应该可以正常工作。
添加回答
举报