LSTM

LSTM

class torch.nn.LSTM(*args, **kwargs)
应用一个多层的LSTM于一个输入序列。
对于每个输入序列中的元素,每一层计算如下:

 

 参数:

Input_size:输入的x的特征数量

hidden_size:隐藏层n的特征

num_layers:循环网络的层数;比如num_layers=2,那么将会堆叠两个LSTMs一起来组成一个stacked LSTM。第二层的LSTM把第一个LSTM的输出作为输入,计算最终的结果;

bias:如果是False,那么就没有b_ih和b_hh。默认是True。

batch_first:如果是True,输入和输出的张量就是(batch, seq, feature).默认是负的。

dropout:如果是非零,引进一个dropout层在每层LSTM的输出层,默认为0;

bidirectional:如果为真,则为双向的LSTM。默认为False.

Inputs: input, (h_0, c_0)

input:seq长度、batch、input_size

h_0:层数*方向数,batch,hidden_size

c_0:层数*方向数,batch, hidden_size

 

outputs:output,(h_n,c_n)

同上;

变量:

输入-隐藏层的 各门的权重;B

隐藏-隐藏层的各门的权重;B

示例:

>>> rnn = nn.LSTM(10, 20, 2)
>>> input = torch.randn(5, 3, 10)
>>> h0 = torch.randn(2, 3, 20)
>>> c0 = torch.randn(2, 3, 20)
>>> output, (hn, cn) = rnn(input, (h0, c0))

 

posted @ 2021-01-08 21:46  hi_mxd  阅读(167)  评论(0编辑  收藏  举报