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

使用Keras预测单张图片失败:输入维度不匹配问题求助

解决Keras模型输入维度不匹配问题

问题根源

你的baseline_model是基于全连接(Dense)层构建的,它要求输入是二维数组:形状为(样本数量, 总特征数)。但你当前传入的图片经过处理后是四维数组(1, 150, 150, 3),这和模型期望的输入维度完全不匹配,所以才会抛出错误。

修复方案

你需要将读取并缩放后的图片展平成一维特征向量,再添加批量维度(对应样本数量为1),让输入形状符合模型要求。修改后的预测代码如下:

import cv2

x = cv2.imread('download.png')
x = cv2.resize(x, (150, 150))
# 展平图片并调整为模型需要的输入形状:(1, 总特征数)
# -1 会自动计算总特征数,这里就是 150*150*3 = 67500
x = x.flatten().reshape(1, -1)
pred = model.predict_classes(x)
print(pred)

如果你已经在训练时定义了num_pixels = 150 * 150 * 3,也可以直接写:

x = x.reshape(1, num_pixels)

额外注意事项

  • 确认训练时的图片预处理逻辑和预测时一致:比如cv2.imread默认读取的是BGR格式,如果你的模型是用RGB格式图片训练的,需要添加x = cv2.cvtColor(x, cv2.COLOR_BGR2RGB)来转换格式,避免预测结果偏差。
  • 如果后续想改用CNN模型(支持四维图片输入),那当前的四维输入形状就没问题,但全连接模型必须展平输入。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:48:00