Keras模型使用同维度新数据预测时出现dense层输入不兼容报错
报错原因
模型定义的输入维度为(None, 24),要求传入的预测数据必须是二维张量:第一维是样本批次数量,第二维对应每个样本的24个特征。
你当前传入的单条测试数据形状为(24,)属于一维数组,Keras会自动将其解析为24个样本、每个样本仅含1个特征,实际输入形状变为(24, 1),和模型要求的最后一维24个特征不匹配,因此触发维度校验错误。
解决方案
只需在预测前为单条测试数据新增批次维度,将形状从(24,)调整为(1, 24)即可,两种常用实现方式如下:
- 方式一:通过
numpy.expand_dims扩展维度
import numpy as np # 原始测试数据 test_arr = np.array([176, 71, 152, 63, 200, 71, 120, 87, 128, 87, 216, 103, 248, 126, 144, 150, 128, 206, 192, 206, 112, 277, 216, 269]) # 新增批次维度 processed_test = np.expand_dims(test_arr, axis=0) # 执行预测 predict_result = model.predict(processed_test)
- 方式二:使用NumPy数组切片快捷扩展
processed_test = test_arr[np.newaxis, :] # 或者简化写法:processed_test = test_arr[None, :] predict_result = model.predict(processed_test)
内容的提问来源于stack exchange,提问作者Lash
相关产品推荐
相关产品推荐

