是否可以在 PyTorch 中使用 LSTMCells 模块实现多层 LSTM?

Is it possible to implement a multilayered LSTM with LSTMCells modules in PyTorch?

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

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

我的问题是将 LSTMCell 模块连接在一起以实现与具有 num_layers > 1

的多层 LSTM 相同的效果的正确方法是什么

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

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

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