【问题标题】:Is it possible to implement a multilayered LSTM with LSTMCells modules in PyTorch?是否可以在 PyTorch 中使用 LSTMCells 模块实现多层 LSTM?
【发布时间】:2018-01-03 15:04:36
【问题描述】:

在 PyTorch 中有一个 LSTM 模块,除了输入序列、隐藏状态和单元状态之外,它还接受一个 num_layers 参数,该参数指定我们的 LSTM 有多少层。

然而,还有另一个模块 LSTMCell,它只输入大小和隐藏状态的数量作为参数,没有num_layers,因为这是多层 LSTM 中的单个单元。

我的问题是将 LSTMCell 模块连接在一起以达到与num_layers > 1 的多层 LSTM 相同的效果的正确方法是什么

【问题讨论】:

    标签: lstm pytorch multi-layer


    【解决方案1】:

    如果我理解正确,l-1 层 lstm 单元的隐藏输出是 l 层 lstm 单元的输入。

    【讨论】:

    • 哦,好吧,实际上我只需要让 nn.LSTMCell 将前一层的隐藏状态作为输入提供给它,就这样吗?谢谢:)
    【解决方案2】:

    LSTMCell 是 LSTM 网络的基本构建块。您应该使用 LSTM 模块(在内部使用 LSTMCell)。如果你想自己做,最好的方法是阅读源代码(https://github.com/pytorch/pytorch/blob/master/torch/nn/modules/rnn.py)。

    基本上你想为每一层使用一个 LSTMCell,你应该小心如何从输入到输出,逐层考虑隐藏状态。 我也有卷积 LSTM 的基本实现,但想法是一样的。你可以在这里查看: https://github.com/rogertrullo/pytorch_convlstm/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-10-14
      • 2019-11-18
      • 2020-09-18
      • 1970-01-01
      • 2020-02-19
      • 2018-08-10
      • 2022-06-19
      相关资源
      最近更新 更多