我正在尝试理解Keras中的LSTM层的概念。
我只是想确认一些LSTM的行为并检查是否理解正确。
假设我有1000个样本,这些样本有1个时间步长,并且当批量大小为1时。
这是否与一份包含1000个时间步骤和批处理大小为1的样本相同?
这里我假设在两种情况下我有相同的信息,只是呈现形式不同,并且每个训练周期后都重置我的LSTM层状态。
我认为,无状态情况下的批量大小仅对我的训练序列有影响,因为如果我设置
我可以使用input_shape而不是batch_input_shape。因此,我的LSTM层不需要批量维度,只需要时间步长和特征维度。这个理解正确吗?
我得到了这个结论:
假设我有1000个样本,这些样本有1个时间步长,并且当批量大小为1时。
stateful = True
这是否与一份包含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
如果我有一个多层LSTM网络,如果第一层LSTM是有状态的,那么所有其他层也应该是有状态的,对吗?
希望有人能理解我的意思并能够帮助我。如果我的问题不清楚,请告诉我,我会更新这篇文章。
谢谢大家。