Keras执行predict预测时报输入不兼容ValueError问题求助
Keras预测输入不兼容问题排查
报错根因
你定义的Xnew是长度为172的一维Python列表,直接传入predict方法时,Keras会将其识别为172个独立的单特征样本,输入形状自动转为(172, 1),和模型要求的最后一维特征数172不匹配,因此触发维度错误。
输入形状(None, 172)的含义
形状中的None是Keras默认的批量样本维度占位符,代表该维度的数值可变,对应你一次传入的样本数量。第二个维度的172才是单个样本的特征长度。
举例来说:
- 单次传入1个样本,输入形状应为
(1, 172) - 单次传入10个样本,输入形状应为
(10, 172)
该设计是为了支持批量预测,不需要每次调用都修改模型输入配置。
修复方案
将Xnew转换为NumPy数组后,手动补充批量维度即可,修改预测前的代码为:
Xnew = np.array(Xnew).reshape(1, -1) # reshape为(1,172)的二维数组 ynew = model.predict(Xnew)
内容的提问来源于stack exchange,提问作者Anass
相关产品推荐
相关产品推荐

