首页  >  文章  >  后端开发  >  有状态 LSTM 如何在批量大小为 1 的情况下工作?

有状态 LSTM 如何在批量大小为 1 的情况下工作?

Linda Hamilton
Linda Hamilton原创
2024-11-05 20:10:03689浏览

How do Stateful LSTMs work with a batch size of 1?

了解 Keras 长短期记忆 (LSTM)

重塑数据和状态 LSTM

重塑数据

  • 数据序列被重塑为[样本、时间步长、特征],使 LSTM 层能够处理时间序列数据序列。
  • 时间步代表每个序列中的时间点数量,而特征代表不同的变量或通道。

有状态 LSTM

  • 有状态 LSTM跨批次维护其内部状态,使它们能够记住以前的输出。
  • 这对于以前时间步骤的上下文对于预测未来事件很重要的任务很有用。

问题1:时间步长和特征

  • 带有粉红色方框的图像说明了“多对一”的情况,其中黑框(特征)的数量为3,并且粉色框(时间步长)是可变的。
  • 这意味着输入序列每个时间步包含 3 个特征。

问题 2:有状态 LSTM

  • 在提供的代码示例中,使用了有状态 LSTM,但批量大小设置为 1。
  • 这意味着模型一次在一个序列上进行训练,并且单元内存值在每个批次后重置。
  • 使用有状态 LSTM 的目的是在单个序列中跨时间步保留上下文,尽管批次大小为 1。

图像对应

  • 第一个图(展开,批量大小!= 1):每行代表 LSTM 内部状态(橙色框)的内容和输出(绿色框)在批次内的每个时间步。
  • 第二个图(批次大小= 1):与第一个图类似,但每一行代表状态和输出的内容单个批次中的整个序列(批次大小为 1)。

附加说明

  • 多元系列:处理多元序列,其中每个时间步包含多个特征,重塑层和 LSTM 层中的特征数量应等于数据中的特征总数。
  • 时间分布层: TimeDistributed 层可用于对序列中的每个时间步应用相同的变换,从而有效地创建多对多层。

以上是有状态 LSTM 如何在批量大小为 1 的情况下工作?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn