是否可以在PyTorch中实现具有LSTMCells模块的多层LSTM?

时间:2018-01-03 15:04:37

标签: lstm pytorch multi-layer

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

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

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

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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