pytorch循环神经网络实现回归预测

学习视频:莫烦python

# RNN for classification
import torch
import numpy as np
import torch.nn as nn
import torch.utils.data as Data
import matplotlib.pyplot as plt
import torchvision #hyper parameters
TIME_STEP=10 #run time step
INPUT_SIZE=1
LR=0.02 #learning rate # t=np.linspace(0,np.pi*2,100,dtype=float) #from zero to pi*2, and one hundred point there
# x=np.sin(t)
# y=np.cos(t)
# plt.plot(t,x,'r-',label='input (sin)')
# plt.plot(t,y,'b-',label='target (cos)')
# plt.legend(loc='best')
# plt.show() class RNN_Net(nn.Module):
def __init__(self):
super(RNN_Net,self).__init__()
self.rnn=nn.RNN(
input_size=INPUT_SIZE,
hidden_size=32,
num_layers=1,
batch_first=True,
)
self.out=nn.Linear(32,1) def forward(self,x,h_state):
r_out,h_state=self.rnn(x,h_state)
outs=[]
for time_step in range(r_out.size(1)):
outs.append(self.out(r_out[:,time_step,:]))
return torch.stack(outs,dim=1),h_state # the type of return data is torch, and the return data also include h_state rnn=RNN_Net()
# print(rnn) optimizer=torch.optim.Adam(rnn.parameters(),lr=LR)
loss_func=nn.MSELoss() plt.ion()
h_state=None
for step in range (60):
start,end=step*np.pi,(step+1)*np.pi
#using sin predicts cos
steps=np.linspace(start,end,TIME_STEP,dtype=np.float32)
x_np=np.sin(steps)
y_np=np.cos(steps) x=torch.from_numpy(x_np[np.newaxis,:,np.newaxis]) # np.newaxis means increase a dim
y=torch.from_numpy(y_np[np.newaxis,:,np.newaxis])
predition,h_state=rnn(x,h_state) #the first h_state is None
h_state=h_state.data #?????
loss=loss_func(predition,y)
optimizer.zero_grad()
loss.backward()
optimizer.step() plt.plot(steps,y_np,'r-')
plt.plot(steps,predition.detach().numpy().flatten(),'b-') #flatten() 展平维度
plt.draw()
plt.pause(0.05)
plt.ioff()
plt.show()

pytorch循环神经网络实现回归预测 代码的更多相关文章

  1. Pytorch循环神经网络LSTM时间序列预测风速

    #时间序列预测分析就是利用过去一段时间内某事件时间的特征来预测未来一段时间内该事件的特征.这是一类相对比较复杂的预测建模问题,和回归分析模型的预测不同,时间序列模型是依赖于事件发生的先后顺序的,同样大 ...

  2. 『PyTorch』第十弹_循环神经网络

    RNN基础: 『cs231n』作业3问题1选讲_通过代码理解RNN&图像标注训练 TensorFlow RNN: 『TensotFlow』基础RNN网络分类问题 『TensotFlow』基础R ...

  3. Recurrent Neural Networks(RNN) 循环神经网络初探

    1. 针对机器学习/深度神经网络“记忆能力”的讨论 0x1:数据规律的本质是能代表此类数据的通用模式 - 数据挖掘的本质是在进行模式提取 数据的本质是存储信息的介质,而模式(pattern)是信息的一 ...

  4. L26 使用卷积及循环神经网络进行文本分类

    文本情感分类 文本分类是自然语言处理的一个常见任务,它把一段不定长的文本序列变换为文本的类别.本节关注它的一个子问题:使用文本情感分类来分析文本作者的情绪.这个问题也叫情感分析,并有着广泛的应用. 同 ...

  5. 循环神经网络LSTM RNN回归:sin曲线预测

    摘要:本篇文章将分享循环神经网络LSTM RNN如何实现回归预测. 本文分享自华为云社区<[Python人工智能] 十四.循环神经网络LSTM RNN回归案例之sin曲线预测 丨[百变AI秀]& ...

  6. CNN(卷积神经网络)、RNN(循环神经网络)、DNN(深度神经网络)的内部网络结构有什么区别?

    https://www.zhihu.com/question/34681168 CNN(卷积神经网络).RNN(循环神经网络).DNN(深度神经网络)的内部网络结构有什么区别?修改 CNN(卷积神经网 ...

  7. 第十四章——循环神经网络(Recurrent Neural Networks)(第一部分)

    由于本章过长,分为两个部分,这是第一部分. 这几年提到RNN,一般指Recurrent Neural Networks,至于翻译成循环神经网络还是递归神经网络都可以.wiki上面把Recurrent ...

  8. 第十四章——循环神经网络(Recurrent Neural Networks)(第二部分)

    本章共两部分,这是第二部分: 第十四章--循环神经网络(Recurrent Neural Networks)(第一部分) 第十四章--循环神经网络(Recurrent Neural Networks) ...

  9. 深度学习项目——基于循环神经网络(RNN)的智能聊天机器人系统

    基于循环神经网络(RNN)的智能聊天机器人系统 本设计研究智能聊天机器人技术,基于循环神经网络构建了一套智能聊天机器人系统,系统将由以下几个部分构成:制作问答聊天数据集.RNN神经网络搭建.seq2s ...

  10. 通过keras例子理解LSTM 循环神经网络(RNN)

    博文的翻译和实践: Understanding Stateful LSTM Recurrent Neural Networks in Python with Keras 正文 一个强大而流行的循环神经 ...

随机推荐

  1. C++ MFC学习 (二)

    使用向导创建MFC程序 1. 新建-> 选择 MFC -> MFC应用程序 ->下一步 2. 应用程序类型选择     选择单个文档,MFC标准  -> 下一步   3. 下一 ...

  2. Linux - tar 命令详解 (压缩,解压,加密压缩,解密压缩)

    压缩tar -czvf /path/to/file.tar.gz file  (第一个参数:文件压缩的位置和名字  第二个参数:需要压缩的文件) 解压 tar -xzvf /path/to/file. ...

  3. linux 下安装django时出的错误

    解决方法 找到widgets.py 之后vim widgets.py 找到出错语句: 去掉末尾那个逗号即可.

  4. SDN实验环境安装

  5. mybatis面试资料

    1.#{}和${}的区别 #{} 数据类型检查: 若检测到字符串类型,就加上引号: 若检测到数值类型,就不加引号. 安全检查: 若变量的值带有引号,会对引号进行转义处理,这样可以防止sql注入. ${ ...

  6. VSCode 设置启用终端执行yarn

    如果你的vscode终端不支持 yarn run * 的命令你可以新建终端执行:get-ExecutionPolicy执行结果为:RemoteSigned 表示为禁用状态. 执行:set-Execut ...

  7. ubuntu拨号上网与以太网

    拨号上网使用的是ppp协议,主机和主机之间是点对点连接的,通常使用掩码255.255.255.255的方式来表示一个点对点连接. 以太网:使用的以太网协议. 拨号上网和以太网是两个完全不同的东西,如果 ...

  8. vue相关组件用法

    <el-checkbox v-model="checkbox.checkModel" :label="index":disabled="chec ...

  9. (0807) import 与 include文件

    1)验证中filelist以及package https://blog.csdn.net/geter_CS/article/details/125689476 总结来说:规则是,要想使用某个文件内容, ...

  10. ts的接口和泛型的基本语法

    一.接口 1.接口定义 接口是一种规范的定义,它定义行为和规范,在程序设计中接口起到限制和规范的作用. 2.接口的声明与使用 //声明对象类型接口 interface Person {   name: ...