Mic*_* Du 5 machine-learning lstm keras recurrent-neural-network rnn
当您的 batch_size > 1 时,隐藏/单元格状态如何从一个批次内转移,以及跨批次,我一直很困惑。
我目前的假设是隐藏状态永远不会在一个批次内从一个系列转移到另一个系列。即当batch_size = 3 时,第一项的隐藏状态不会传递给第二项。
接下来,设置 Stateful=True 将意味着第一批的第一个元素的隐藏状态被传递给第二批的第一个元素,依此类推。
这是文档状态:
If True, the last state
for each sample at index i in a batch will be used as initial
state for the sample of index i in the following batch.
Run Code Online (Sandbox Code Playgroud)
我一直在努力寻找对此的确认,而且它似乎也不是很直观,因为假设我的数据是连续的,并且我已将我的数据批量处理为 3,我不明白为什么我想要隐藏状态从第 1 个单元转移到第 4 个单元,第 2 个单元转移到第 5 个单元,以此类推。
小智 2
是的,它的工作原理正如您上面所描述的。
是的,你是对的,从数据流 t[] 的角度来看,这样对数据进行排序可能不是很直观:
但我认为从数据处理的角度来看这是完全有意义的。这种数据排序允许您完全并行化/矢量化所有批次的处理。换句话说: [t[0], t[3], t[6]] 可以并行处理,而(顺序)序列 [t[0], t[1], t[2]] 可以是仅一个接一个地处理。
| 归档时间: |
|
| 查看次数: |
296 次 |
| 最近记录: |