Keras LSTM模型输出维度异常求助:预测结果不符预期
问题原因与解决方案
问题根源
最终输出形状异常的核心原因是多余的数组重复操作:
- 模型
predict输出的y_pred原本形状为(8920,1),完全符合预期。 - 但你执行了
pred_copy = np.repeat(y_pred, tf2.shape[1], axis=-1),其中tf2是未定义的变量,其shape[1]的值为11,导致原本单维度的预测结果被沿最后一维重复11次,形状变为(8920,11)。 - 后续的
sc.inverse_transform基于这个错误形状的数组处理,最终输出自然保持了(8920,11)。
修正代码
直接移除不必要的重复操作即可,因为模型输出的y_pred形状已经和训练时的y_train一致(均为(n_samples,1)),满足归一化逆变换的要求:
y_pred = model.predict(x_test) # 移除这一行错误代码:pred_copy = np.repeat(y_pred, tf2.shape[1], axis=-1) y_pred = sc.inverse_transform(y_pred)
额外建议
- 确认
sc是针对单特征(股价)做的归一化,其输入输出形状均应为(n_samples,1),不需要额外扩展维度。 - 清理代码中未定义的
tf2变量,避免类似笔误再次出现。
内容的提问来源于stack exchange,提问作者SamS
相关产品推荐
相关产品推荐

