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。這應該可以正常工作。
添加回答
舉報