当前位置:   article > 正文

基于GRU时间序列预测Python程序_gru模型用于预测

gru模型用于预测

 

 

基于GRU预测模型

 

特色:1、单变量,多变量输入,自由切换 

           2、单步预测,多步预测,自动切换

           3、基于Pytorch架构

           4、多个评估指标(MAE,MSE,R2,MAPE等)

           5、数据从excel文件中读取,更换简单

           6、标准框架,数据分为训练集、验证集,测试集

  

全部完整的代码,保证可以运行的代码看这里。

http://t.csdnimg.cn/El450

 

  !!!如果第一个链接打不开,请点击个人首页,查看我的个人介绍。

(搜索到的产品后,点头像,就能看到全部代码)

黑科技小土豆的博客_CSDN博客-深度学习,32单片机领域博主

 

a77d45b5b2544dc0bc597d332d407b50.png

7010f402d3bf865e9d01534777e8cda7.png

 

 

GRU(Gated Recurrent Unit)模型是一种改进的循环神经网络(RNN),能够有效地处理长序列数据,可用于处理文本、音频、图像、时间序列等不同类型的数据。相对于传统的RNN,GRU模型通过引入门控机制来减轻了梯度消失和梯度爆炸的问题,具有更好的长期记忆能力。

GRU模型采用了两个门:重置门(reset gate)和更新门(update gate)。重置门用于控制模型是否需要将当前输入与历史状态进行关联,更新门用于控制历史状态的遗忘程度和新状态的加入程度,从而实现动态地“遗忘”和“记忆”历史信息。

GRU模型的优点包括:

  1. 相较于传统RNN模型,GRU模型能够更好地避免梯度消失和梯度爆炸问题,有效处理长期依赖。
  2. GRU模型训练速度较快,因为其门控机制降低了所需的参数数量。

因此,我们可以看到本模型采用GRU结构,具有处理长期序列数据、避免梯度消失爆炸问题、训练速度快等优点。

 

  1. class GRU(nn.Module):
  2. def __init__(self, input_size, hidden_size, num_layers, batch_size, device="cpu"):
  3. super().__init__()
  4. self.device = device
  5. self.input_size = input_size
  6. self.hidden_size = hidden_size
  7. self.num_layers = num_layers
  8. self.batch_size = batch_size
  9. self.gru = nn.GRU(self.input_size, self.hidden_size, self.num_layers, batch_first=True, bidirectional=False)
  10. def forward(self, input_seq):
  11. batch_size, seq_len = input_seq.shape[0], input_seq.shape[1]
  12. h_0 = torch.randn(self.num_layers, batch_size, self.hidden_size).to(self.device)
  13. output, h = self.gru(input_seq, h_0)
  14. return output, h

3b6eadb0210c4946bfd54e910aa2fa84.png

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/344824
推荐阅读
相关标签
  

闽ICP备14008679号