深度学习速成(12)LSTM的参数

1.LSTM的参数

在PyTorch的torch.nn模块中,LSTM(长短时记忆网络)的参数包括以下内容:

1. input_size:输入向量的特征维度
2. hidden_size:隐藏状态的维度,也是LSTM单元中隐层状态的维度
3. num_layers:LSTM的层数(或者叫深度)
4. bias:一个布尔值,表示LSTM是否使用偏置,默认为True
5. batch_first:一个布尔值,表示输入张量的第一个维度是否是batch维,默认为False
6. dropout:一个介于0和1之间的数值,表示应用于每个LSTM层输出的dropout比率,默认为0(不应用dropout)
7. bidirectional:一个布尔值,表示LSTM是否是双向的,默认为False

这些参数定义了LSTM模型的基本结构和属性。在实际使用时,可以根据任务和数据的特点来选择和调整这些参数。例如,input_size决定了输入特征的维度,hidden_size决定了隐藏状态的维度,num_layers决定了LSTM的层次深度等等。

除了这些参数,LSTM模型还有其他可训练的参数,例如权重和偏置,在LSTM模型的初始化过程中,这些参数会自动创建。这些可训练的参数可以通过模型的parameters()方法进行访问和优化。

2.LSTM的实例化

在PyTorch中,可以通过torch.nn模块来实例化一个LSTM模型。

下面是一个简单实例:

import torch
import torch.nn as nn

# 定义LSTM模型
class LSTMModel(nn.Module):
    def __init__(self, input_size, hidden_size, num_layers, output_size):
        super(LSTMModel, self).__init__()
        self.hidden_size = hidden_size
        self.num_layers = num_layers

        # LSTM层
        self.lstm = nn.LSTM(input_size, hidden_size, num_layers, batch_first=True)

        # 全连接层
        self.fc = nn.Linear(hidden_size, output_size)

    def forward(self, x):
        # 初始化隐藏状态和细胞状态
        h0 = torch.zeros(self.num_layers, x.size(0), self.hidden_size).to(x.device)
        c0 = torch.zeros(self.num_layers, x.size(0), self.hidden_size).to(x.device)

        # 前向传播
        out, _ = self.lstm(x, (h0, c0))
        out = out[:, -1, :]  # 取最后一个时间步的输出
        out = self.fc(out)
        return out

# 实例化LSTM模型
input_size = 10
hidden_size = 20
num_layers = 2
output_size = 1

model = LSTMModel(input_size, hidden_size, num_layers, output_size)

3.LSTM的输入输出

实例化LSTM之后,不仅要传入数据,还需要传入前一次的隐藏状态h_0,和前一次的记忆C_0

输入:(input,(h_0,C_0))

其格式为:

input shape=[batch_size , seq_len , input_size]

h_0 shape=[num_layers * nnum_directions , batch_size , hidden_size]

C_0 shape=[num_layers * nnum_directions , batch_size , hidden_size]

输出:(output,(h_0,C_0))

其格式为:

output shape=[batch_size , seq_len , num_layers * nnum_directions]

h_n shape=[num_layers * nnum_directions , batch_size , hidden_size]

C_n=h_n

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

哥兜兜有糖

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

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

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

打赏作者

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

抵扣说明:

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

余额充值