pytorch中的nn.LSTM模块参数详解

本文详细介绍了PyTorch中的LSTM模块,包括单向和双向LSTM的使用方法。通过示例展示了如何初始化LSTM层,并解释了各参数的意义,如输入尺寸、隐藏层大小、层数、偏置、批次优先和双向传播等。同时,给出了输出和隐藏状态的形状,帮助理解LSTM在网络中的工作原理。
摘要由CSDN通过智能技术生成

直接去官网查看相关信息挺好的,但是为什么有的时候进不去

官网:https://pytorch.org/docs/stable/nn.html#torch.nn.LSTM

使用示例,在使用中解释参数

单向LSTM

import torch
import torch.nn as nn

batch,seq,num_of_feature = (100,10,25)
data = torch.randn(size=(batch,seq,num_of_feature))
lstm = nn.LSTM(input_size=num_of_feature,# :输入的维度,标量
            hidden_size=20,#:h的维度,标量
            num_layers=3,#:堆叠LSTM的层数,默认值为1,标量
            bias=True,#:偏置 ,默认值:True
            batch_first=True,#: 如果是True,则input为(batch, seq, input_size)。默认值为:False(seq_len, batch, input_size)
            bidirectional=False,# :是否双向传播,默认值为False
)

output,(h,c) = lstm(data)
print(output.size()) # [batch,seq,hidden_size]
print(h.size()) # [num_layers,batch,hidden_size] 最后一个time_stamp的h状态
print(c.size())# [num_layers,batch,hidden_size] 最后一个time_stamp的c状态

双向LSTM 

import torch
import torch.nn as nn

batch,seq,num_of_feature = (100,10,25)
data = torch.randn(size=(batch,seq,num_of_feature))
lstm = nn.LSTM(input_size=num_of_feature,# :输入的维度,标量
            hidden_size=20,#:h的维度,标量
            num_layers=3,#:堆叠LSTM的层数,默认值为1,标量
            bias=True,#:偏置 ,默认值:True
            batch_first=True,#: 如果是True,则input为(batch, seq, input_size)。默认值为:False(seq_len, batch, input_size)
            bidirectional=True,# :是否双向传播,默认值为False
)

output,(h,c) = lstm(data)
print(output.size()) # [batch,seq,hidden_size*2]
print(h.size()) # [num_layers*2,batch,hidden_size] 最后一个time_stamp的h状态
print(c.size())# [num_layers*2,batch,hidden_size] 最后一个time_stamp的c状态

参考:https://blog.csdn.net/foneone/article/details/104002372

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值