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

复用旧代码训练LSTM模型后预测输出维度异常求助

LSTM预测结果形状异常问题解决

问题背景

复用3个月前正常运行的旧代码训练LSTM模型,数据集形状:

X_train = (21500, 5, 4)  # 样本数21500,时间步5,特征数4
y_train = (21500, 1)     # 样本数21500,单输出

模型训练看似正常,但预测时:

x_test = (1350, 1)       # 测试数据形状
yhat = model.predict(x_test)

得到的预测结果形状为(1350, 5, 1),不符合预期。

核心问题与修复步骤

1. 模型结构存在遗漏

原模型代码最后一行仅定义了Dense层,但未将其连接到前面的网络层,也未完成模型的定义。正确写法:

tensor_input = Input(shape=(X_train.shape[1], X_train.shape[2]), name='main_inputs')

xy = LSTM(6, activation='softsign',
          kernel_initializer=initializers.glorot_uniform(),
          return_sequences=False, stateful=False,
          name='Hlayer1')(tensor_input)

xy = Dropout(rate=.2)(xy)

# 关键修复:将Dense层与前面的输出连接,并定义完整模型
xy = Dense(y_train.shape[1], activation='linear')(xy)
model = Model(inputs=tensor_input, outputs=xy)

原代码缺少Dense层的连接操作和模型定义,导致网络输出维度不符合预期。

2. 测试数据形状不匹配

模型输入要求为(None, 5, 4)(对应时间步5、特征数4),但你的x_test形状是(1350, 1),完全不满足输入格式要求:

  • 检查测试数据的预处理流程,确保x_test的维度与X_train一致,正确形状应为(1350, 5, 4)。
  • 如果测试数据确实只有1个特征,需确认是否是数据加载/生成环节出现错误,保证输入特征数与训练集一致。

预期结果

修复上述问题后,预测结果yhat的形状应为(1350, 1),与y_train的输出维度匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 06:05:21