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

Keras模型预测输入形状不匹配问题解决方案咨询

解决Keras模型单图预测的形状不匹配问题

核心问题分析

报错的本质是模型期望输入带批量维度(batch dimension):训练时模型接收的是批量数据,形状为(None, H, W, C)(None代表任意样本数),但你传入的单张图像只有(H, W, C)三个维度,缺少了第一个代表样本数量的批量维度。

解决方案步骤

1. 为单张图像添加批量维度

在将图像传入模型预测前,用np.expand_dims为数组添加一个维度,把形状从(32, 32, 3)转为(1, 32, 32, 3)(1代表当前只有1个样本),匹配模型的输入要求。

2. 修正target_size参数的潜在问题

你修改target_size=(224,224)后出现的形状错误,大概率是图像加载后形状不符合预期。建议先打印图像数组的形状确认,再确保添加批量维度的步骤正确。

修正后的完整代码

import numpy as np
from keras.preprocessing.image import img_to_array, load_img
from tensorflow import keras

# 加载模型
model = keras.models.load_model('Faces/model/alexnet')

# 加载图像,target_size顺序为(高度, 宽度),需和模型输入一致
img = load_img('Faces/text.jpg', target_size=(32, 32))

# 转为数组并添加批量维度
x = img_to_array(img)
x = np.expand_dims(x, axis=0)  # 关键步骤:补充批量维度

# 执行预测
preds = model.predict(x)
print('Predicted:', preds)

如果需要使用224×224的输入,只需修改target_size=(224, 224),同时确保模型输入层确实是224×224×3的形状,之后执行同样的批量维度补充步骤即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 11:31:03