PyTorch LSTM 单步、多步时间预测

PyTorch LSTM 单步、多步时间预测

多维输入、多维输出;单步预测、多步滚动预测

import torch
import torch.nn as nn
import torch.optim as optimclass LSTMModel(nn.Module):def __init__(self, input_dim, hidden_dim, num_layers, output_dim):super(LSTMModel, self).__init__()self.hidden_dim = hidden_dimself.num_layers = num_layersself.lstm = nn.LSTM(input_dim, hidden_dim, num_layers, batch_first=True)self.fc = nn.Linear(hidden_dim, output_dim)def forward(self, x):h0 = torch.zeros(self.num_layers, x.size(0), self.hidden_dim).to(x.device)c0 = torch.zeros(self.num_layers, x.size(0), self.hidden_dim).to(x.device)out, _ = self.lstm(x, (h0, c0))out = self.fc(out[:, -1, :])return out# 超参数
input_dim = 400
hidden_dim = 64
num_layers = 2
output_dim = 1
num_epochs = 100
learning_rate = 0.001
batch_size = 32# 初始化模型、损失函数和优化器
model = LSTMModel(input_dim, hidden_dim, num_layers, output_dim)
criterion = nn.MSELoss()
optimizer = optim.Adam(model.parameters(), lr=learning_rate)# 示例训练代码(假设已经定义了train_loader)
for epoch in range(num_epochs):for i, (inputs, labels) in enumerate(train_loader):model.train()outputs = model(inputs)loss = criterion(outputs, labels)optimizer.zero_grad()loss.backward()optimizer.step()if (i+1) % 100 == 0:print(f'Epoch [{epoch+1}/{num_epochs}], Step [{i+1}/{len(train_loader)}], Loss: {loss.item():.4f}')# 保存模型
torch.save(model.state_dict(), 'lstm_model_single_step.pth')# 多步预测函数
def multi_step_predict(model, input_seq, future_steps):model.eval()  # 切换到评估模式predictions = []input_seq = input_seq.unsqueeze(0)  # 增加batch维度,shape变为 (1, seq_len, input_dim)for _ in range(future_steps):with torch.no_grad():  # 禁用梯度计算pred = model(input_seq)  # 预测下一个时间步predictions.append(pred.item())  # 存储预测值# 更新输入序列,将预测值添加到末尾,并移除最早的一个时间步input_seq = torch.cat((input_seq[:, 1:, :], pred.unsqueeze(0).unsqueeze(2)), dim=1)return predictions# 示例调用
initial_input_seq = torch.randn(1, 155, 400)  # 假设这是的初始输入
future_steps = 10
predictions = multi_step_predict(model, initial_input_seq, future_steps)
print(predictions)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/48354.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【云原生】Kubernetes微服务Istio:介绍、原理、应用及实战案例

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

西南民族大学学报人文社会科学版

《西南民族大学学报(人文社会科学版)》简介 《西南民族大学学报(人文社会科学版)》(以下简称“学报”)系国家民族事务委员会主管、西南民族大学主办的民族类综合性学术期刊。创刊于1979年,2000年…

数据恢复篇:适用于 Android 视频恢复的 6 个工具

在智能手机这个动态的世界里,每一刻都被捕捉并以数字方式存储,丢失珍贵的视频可能是一种令人心碎的经历。不必担心,因为 Android 生态系统提供了大量旨在挽救这些珍贵回忆的视频恢复应用程序。 这些应用程序是强大的工具,旨在挽救…

MongoDB文档整理

过往mongodb文档: https://blog.csdn.net/qq_46921028/article/details/123361633https://blog.csdn.net/qq_46921028/article/details/131136935https://blog.csdn.net/qq_46921028/article/details/139247847 1. MongoDB前瞻 1、MongoDB概述: MongoDB是…

Java--Collection集合

一、Collection 1.1 概述 Collection 层次结构 中的根接口。Collection 表示一组对象,这些对象也称为 collection 的元素【集合中只能存储引用类型】。一些 collection 允许有重复的元素,而另一些则不允许。一些 collection 是有序的,而另一…

华为智慧交通-高速公路视频云联网解决方案

华为高速公路视频云联网解决方案摘要: 智慧高速愿景智慧高速旨在实现人、车、路互信协同,提供更安全、高效、便捷的出行体验。通过全路段感知、全过程管控、全天候通行,以及智慧路段、服务区的建设,实现数字化、知识型、安全型、高…

用LangGraph搭建智能体—AI Agents in LangGraph(一)

1. 学习背景 LangGraph最近出来后如火如荼,最近AndrewNg又出了新鲜的学习课程,于是乎先了解一波。 学习地址:传送门 代码地址:传送门 废话不多说,开始干活。 2. 从头开始构建代理(Build an Agent from…

ubuntu24无法网络无法连接的问题

今天使用ubuntu的最新版24.04碰见个很奇怪的问题,所有防火墙都是关闭的,但是无法访问3306端口。 通过官方文档发现,原来新版本引入了AppArmor,进行了跟高级别的安全控制, 使用命令aa-status查看 果然在生效 这就是为什…

厦门大学学报哲学社会科学版

《厦门大学学报(哲学社会科学版)》是厦门大学主办、教育部主管的高层次的哲学社会科学综合性学术刊物,2003年底首批入选教育部“哲学社会科学名刊工程”,2012年获国家社科基金学术期刊资助。 《厦门大学学报》的前身为《厦门大学…

[经验] 孙叔敖举于海,百里奚举于市的翻译 #学习方法#学习方法#微信

孙叔敖举于海,百里奚举于市的翻译 1、孙叔敖举于海 孙叔敖,春秋时期鲁国大夫,是古代中国的著名政治家和军事家,他被誉为“孔子之后”的大贤。 孙叔敖的主要贡献在于他的外交策略和军事管理能力。在他的领导下,鲁国积极扩张其疆…

前端学习(三)之CSS

一、什么是CSS html定义网页的结构和信息(骨架血肉)css定义网页的样式(衣服)js定义用户和网页的交互逻辑(动作) 通过CSS,可以指定页面中各个元素的颜色、字体、大小、间距、边框、背景等样式&…

pig4cloud启动流程

环境 SpringBoot版本:2.7.16 SpringSecurity版本:5.7.11 pig4cloud版本:3.7.1-JDK8 流程图 概述 pig4cloud是对SpringSecurity的实现,其工作原理脱离不了SpringSecurity;pig4cloud启动首先SecurityAutoConfigurati…

9.11和9.9哪个大?

没问题 文心一言 通义千问

【前端】JavaScript入门及实战46-50

文章目录 46 对象(1)47 对象(2)48 属性名和属性值49 基本和引用数据类型50 对象字面量 46 对象(1) <!DOCTYPE html> <html> <head> <title></title> <meta charset "utf-8"> <script type"text/javascript">/…

Puromycin(嘌呤霉素)— pac基因筛选抗生素

Puromycin是由Streptomyces alboniger&#xff08;白黑链霉菌&#xff09;产生的一种氨基糖苷类抗生素&#xff0c;可抑制原核细胞和真核细胞的肽基转移。Puromycin可抑制革兰氏阳性菌、多种动物细胞和昆虫细胞的生长&#xff0c;但是真菌和革兰氏阴性菌对Puromycin具有抗性&am…

Spring Boot外部配置加载顺序

官网地址&#xff1a; Externalized Configuration :: Spring Boot Spring Boot外部配置加载顺序 Spring Boot使用一种非常特定的PropertySource顺序设计&#xff0c;以便合理地覆盖值。后面的属性源可以覆盖前面定义的值(后面的优先级高于前面的)。属性源的考虑顺序如下&…

12.顶部带三角形的边框 CSS 关键字 currentColor

顶部带三角形的边框 创建一个在顶部带有三角形的内容容器。 使用 ::before 和 ::after 伪元素创建两个三角形。两个三角形的颜色应分别与容器的 border-color 和容器的 background-color 相同。一个三角形(::before)的 border-width 应比另一个(::after)宽 1px,以起到边框的作…

大屏系统类优质UI风格

大屏系统类优质UI风格

C 语言回调函数

回调函数的概念 您的理解是正确的。pFunCallBack 是一种函数指针类型&#xff0c;它定义了函数的签名&#xff08;即函数的参数类型和返回类型&#xff09;。当我们说 pFunCallBack pFun&#xff0c;我们是在声明一个变量 pFun&#xff0c;其类型是 pFunCallBack —— 即一个函…

暗网与深网的技术原理、应用及社会影响探究

一、引言 互联网已经成为现代社会不可或缺的一部分&#xff0c;它不仅改变了人们的生活方式&#xff0c;也深刻影响着社会的经济、政治和文化等各个领域。然而&#xff0c;在互联网的广阔领域中&#xff0c;存在着一些不为人知的部分&#xff0c;即深网和暗网。深网和暗网的出现…