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

问题描述:

我打算在Pytorch中实现一个带有多个存储单元块 - 或多个LSTM单元的LSTM,每个层都有一个LSTM单元作为存储器块的集合及其门 - 但似乎基类torch.nn.LSTM只能实现与一个LSTM单元的多层LSTM每层:如何在Pytorch中实现每个内存块有多个单元的LSTM层?

lstm = torch.nn.LSTM(input_size, hidden_size, num_layers) 

其中(从Pytorch的文档):

  • input_size是网络的输入维数,
  • hidden_size是隐藏的第一为每层(即每层)的尺寸,
  • num_layer是网络层的数目

于是,从上方,每个LSTM单元具有恰好一个电池(每个LSTM单元的单元状态因此标量)因为对于每个层,单元状态的维度对应于隐藏状态的维度(即hidden_size)。

然而,在由Hochreiter和施米德休 [1997],每块LSTM提出的原始模型LSTM /单元可以包含几个细胞: LSTM Network [Hochreiter, 1997]

有没有办法这样做呢?

为了我的理解,两个LSTM-Cells如常连接。图2在本文的说明中,说以下内容:

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

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