了解Keras LSTM输入形状

时间:2018-11-29 22:41:06

标签: keras lstm

我正在学习使用Keras LSTM模型。我看过this教程,this教程和this教程,不确定对LSTM模型的输入形状的理解。我的问题是,是否像第一个教程(8760、1、8)一样塑造自己的数据,并且一次将数据输入到网络1个时间步,即input_shape =(1,8)使得网络学习了时间依赖性样品之间?

1 个答案:

答案 0 :(得分:1)

在使用stateful=True时,只有1个时间步的批次才有意义。否则,就不会像您想象的那样存在时间依赖性。

区别是:

  • stateful=Falseinput_shape=(1,any)
    • 第一批形状(N,1,任意):包含N个长度为1的不同序列
    • 第二批:包含另外N个长度为1的不同序列
    • 两个批次的总和:2N个长度为1的序列
    • 更多批次:更多独立序列
    • 是的,当stateful=False
    • 时使用步骤= 1是没有意义的
  • stateful=Trueinput_shape=(1,any)
    • 第一批形状(N,1,任意):包含N个不同序列的第一步
    • 第二批:包含相同N个序列的第二步
    • 两个批次的总数:N个长度为2的序列
    • 更多批次=更多相同顺序的步骤,直到调用model.reset_states()

通常,处理stateful=True层更为复杂,如果可以像input_shape=(allSteps, any)那样将整个序列成批放置,则没有理由打开有状态。

如果您想详细了解Keras上的RNN,请see this answer

相关问题