我读到LSTM的内部状态如下:
对我来说,这提出了几个问题。 (如果我的理解错误,请纠正我)
答案 0 :(得分:0)
问题1
不正确。样本s
与同一批次中的样本s+1
无关。他们是独立的。
这意味着批处理s
的样本b+1
必须是批处理s
的样本b
的成功者。
样品将被并行处理,批次必须保持相同的顺序。 (这就是为什么文档说训练shuffle=False
层时需要stateful=True
)的原因。
问题2
这是真的:))
问题3
部分正确。使用stateful=True
我们无法对批次进行洗牌(如果有多个批次)。
但是使用stateful=False
这并不重要,因为没有一个样本会彼此相关。 (批次中的每个样本都是完全独立的)
问题4
自"样本"在一批中彼此独立,主要原因是批量生产许多样品:
但是你可能想要分成关于"长度/时间步长"的多个批次中的每个序列。你可以这样做:
t(n+1)
以将其作为输入传递,然后才能生成步骤t(n+2)
。因此,您确实可以在stateful=True
层中使用一个时间步长的样本。
这些答案也可能对您有所帮助: