许多RNN类(BasicRNNCell
,LSTMCell
等)的构造函数接受名为num_units
的参数。这设置了单元格中的单元数。
我认为这确定了RNN应按顺序处理的元素数量。因此,如果您希望RNN处理长度为N的序列,则每个单元格的N个单位。它是否正确?什么是RNN单位?
答案 0 :(得分:1)
不,这不正确。
num_units
指的是您的单元格可以表示的要素数量。在每个时间步,您给出一定大小的输入(您称之为“RNN应按顺序处理的元素数量”)。这就像你的神经网络的第0层。然后将此输入处理为大小为num_units
的隐藏层。这也是单元格输出的大小。
你所谓的N,是由输入张量的大小决定的。 num_units
是您模型的超参数。它越大,模型的自由度就越大(更具描述性的特征)。
答案 1 :(得分:1)
此处num_units是指LSTM(或rnn)单元格中的单位数。
num_units可以解释为来自前馈神经网络的隐藏层的类比。前馈神经网络的隐藏层中的节点数量等于LSTM单元中每个时间步长的LSTM单元的num_units数量。网络。以下图片应该清除任何混淆 - enter image description here
(引自https://jasdeep06.github.io/posts/Understanding-LSTM-in-Tensorflow-MNIST/