gpt4 book ai didi

machine-learning - Keras 的默认 LSTM 是展开的还是有状态的?

转载 作者:行者123 更新时间:2023-11-30 09:42:23 25 4
gpt4 key购买 nike

在 Keras 文档中,statefulunroll 均设置为 False。那么如果这两者都不是的话,Keras 中的循环是如何完成的呢? Keras RNN documentaion

我检查了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)

如果我是正确的,是否意味着对于时间序列分析,最好设置 unroll=True

最佳答案

既不是展开的也不是有状态的。

请记住,Keras 中的“有状态”仅意味着“两个连续批处理将被解释为相同序列的两个部分”。没有其他的。 (第 2 批是第 1 批的续集)

当然,所有 LSTM 都有状态(不可能没有状态)。

请小心“初始化 LSTM”这一表达方式。 stateful=False 层将为每个批处理“重置状态”。实际结果是:“每个批处理从开始到结束都是一组单独的序列”。 (第 2 批不是第 1 批的续集)

“状态”是有关“直到当前步骤的序列历史记录”的信息。它们与“权重”完全不同,“权重”是该层实际上从所有序列中学到的东西。

“Unroll”是一种将循环计算转换为单个图而无需循环的方法。它仅适用于短序列,它可以以使用更多内存为代价获得更快的处理速度。

关于machine-learning - Keras 的默认 LSTM 是展开的还是有状态的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57187478/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com