【nn.LSTM详解】

参数详解

nn.LSTM是pytorch中的模块函数,调用如下:

torch.nn.lstm(input_size,hidden_size,num_layers,bias,batch_first,dropout,bidirectional)

详细介绍一下参数:
input_size:表示的是输入的矩阵特征数,或者说是输入的维度;
hidden_size:隐藏层的大小(即隐藏层节点数量),输出向量的维度等于隐藏节点数;
num_layers:lstm 隐层的层数,默认为1;
bias:隐层状态是否带 bias,默认为 true;
batch_first:True 或者 False,如果是 True,则 input 为(batch, seq, input_size),默认值为:False(seq_len, batch, input_size)
dropout:默认值0,除最后一层,每一层的输出都进行dropout;
bidirectional:如果设置为 True, 则表示双向 LSTM,默认为 False。

输入输出

nn.LSTM中输入与输出关系为output, (hn, cn) = lstm(input, (h0, c0)),输入输出格式如下:

##输入数据格式:
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)
hn(num_layers * num_directions, batch, hidden_size)
cn(num_layers * num_directions, batch, hidden_size)

input (seq_len, batch, input_size),seq_len表示每个batch输入多少数据,batch表示把数据分成了batch批,input_size为样本输入维度。

output(seq_len, batch, hidden_size * num_directions),output是一个三维张量,第一维表示序列长度,第二维表示数据批次的多少batch,即数据分为几批送进来,第三维hidden_size隐藏层大小,双向则二倍,单向则等价于隐藏层大小。
hn是一个三维张量,第一维是num_layers*num_directions,num_layers是我们定义的神经网络的层数,num_directions表示是否为双向LSTM;第二维表示一批的样本数量;第三维表示隐藏层的大小。
c_n与h_n一致。

  • 17
    点赞
  • 88
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

<编程路上>

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值