Yi *_*hen 1 machine-learning deep-learning lstm keras recurrent-neural-network
在 Keras 文档中, 和stateful都unroll设置为False。那么如果这两者都不是的话,Keras 中的循环是如何完成的呢?
Keras RNN 文档
我检查了Keras中RNN的源代码,似乎默认操作是在每个时间步初始化LSTM。我累了吗?
if initial_state is not None:
pass
elif self.stateful:
initial_state = self.states
else:
initial_state = self.get_initial_state(inputs)
Run Code Online (Sandbox Code Playgroud)
如果我是正确的,是否意味着对于时间序列分析,设置 会更好unroll=True?
既不是展开的也不是有状态的。
请记住,Keras 中的“有状态”仅意味着“两个连续批次将被解释为同一序列的两个部分”。没有其他的。(第2批是第1批的续集)
当然,所有 LSTM 都有状态(不可能没有状态)。
请小心“初始化 LSTM”这一表达方式。图层stateful=False将为每个批次“重置状态”。实际结果是:“每个批次从开始到结束都是一组单独的序列”。(第 2 批不是第 1 批的续集)
“状态”是有关“直到当前步骤的序列的历史记录”的信息。它们与“权重”完全不同,“权重”是该层实际上从所有序列中学到的东西。
“展开”是一种将循环计算转换为单个图而无需循环的方法。它仅适用于短序列,它可以以使用更多内存为代价获得更快的处理速度。
| 归档时间: |
|
| 查看次数: |
1186 次 |
| 最近记录: |