lstm pytorch实例实现,pytorch lstmcell

  lstm pytorch实例实现,pytorch lstmcell

  本文主要介绍PyTorch构建LSTM实现时间序列负荷预测。有需要的朋友可以参考一下,希望能有所帮助。祝大家进步很大,早日升职加薪。

  00-1010i。前言二。数据处理。LSTM模式四。培训与测试。源代码和数据

  

目录

 

  在上一篇文章《深入了解PyTorch中LSTM的输入输出(从输入输入到线性输出)》中,我详细讲解了如何使用PyTorch构建LSTM模型。本文的主要目的是建立时间序列预测的LSTM模型。

  系列文章:

  PyTorch构建LSTM实现多变量多步长时序负荷预测

  PyTorch建成LSTM实现多变量时序负荷预测

  PyTorch深度学习LSTM从输入到线性输出

  PyTorch构建双向LSTM实现时序负荷预测

  

I. 前言

 

  数据集是某个地区某段时间的电力负荷数据。除了负载,还包括温度、湿度等信息。

  本文暂时不考虑其他变量,只考虑历史负荷来预测未来负荷。

  本文根据前24个时刻的荷载,计算下一个时刻的荷载。多元预测可参考:PyTorch构建LSTM实现多元时间序列预测(负荷预测)。

  定义加载数据(文件名):

  全局最大值、最小值

  df=PD . read _ CSV( data/new _ data/ file _ name,encoding=gbk )

  columns=df.columns

  df.fillna(df.mean(),inplace=True)

  MAX=np.max(df[columns[1]])

  MIN=NP . MIN(df[列[1]])

  df[columns[1]]=(df[columns[1]]-MIN)/(MAX-MIN)

  返回df

  类MyDataset(数据集):

  def __init__(self,data):

  self.data=数据

  def __getitem__(self,item):

  返回自身数据[项目]

  def __len__(self):

  返回len(自身数据)

  def nn_seq(文件名,B):

  打印(“处理数据:”)

  数据=加载数据(文件名)

  load=data[data.columns[1]]

  load=load.tolist()

  负载=火炬。浮动传感器(负载)。视图(-1)

  data=data.values.tolist()

  序列=[]

  对于范围内的I(len(data)-24):

  train_seq=[]

  train_label=[]

  对于范围(I,I ^ 24):内的j

  train_seq.append(加载[j])

  train_label.append(load[i 24])

  train_seq=火炬。浮动处理器(train_seq)。视图(-1)

  train_label=火炬。FloatTensor(train_label)。视图(-1)

  序列追加((train_seq,train_label))

  #打印(序列号[:5])

  DTR=seq[0: int(len(seq)* 0.7)]

  DTE=seq[int(len(seq)* 0.7): len(seq)]

  train_len=int(len(Dtr)/B) * B

  test_len=int(len(Dte)/B) * B

  Dtr,Dte=Dtr[:测试长度],Dte[:测试长度]

  train=MyDataset(Dtr)

  测试=我的数据集(Dte)

  Dtr=DataLoader(dataset=train,b

  atch_size=B, shuffle=False, num_workers=0)

   Dte = DataLoader(dataset=test, batch_size=B, shuffle=False, num_workers=0)

   return Dtr, Dte

  

  上面代码用了DataLoader来对原始数据进行处理,最终得到了batch_size=B的数据集Dtr和Dte,Dtr为训练集,Dte为测试集。

  

 

  

III. LSTM模型

 

  这里采用了深入理解PyTorch中LSTM的输入和输出(从input输入到Linear输出)中的模型:

  

class LSTM(nn.Module):

 

  

 

  

IV. 训练

 

  

def LSTM_train(name, b):

 

  一共训练了15轮:

  

 

  

 

  

V. 测试

 

  

def test(name, b):

 

  MAPE为6.07%:

  

 

  

 

  

 

  

VI. 源码及数据

 

  源码及数据我放在了GitHub上,LSTM-Load-Forecasting

  以上就是PyTorch搭建LSTM实现时间序列负荷预测的详细内容,更多关于PyTorch搭建LSTM时间序列负荷预测的资料请关注盛行IT软件开发工作室其它相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • win7系统桌面背景在哪个文件夹
  • cad中怎么建模块,cad中怎么建模
  • cad2015为什么没有经典模式,cad2016为什么没有经典模式
  • vue 触发watch,vue watch执行两次
  • IObit Malware Fighter PRO 8v8.5.0.789中文破解版一款功能强大的PC反恶意安全软件。
  • node后端框架,以node为基础的后端框架有哪些
  • 魔兽如何进行全屏设置?自动适应或拉伸模式,随你选择
  • 夜神模拟器怎么开脚本语音,夜神模拟器怎么开脚本挂机
  • python如何编写函数然后调用,函数的调用Python
  • 美图秀秀和美图看看哪个好用,有什么和美图秀秀差不多的吗
  • 使用按键精灵制作脚本文件的教程是什么,使用按键精灵制作脚本文件的教程软件
  • pycharm怎么新建py文件编程,pycharm怎么新建py文件,运行不成功怎么办
  • ps闪图制作教程视频,怎样制作闪图-
  • 列表推导式python菜鸟教程,Python列表推导式,并解释它的作用_2
  • windows10纯净版怎么安装,纯净win10系统安装教程
  • 留言与评论(共有 条评论)
       
    验证码: