使用pytorch在rnn中隐藏维度和n_layers之间的差异

Har*_*han 5 parameters hidden model recurrent-neural-network pytorch

我陷入隐藏维度和 n_layers 之间。到目前为止我所理解的是,使用pytorch的RNN参数中的n_layers是隐藏层的数量。如果 n_layers 表示隐藏层数,那么隐藏维度是多少?

Alp*_*rcı 11

实际上文档非常清楚它们的差异。隐藏大小是 RNN 隐藏状态的特征数量。因此,如果增加隐藏大小,则可以计算更大的特征作为隐藏状态输出。

然而,num_layers 只是多个 RNN 单元,其中包含具有给定隐藏大小的隐藏状态。

num_layers=2 意味着将两个 RNN 堆叠在一起形成堆叠 RNN,第二个 RNN 接收第一个 RNN 的输出并计算最终结果

我想通过下图解释 RNN 是如何工作的。每个 RNN 单元(蓝色矩形)采用一个 h_n(隐藏状态)和一个输入。隐藏维度决定了h_n(隐藏状态)的特征向量大小。在每个时间步(t,图像中的水平传播),你的 rnn 将采用 h_n 和输入。然后,如果 n_layers >1 ,它将创建一个中间输出并将其提供给上层(垂直)。因此隐藏维度决定了图像中水平轴 h_n 的大小,而 num_layers 决定了图像中垂直轴上蓝色单元的数量。

循环神经网络

  • 有点。它们不是节点的数量,而是隐藏状态的大小。例如,如果隐藏大小为 128,那么隐藏状态将是一个 128 维向量,即 [1,128] 张量。除此之外,你的理解是正确的。 (2认同)