gpt4 book ai didi

tensorflow - 在 Keras 中,当我使用 N `LSTM` 创建有状态 `units` 层时,我到底在配置什么?

转载 作者:行者123 更新时间:2023-12-03 07:34:59 24 4
gpt4 key购买 nike

普通Dense层中的第一个参数也是units,并且是该层中神经元/节点的数量。然而,标准 LSTM 单元如下所示:

enter image description here

(这是“Understanding LSTM Networks ”的修改版本)

在 Keras 中,当我创建像 LSTM(units=N, ...) 这样的 LSTM 对象时,我实际上是在创建这些 LSTM 单元的 N 吗?或者是 LSTM 单元内“神经网络”层的大小,即公式中的 W?还是别的什么?

就上下文而言,我正在基于 this example code 进行工作.

以下是文档:https://keras.io/layers/recurrent/

它说:

units: Positive integer, dimensionality of the output space.

这让我认为这是 Keras LSTM“层”对象的输出数量。这意味着下一层将有 N 个输入。这是否意味着 LSTM 层中实际上存在 N 个 LSTM 单元,或者可能恰好有 一个 LSTM 单元运行了 N 次迭代输出这些 h[t] 值中的 N 个,例如,从 h[t-N]h[t]?

如果它只定义输出的数量,这是否意味着输入仍然可以是一个,或者我们是否必须手动创建滞后输入变量x[t-N] x[t],每个 LSTM 单元由 units=N 参数定义?

当我写这篇文章时,我突然想到了参数 return_sequences 的作用。如果设置为 True,则所有 N 输出都会向前传递到下一层,而如果设置为 False,则仅传递最后一个 h[t] 输出到下一层。我说得对吗?

最佳答案

您可以查看this question了解更多信息,尽管它基于 Keras-1.x API。

基本上,unit 表示 LSTM 中内部单元的维度。因为在 LSTM 中,内部单元的维度(图中的 C_t 和 C_{t-1})、输出掩码(图中的 o_t)和隐藏/输出状态(图中的 h_t)应该具有 SAME 尺寸,因此您输出的尺寸也应该是单位-长度。

而Keras中的LSTM只定义了一个LSTM block ,其单元的长度为unit。如果您设置return_sequence=True,它将返回形状为:(batch_size, timespan, unit)的内容。如果false,那么它只返回形状(batch_size,unit)的最后一个输出。

对于输入,您应该为每个时间戳提供输入。基本上,形状类似于 (batch_size, timespan, input_dim),其中 input_dim 可以与 unit 不同。如果您只想在第一步提供输入,则只需在其他时间步骤用零填充数据即可。

关于tensorflow - 在 Keras 中,当我使用 N `LSTM` 创建有状态 `units` 层时,我到底在配置什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44273249/

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