InvalidArgumentError:無法批處理組件 0 中具有不同形狀的張量。第一個(gè)元素的形狀為 [224,224,3],元素 25 的形狀為 [224,224,1]。我已經(jīng)重新調(diào)整了圖像的形狀,如您所見。def process_path(file_path=train_data): image_file= tf.io.read_file(image_dir+file_path+'.jpg') image_file=tf.image.decode_jpeg(image_file) image_file=tf.image.convert_image_dtype(image_file,tf.float32) image_file=tf.image.resize(image_file,[224,224]) return image_fileX_train = train_data.map(process_path)然后我只需合并標(biāo)簽和圖像數(shù)據(jù)train=tf.data.Dataset.zip((X_train,y_train))train=train.shuffle(buffer_size=64).batch(32).prefetch(1)base_res_model.fit(train,epochs=10,verbose=2)問題可能出在損壞的圖像上還是我在代碼中遺漏了某些內(nèi)容?
1 回答

12345678_0001
TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊
彩色圖像有 3 個(gè)通道:R、G、B。而灰度圖像只有 1 個(gè)通道。列表中的元素 25 是灰度圖像,而前面的索引是彩色圖像。解決這個(gè)問題的方法是將通道數(shù)傳遞到tf.image.decode_jpeg
如下:
imagefile=tf.image.decode_jpeg(image_file, channels=3)
添加回答
舉報(bào)
0/150
提交
取消