You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TensorFlow皮肤癌图像识别模型预测时形状不匹配错误求助

问题解决:TensorFlow皮肤癌图像识别模型预测形状不匹配

核心原因

Keras/TensorFlow的predict方法要求输入必须包含批量维度(即第一个维度代表样本数量),你传入的单张图像缺少该维度,导致模型误判各维度含义,引发形状不匹配错误。

解决步骤

在调用model.predict前,为图像数组添加批量维度即可修复:

修改后的代码

test = tf.keras.utils.load_img('./thumbnails/malicious/ISIC_0029615.jpg')
test = tf.keras.utils.img_to_array(test)
test = tf.image.resize(test, (256, 256))
test /= 255
plt.imshow(test)
print(test.shape)  # 输出 (256, 256, 3)
test = tf.expand_dims(test, axis=0)  # 新增:添加批量维度
print(test.shape)  # 输出 (1, 256, 256, 3)
model.predict(test)

报错细节解释

你看到的found shape=(32,256,3)是因为:当传入无批量维度的(256,256,3)数组时,模型会错误地将第一个维度(256)识别为批量大小,第二个维度(256)识别为图像高度,第三个维度(3)识别为图像宽度,完全不符合模型期望的(None,256,256,3)格式(None代表任意批量数)。添加批量维度后,模型就能正确映射各维度的含义。

额外注意事项

  • 如果之前尝试过reshape操作,需确保是reshape(1,256,256,3),避免通道或尺寸维度顺序错位。
  • 确认模型输入层定义为input_shape=(256,256,3)(通道在后格式),如果你的模型是通道在前格式(input_shape=(3,256,256)),则需先转置图像:test = tf.transpose(test, (2,0,1)),再添加批量维度。

内容的提问来源于stack exchange,提问作者Wiktor Fajkowski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 22:52:30