我试图理解Keras中LSTM层的概念。 我只想确认LSTM的某些行为,并检查我是否正确理解。
假设我有1000个样本,并且这个样本具有1个时间步长,而当我的批次大小为1时,
stateful = True
这与1个具有1000个时间步长的样本和
为1的批处理大小相同吗stateful = False
在这里,我还假设在两种情况下,我都具有相同的信息,只是形状不同,并且在每个训练时期之后都会重置LSTM层的状态。
我还认为无状态情况下的批次大小仅对我的训练顺序很重要,因为如果我设置了
stateful = False
我可以使用input_shape而不是batch_input_shape。因此,我的LSTM层只需要时间步和要素维就不需要批处理维。这是正确的吗?
我从以下结论中得出结论:
https://github.com/keras-team/keras/blob/master/keras/layers/recurrent.py#L1847
When does keras reset an LSTM state?
如果第一层LSTM层是有状态的,如果我有多层LSTM网络,那么所有其他层也应该是有状态的吗?
我希望有人能理解我的意思并能为我提供帮助。如果我的问题无法理解,请告诉我,我将更新此帖子。
谢谢大家。
答案 0 :(得分:0)
stateful=True
表示您保留每个批次的最终状态,并将其作为下一个批次的初始状态传递。
所以是的,在这种情况下,如果您有1个批次的1000个样本或1000个批次的1个样本,则是相同的。