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

为什么Keras模型predict函数会报图像形状不匹配的警告与错误?

错误根因
  • 模型定义时的输入要求为(批量大小, 28, 28)格式,model.predict()会默认将输入的第一维识别为批量维度。你直接传入test_images[2]时,其原生shape为(28, 28),TensorFlow会自动把第一个28识别为批量大小,实际送入模型的输入维度变成了(28, 28),和模型预期的(None, 28, 28)维度不匹配,所以触发报错。
  • 训练阶段你对训练集做了/255的归一化处理,但预测时直接传入原始0-255范围的像素值,即使维度修正后也会导致预测结果偏差,必须同步做归一化。
修复方案

以下两种修改方式二选一即可:

  1. 用np.expand_dims为单张样本手动新增批量维度,同时完成归一化:
import numpy as np
# axis=0表示在最前面新增批量维度,处理后输入shape为(1,28,28)
pred_res = model.predict(np.expand_dims(test_images[2]/255, axis=0))
# 取概率最大的类别作为预测结果
pred_label = np.argmax(pred_res)
  1. 用切片方式取单张样本,切片操作会自动保留批量维度:
# test_images[2:3]的shape原生为(1,28,28),不需要额外调整维度
pred_res = model.predict(test_images[2:3]/255)
pred_label = np.argmax(pred_res)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 09:15:02