当前位置:   article > 正文

[AI算法][PyTorch]: nn.LSTM(*args, **kwargs) 输入输出参数详解以及使用的注意事项_nn.lstm 输出

nn.lstm 输出

class torch.nn.LSTM(*args, **kwargs)

参数列表:

  • input_size:x的特征维度
  • hidden_size:隐藏层的特征维度
  • num_layers:lstm隐层的层数,默认为1
  • bias:False则bih=0和bhh=0. 默认为True
  • batch_first:True则输入输出的数据格式为 (batch, seq, feature)
  • dropout:除最后一层,每一层的输出都进行dropout,默认为: 0
  • bidirectional:True则为双向lstm默认为False
  • 输入:input, (h0, c0)
  • 输出:output, (hn,cn)

输入数据格式:(默认输入格式,batch_first=False)
input(seq_len, batch, input_size)
h0(num_layers * num_directions, batch, hidden_size)
c0(num_layers * num_directions, batch, hidden_size)

输出数据格式:
output(seq_len, batch, hidden_size * num_directions)
h_n(num_layers * num_directions, batch, hidden_size)
c_n(num_layers * num_directions, batch, hidden_size)

Pytorch里的LSTM单元接受的输入都必须是3维的张量(Tensors).每一维代表的意思不能弄错。

  1. 第一维体现的是序列(sequence)结构,也就是序列的frame个数

  2. 第二维度体现的是batch_size,也就是一次性喂给网络的序列的个数

  3. 第三维度体现的是输入的元素特征(elements of input),也就是,每一个frame的feature

H0-Hn是什么意思呢?就是每个时刻中间神经元应该保存的这一时刻的根据输入和上一时刻的中间状态值应该产生的本时刻的状态值,

这个数据单元是起的作用就是记录这一时刻之前考虑到所有之前输入的状态值,形状应该是和特定时刻的输出一致

c0-cn就是开关,决定每个神经元的隐藏状态值是否会影响的下一时刻的神经元的处理,形状应该和h0-hn一致。

使用注意事项:

  1. 模型使用LSTM,一定要注意数据的维度。
  2. LSTM的初始化参数,可以使用torch.randn()初始化, requires_grad=True.
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/374498
推荐阅读
相关标签
  

闽ICP备14008679号