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

如何在Keras的LSTM模型中获取每个时间步的输出结果

代码正确性分析与注意事项

你的代码整体符合每个时间步输出对应Y值的需求,下面拆解说明:

核心逻辑的正确性

  • LSTM层的return_sequences=True设置:
    第一个LSTM设为return_sequences=True,会输出每个时间步的隐藏状态(形状为(样本数, 4, 150)),这样才能作为第二个LSTM的输入(因为第二个LSTM需要处理序列数据);第二个LSTM同样设return_sequences=True,保证输出还是序列形式((样本数, 4, 150)),为后续Dense层生成每个时间步的输出做准备。
  • Dense层的作用:
    最后一层Dense(1)会自动对每个时间步的150维特征做映射,最终输出形状为(样本数, 4, 1),正好对应每个时间步的1个Y值,完全匹配你的需求。
  • Masking层与其他组件:
    Masking层的输入形状(4,17)和你的数据集一致,Dropout层在序列数据后会对每个时间步的特征应用随机失活,不破坏序列结构。

需要注意的细节

  • 输出激活函数relu:如果你的Y值存在负数,relu会把负数截断为0,这会导致预测错误,建议换成sigmoid(Y在0-1之间)或直接去掉激活函数(Y为任意实数)。
  • Masking的mask_value:确认数据集中确实用-2.作为无效值的掩码标记,如果实际掩码值不同,需要修改这个参数,否则Masking层不会生效。
  • 训练数据形状:训练时输入X的形状必须是(样本总数, 4, 17),标签Y的形状必须是(样本总数, 4, 1),否则模型会报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 19:36:29