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