首页 > 解决方案 > 使用pytorch的rnn中隐藏维度和n_layers之间的区别

问题描述

我被困在隐藏维度和 n_layers 之间。到目前为止我所理解的是,使用pytorch的RNN参数中的n_layers,是隐藏层的数量。如果 n_layers 表示隐藏层的数量而不是隐藏维度?

标签: parametersmodelpytorchrecurrent-neural-networkhidden

解决方案


实际上文档非常清楚它们的差异。隐藏大小是 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 决定了图像中垂直轴上的蓝色单元格的数量。

循环神经网络


推荐阅读