我被困在隐藏维度和 n_layers 之间。到目前为止我所理解的是,使用pytorch的RNN参数中的n_layers,是隐藏层的数量。如果n_layers表示隐藏层数大于隐藏维数是多少?
最佳答案
实际上,文档非常清楚它们的区别。隐藏大小是 RNN 隐藏状态的特征数量。因此,如果您增加隐藏大小,那么您将计算更大的特征作为隐藏状态输出。
然而,num_layers 只是多个 RNN 单元,其中包含具有给定隐藏大小的隐藏状态。
num_layers=2 would mean stacking two RNNs together to form a stacked RNN, with the second RNN taking in outputs of the first RNN and computing the final results
我想解释 RNN 如何与下图一起工作。每个 RNN 单元(蓝色矩形)采用一个 h_n(隐藏状态)和一个输入。隐藏维度决定了h_n(隐藏状态)的特征向量大小。在每个时间步(t,图像中的水平传播),您的 rnn 将采用 h_n 和输入。然后,如果您的 n_layers >1,它将创建一个中间输出并将其提供给上层(垂直)。所以 hidden 维度决定了图像中水平 h_n 的大小,而 num_layers 决定了图像中垂直轴的蓝色单元格的数量。
关于parameters - 使用pytorch的rnn中隐藏维度和n_layers之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63294347/