在PyTorch中有一个LSTM模块,除了输入序列,隐藏状态和单元状态之外,还接受num_layers
参数,该参数指定LSTM具有多少层。
然而,另一个模块LSTMCell只有输入大小和隐藏状态数作为参数,没有num_layers
,因为这是多层LSTM中的单个单元。
我的问题是将LSTMCell模块连接在一起以实现与具有num_layers > 1
答案 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单元的输入。