【适合小白】基于1DCNN的单特征输入风速多步长多输出风速预测项目实战(pytorch)(一维特征)(前50天预测后5天)【有数据集和代码,可运行】

一、项目简介

本项目是基于PyTorch深度学习框架实现一个一维卷积网络来进行风速预测的项目,网络的输入是风速(单特征),用前50天的风速(WIND)输出是预测后5天风速,适用于单特征多步长(多输出)的预测问题。。【本项目的代码文件分模块整理,包含模型构建、数据划分、训练过程等模块都清晰分明】

二、实验数据集及实验说明

采用的是wind_dataset.csv,数据集时间、风速、降雨量等等参数,本项目采用前50天的风速WIND特征来预测未来5天的风速。图中的数据划分:以滑窗的方式进行数据划分,滑窗大小为20(实验用的是50),输入特征为1,输入序列大小为20(实验中为50),输出为5,每次滑窗的第后5天的风速值为预测的标签值。数据展示如下:

三、实验环境

平台:Window 11;语言:python3.9;编译器:Pycharm;框架:Pytorch:1.13.1

四、实验内容及部分代码展示

1、1DCNN模型构建

model.py定义了项目用到的网络模型,本项目用到的模型是三层的一维卷积网络、relu激活函数、两层全连接层进行输出5天的风速预测结果。

2、train.py 训练通用模板

训练过程集成到fit函数里面,包含测试集训练过程和验证集计算过程,是项目训练过程的通用代码,其他项目也可以在它的基础上修改后使用。

3、Config.py 参数定义

config中定义了项目的基本参数,可以在里面修改训练参数。

4、train_wind_CNN.py 训练文件

该py文件实现整体训练流程并做绘图操作。依次实现加载数据、数据标准化、样本和标签制作、划分训练集测试集、数据转化为Tensor、形成数据更迭器、载入模型、定义损失、定义优化器、开始训练、损失可视化、显示预测结果。

5、test_pth.py 模型训练后的测试文件

采用模型训练完成后产生的的pth参数文件对测试数据进行预测,可以展示模型预测效果,本项目还是用训练的数据作为该文件的测试数据,前面的处理过程类似test_WIND_CNN.py所示。

6、loss_draw.py 模型训练后的loss绘图

将训练后产生并收集的loss.csv展示出来,也就是损失图,红框可调展示范围

7、predict_plot_pth.py 预测后5天的数值并可视化 

用某前50天风速数据预测后5天风速并绘图和可视化具体的数值

五、实验结果及分析

1、训练过程

这是训练过程中的可视化,会输出train_loss和test_loss

2、loss损失图

该损失是训练了200个epoch的损失图:(由于测试集过拟合严重我就加了Dropout层,过拟合现象好多了。

3、预测效果展示(预测图)

训练epoch=200后的风速预测效果train如下,展示前两百天的预测效果::

训练epoch=200后的风速预测效果如下(使用pth参数文件进行测试预测),展示前两百天的预测效果):

4、预测效果展示(预测具体的某50天)

使用如下图所示的前50天风速,预测后5天的风速值

下图中黑色为历史50天风速,垂直红色是预测开始的地方,绿色是真实值,蓝色是预测值

六、总结及资源

若有朋友需要可运行的源码和数据集,可以guan注【科研小条】gong众号,回复【单特征多步风速预测】,即可获得。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

科研小条

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

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

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

打赏作者

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

抵扣说明:

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

余额充值