python - 如何在pytorch上实现stacked rnn (num layers > 1)?

Posted

技术标签:

【中文标题】python - 如何在pytorch上实现stacked rnn (num layers > 1)?【英文标题】:how is stacked rnn (num layers > 1) implemented on pytorch? 【发布时间】:2021-11-16 12:00:37 【问题描述】:

pytorch 中的 GRU 层接受一个名为 num_layers 的参数,您可以在其中堆叠 RNN。然而,目前尚不清楚后续 RNN 究竟如何使用前一层的输出。

根据文档:

循环层数。例如,设置 num_layers=2 意味着将两个 GRU 堆叠在一起形成一个堆叠的 GRU,第二个 GRU 接收第一个 GRU 的输出并计算最终结果。

这是否意味着 GRU 第一层的最后一个单元的输出作为输入馈送到下一层?或者这是否意味着每个单元的输出(在每个时间步)作为输入在下一层的同一时间步被馈送到单元?

【问题讨论】:

【参考方案1】:

这是否意味着 GRU 第一层的最后一个单元的输出作为输入馈送到下一层?或者这是否意味着每个单元的输出(在每个时间步)作为输入在下一层的同一时间步被馈送到单元?

后者。第一层的每个时间步的输出被用作第二层相同时间步的输入。

a Keras tutorial 的这张图显示了多层 RNN 的结构:

【讨论】:

以上是关于python - 如何在pytorch上实现stacked rnn (num layers > 1)?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 i5 上实现 20 倍的 Python 运行速度?

在python中,我应该如何在元组列表上实现最小堆?

重磅 | Torch7团队开源PyTorch:Python优先的深度学习框架

Torch7团队开源PyTorch:Python优先的深度学习框架

使用 Python 在 Linux 上实现一键回归测试

使用 Python 在 Linux 上实现一键回归测试