如何在Pytorch中实现每个内存块有多个单元格的LSTM层?

时间:2017-10-20 14:20:41

标签: lstm pytorch

我打算在Pytorch中用多个存储单元块实现一个LSTM - 或多个LSTM单元,LSTM单元是每层的内存块及其门的集合,但似乎是基类{{1} }只允许实现每层有一个LSTM单元的多层LSTM:

torch.nn.LSTM

其中(来自Pytorch的文档):

  • lstm = torch.nn.LSTM(input_size, hidden_size, num_layers) 是网络的输入维度,
  • input_size是每个图层的隐藏状态维度(即每个图层的维度),
  • hidden_size是网络的层数

因此,从上面看,每个LSTM单元恰好具有一个单元(每个LSTM单元的单元状态因此是标量),因为对于每个层,单元状态的维度对应于隐藏状态的维度(即{{ 1}})。

然而,在Hochreiter和Schmidhuber提出的原始LSTM模型中 [1997],每个LSTM块/单元可以包含几个单元: LSTM Network [Hochreiter, 1997]

有办法吗?

1 个答案:

答案 0 :(得分:0)

据我了解,两个LSTM-Cells像往常一样连接。本文中图2的描述如下:

  

...(请注意,通过将图1逆时针旋转90度,它将与图2中的相应部分相匹配)......

图2中的图表可能很难解释,但它应该是一个带有hidden_​​layer和状态输入的LSTM。