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))