parameters - 使用pytorch的rnn中隐藏维度和n_layers之间的区别
问题描述
我被困在隐藏维度和 n_layers 之间。到目前为止我所理解的是,使用pytorch的RNN参数中的n_layers,是隐藏层的数量。如果 n_layers 表示隐藏层的数量而不是隐藏维度?
解决方案
实际上文档非常清楚它们的差异。隐藏大小是 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 决定了图像中垂直轴上的蓝色单元格的数量。
推荐阅读
- sql - INSERT 和 UPDATE 阻止 DML 操作的其他会话
- heroku - 是否可以在 Heroku 上强制更新数据库凭据?
- android - WhatsApp 电话号码正则表达式
- hibernate - 使用 Rapidclipse 的 C3p0 的连接泄漏问题
- python - TF2/Keras:加载自定义模型
- python - Keras - 需要帮助实现 LSTM 以对非常简单的数据集进行预测
- reactjs - 带有打字稿的对象循环中的功能自定义组件
- javascript - Mongoose 警告 Util 命令
- css - CSS字体有不同的“填充”
- pandas - 如何编写一个迭代熊猫数据框组并应用分层条件的函数?