pytorch LSTM 结构详解

最近项目用到了LSTM ,但是对LSTM 的输入输出不是很理解,对此,我详细查找了lstm 的资料

复制代码
import torch.nn as nn

class LSTMModel(nn.Module):
    def __init__(self, input_size=1, hidden_size=50, num_layers=2):
        super(LSTMModel, self).__init__()
        self.hidden_size = hidden_size
        self.num_layers = num_layers
        self.lstm = nn.LSTM(input_size, hidden_size, num_layers, batch_first=True)
        self.fc = nn.Linear(hidden_size, 1)  # 1 表示预测输出变量为1

    def forward(self, x):
        h0 = torch.zeros(self.num_layers, x.size(0), self.hidden_size)
        c0 = torch.zeros(self.num_layers, x.size(0), self.hidden_size)
        out, _ = self.lstm(x, (h0, c0))
        out = self.fc(out[:, -1, :])
        return out # out 形状为(batch_size,1)
  • input_size=1:输入特征的维度,适用于单变量时间序列。

  • hidden_size=50:LSTM 隐藏层的维度,决定了模型的记忆能力。

  • num_layers=2:堆叠的 LSTM 层数,增加层数可以提升模型的表达能力。

  • batch_first=True :指定输入和输出的张量形状为 (batch_size, seq_len, input_size)

  • self.fc:一个全连接层,将 LSTM 的输出映射到最终的预测值。

  • batch_size 表示批次、seq_len 表示窗口大小、input_size 表示输入尺寸,单变量输入为1 ,多变量要基于个数变化

  • 初始化隐藏状态和细胞状态

    • h0c0 分别表示初始的隐藏状态和细胞状态,形状为 (num_layers, batch_size, hidden_size)

    • 在每次前向传播时,初始化为零张量。

  • LSTM 层处理

    • self.lstm(x, (h0, c0)):将输入 x 和初始状态传入 LSTM 层,输出 out 和新的状态。

    • out 的形状为 (batch_size, seq_len, hidden_size),包含了每个时间步的输出。

  • 全连接层映射

    • out[:, -1, :]:提取序列中最后一个时间步的输出。

    • self.fc(...):将提取的输出通过全连接层,得到最终的预测结果。

相关推荐
sinat_286945197 小时前
AI Coding 时代的 TDD:从理念到工程落地
人工智能·深度学习·算法·tdd
Rabbit_QL9 小时前
【理论分析】信息熵的极值问题:什么时候最小?什么时候最大?
人工智能·深度学习
Z.风止10 小时前
Large Model-learning(3)
人工智能·笔记·后端·深度学习
春末的南方城市10 小时前
比肩顶尖闭源模型!京东开源240亿参数多模态模型JoyAI-Image:统一理解/生成/编辑,重塑AI图像编辑。
人工智能·深度学习·机器学习·计算机视觉·aigc
kyle-fang10 小时前
大模型微调
人工智能·深度学习·机器学习
EmmaXLZHONG11 小时前
Deep Learning With Pytorch Notes
人工智能·pytorch·深度学习
龙文浩_11 小时前
AI NLP核心技术指南
人工智能·pytorch·深度学习·神经网络·自然语言处理
网络工程小王11 小时前
【大模型基础部署】(学习笔记)
人工智能·深度学习·机器学习
万里鹏程转瞬至11 小时前
论文简读:Embarrassingly Simple Self-Distillation Improves Code Generation
人工智能·深度学习
AI医影跨模态组学12 小时前
NPJ Precis Oncol 广东省人民医院放射科刘再毅团队:基于纵向MRI的深度学习模型预测乳腺癌病理完全缓解
人工智能·深度学习·论文·医学·医学影像