InvalidArgumentError:無法批處理組件 0 中具有不同形狀的張量。第一個元素的形狀為 [224,224,3],元素 25 的形狀為 [224,224,1]。我已經重新調整了圖像的形狀,如您所見。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)然后我只需合并標簽和圖像數據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)問題可能出在損壞的圖像上還是我在代碼中遺漏了某些內容?
1 回答

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