“LSTM单元中的单元数”是什么意思?

数据挖掘 神经网络 张量流 rnn
2021-09-13 21:28:49

来自 Tensorflow 代码:Tensorflow。Rnn细胞。

num_units: int, The number of units in the LSTM cell.

我不明白这是什么意思。LSTM单元的单位是什么?输入、输出和遗忘门?这是否意味着“Deep LSTM 的循环投影层中的单元数”?那为什么叫“LSTM单元中的单元数”呢?什么是 LSTM 单元,它与 LSTM 块有何不同,如果不是单元,最小 LSTM 单元是什么?

4个回答

大多数 LSTM/RNN 图只显示隐藏单元,但从不显示这些单元的单元。因此,混乱。每个隐藏层都有隐藏单元,其数量与时间步数一样多。此外,每个隐藏单元都由多个隐藏单元组成,如下图所示。因此,RNN中隐藏层矩阵的维数为(时间步数,隐藏单元数)。

在此处输入图像描述

正如该功能中有用的评论所说,

此包中的细胞定义与文献中使用的定义不同。在文献中,单元是指具有单个标量输出的对象。此包中的定义是指此类单元的水平阵列。

本质上,该层将包含多个并行的 LSTM 单元,结构相同,但每个单元最终“学会记住”一些不同的东西。

在位于 TensorFlow 或 Theano 之上的 Keras 中,当您调用num_units 时model.add(LSTM(num_units)),num_units 是输出空间的维度(从此处开始,第 863 行)。对我来说,这意味着num_units隐藏单元的数量,其激活被发送到下一个时间步。

RNN 中的单元数是序列的每个输入以垂直方式相互连接的 RNN 内存单元的数量,每个单元都将过滤后的信息传递给下一个内存单元。

请记住,这个概念的灵感来自计算机科学概念,即内存分配到不同单位的位大小。