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

TensorFlow Keras调用predict时np.array创建形状与原数据不符

报错原因分析
  1. 形状没有发生变化,你观察到的np.array(x[0])[0].shape为(128, 3)是因为你主动取了三维数组的第一维第0个元素,x[0]本身转成NumPy数组后形状依然是(128, 128, 3),该操作和你传入predict的输入无关,属于测试代码的误导。
  2. 报错核心是Keras的model.predict()要求输入必须携带批次维度,即输入形状第一个位为批次大小,你当前传入的单张图片形状为(128, 128, 3),缺少批次维度,predict会自动将第一个维度128识别为批次大小,认为你传入了128个形状为(128, 3)的样本,和模型要求的单样本形状(128, 128, 3)不匹配,因此抛出形状错误。
修复方案

两种常用方法都可以给单张图片补充批次维度:

  • 使用np.expand_dims扩展维度
model.predict(np.expand_dims(x[0], axis=0))
  • 使用np.newaxis插入批次维度
model.predict(np.array(x[0])[np.newaxis, ...])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 15:45:02