为了账号安全,请及时绑定邮箱和手机立即绑定

无法对组件 0 中具有不同形状的张量进行批处理

无法对组件 0 中具有不同形状的张量进行批处理

千万里不及你 2023-08-22 15:29:49
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)


查看完整回答
反对 回复 2023-08-22
  • 1 回答
  • 0 关注
  • 1536 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信