如何清楚地解释Keras中units参数的含义?

2023-12-24

我想知道 LSTM 在 Keras 中是如何工作的。在本教程 https://machinelearningmastery.com/time-series-prediction-lstm-recurrent-neural-networks-python-keras/例如,与许多其他内容一样,您可以找到如下内容:

model.add(LSTM(4, input_shape=(1, look_back)))

“4”是什么意思。是该层神经元的数量吗?通过神经元,我的意思是每个实例给出一个输出?

其实我发现这场精彩的讨论 https://stackoverflow.com/questions/37901047/what-is-num-units-in-tensorflow-basiclstmcell但并没有真正相信其中提到的解释给出的参考 https://jasdeep06.github.io/posts/Understanding-LSTM-in-Tensorflow-MNIST/.

在方案上,大家可以看到num_units如图所示,我认为我说每个单元都是一个非常原子的 LSTM 单元(即 4 个门)并没有错。然而,这些单元是如何连接的?如果我是对的(但不确定),x_(t-1)是有尺寸的nb_features,所以每个特征都是一个单元的输入,并且num_unit必须等于nb_features right ?

现在,我们来谈谈keras。我读过了这篇文章和接受的答案 https://stackoverflow.com/questions/44273249/in-keras-what-exactly-am-i-configuring-when-i-create-a-stateful-lstm-layer-wi并遇到麻烦。事实上,答案是这样的:

基本上,形状就像 (batch_size, timespan, input_dim),其中input_dim可以不同于unit

在这种情况下 ?我对之前的参考有麻烦......

此外,它还说,

Keras 中的 LSTM 仅定义了一个 LSTM 块,其单元为单位长度.

好的,但是如何定义完整的 LSTM 层呢?是不是input_shape隐式创建与数量一样多的块time_steps(根据我的说法,这是第一个参数input_shape我的代码中的参数?

谢谢你照亮我

编辑:是否还可以清楚地详细说明如何重塑数据,例如大小(n_samples, n_features)对于有状态的 LSTM 模型?如何处理 time_steps 和 batch_size ?


First, units在 LSTM 中是NOTtime_steps 的数量。

每个 LSTM 单元(出现在给定的 time_step 处)接受输入x并形成一个隐藏状态向量a,这个隐藏单位向量的长度就是所谓的units在 LSTM(Keras)中。

您应该记住,代码只创建了一个 RNN 单元

keras.layers.LSTM(units, activation='tanh', …… )

RNN 操作由类本身重复 Tx 次。

我已经链接了this https://zhuanlan.zhihu.com/p/58854907通过非常简单的代码帮助您更好地理解它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何清楚地解释Keras中units参数的含义? 的相关文章

随机推荐