Pytorch学习——LSTM与LSTMCell

本文介绍了PyTorch中nn.LSTM()和nn.LSTMCell()的使用。nn.LSTM()一次性构建多层LSTM,输出为最后一层的所有时刻的隐藏状态,形状为[seq_len, batch, hidden_len]。nn.LSTMCell()则用于构建单个LSTM单元,需要手动处理每个时刻的迭代,若要搭建多层LSTM,需创建多个LSTMCell。" 119352300,7777228,VTK 3D坐标系使用详解,"['计算机视觉', '图像处理', 'VTK']

nn.LSTM()

  • 该模块一次构造完若干层的LSTM。

  • 构造方法

model = nn.LSTM(2, 2, 10, batch_first=True)
"""参数说明:
  - feature_len:特征的维度
  - hidden_len:隐藏层的个数
  - layer_num:每个时间步所对应的模型层数
  - batch_first:用来指示数据应该以什么形式来给,默认为False,数据形状(seq_len,batch,feature_len);否则形状为(batch,seq_len,feature_len)
"""
  • 前向传播
output, (h, c) = model(x, state)
"""参数说明:
  - x:输入特征
  - state:隐藏层和细胞特征
  - output:模型最后一层的输出
  - h:最后一步所有层的隐藏状态
  - c:最后一部所有层的细胞状态"""
  • 举例
import torch
from torch import nn

# 如可以解释成:4层的LSTM,输入的每个词用1维向量表示,隐藏单元和记忆单元的尺寸是20
lstm = nn.LSTM(input_size=1, hidden_size=20, num_layers=4)

# 输入的x:其中batch是3可表示有三句话,seq_len=10表示每句话10个单词,feature_len=1表示每个单词表示为长1的向量
x = torch.randn(10, 3, 1)

# 前向计算过程,这里不传入h_0和C_0则会默认初始化
out, (h, c) = lstm(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值