pytorch-神经网络拟合曲线实例


Posted in Python onJanuary 15, 2020

代码已经调通,跑出来的效果如下:

pytorch-神经网络拟合曲线实例

# coding=gbk
import torch
import matplotlib.pyplot as plt
from torch.autograd import Variable
import torch.nn.functional as F
 
'''
 Pytorch是一个拥有强力GPU加速的张量和动态构建网络的库,其主要构建是张量,所以可以把PyTorch当做Numpy
 来用,Pytorch的很多操作好比Numpy都是类似的,但是其能够在GPU上运行,所以有着比Numpy快很多倍的速度。
 训练完了,发现隐层越大,拟合的速度越是快,拟合的效果越是好
'''
 
def train():
 print('------  构建数据集  ------')
 # torch.linspace是为了生成连续间断的数据,第一个参数表示起点,第二个参数表示终点,第三个参数表示将这个区间分成平均几份,即生成几个数据
 x = torch.unsqueeze(torch.linspace(-1, 1, 100), dim=1)
 #torch.rand返回的是[0,1]之间的均匀分布 这里是使用一个计算式子来构造出一个关联结果,当然后期要学的也就是这个式子
 y = x.pow(2) + 0.2 * torch.rand(x.size())
 # Variable是将tensor封装了下,用于自动求导使用
 x, y = Variable(x), Variable(y)
 #绘图展示
 plt.scatter(x.data.numpy(), y.data.numpy())
 #plt.show()
 
 print('------  搭建网络  ------')
 #使用固定的方式继承并重写 init和forword两个类
 class Net(torch.nn.Module):
  def __init__(self,n_feature,n_hidden,n_output):
   #初始网络的内部结构
   super(Net,self).__init__()
   self.hidden=torch.nn.Linear(n_feature,n_hidden)
   self.predict=torch.nn.Linear(n_hidden,n_output)
  def forward(self, x):
   #一次正向行走过程
   x=F.relu(self.hidden(x))
   x=self.predict(x)
   return x
 net=Net(n_feature=1,n_hidden=1000,n_output=1)
 print('网络结构为:',net)
 
 print('------  启动训练  ------')
 loss_func=F.mse_loss
 optimizer=torch.optim.SGD(net.parameters(),lr=0.001)
 
 #使用数据 进行正向训练,并对Variable变量进行反向梯度传播 启动100次训练
 for t in range(10000):
  #使用全量数据 进行正向行走
  prediction=net(x)
  loss=loss_func(prediction,y)
  optimizer.zero_grad() #清除上一梯度
  loss.backward() #反向传播计算梯度
  optimizer.step() #应用梯度
 
  #间隔一段,对训练过程进行可视化展示
  if t%5==0:
   plt.cla()
   plt.scatter(x.data.numpy(),y.data.numpy()) #绘制真是曲线
   plt.plot(x.data.numpy(),prediction.data.numpy(),'r-',lw=5)
   plt.text(0.5,0,'Loss='+str(loss.data[0]),fontdict={'size':20,'color':'red'})
   plt.pause(0.1)
 plt.ioff()
 plt.show()
 print('------  预测和可视化  ------')
 
if __name__=='__main__':
 train()

以上这篇pytorch-神经网络拟合曲线实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现Logger打印功能的方法详解
Sep 01 Python
Python实现控制台中的进度条功能代码
Dec 22 Python
对Python 网络设备巡检脚本的实例讲解
Apr 22 Python
Python绘制KS曲线的实现方法
Aug 13 Python
python字符串替换第一个字符串的方法
Jun 26 Python
在python中画正态分布图像的实例
Jul 08 Python
python统计指定目录内文件的代码行数
Sep 19 Python
PyCharm2019安装教程及其使用(图文教程)
Sep 29 Python
python利用datetime模块计算程序运行时间问题
Feb 20 Python
利用Python自动化操作AutoCAD的实现
Apr 01 Python
Python更改pip镜像源的方法示例
Dec 01 Python
python 定义函数 返回值只取其中一个的实现
May 21 Python
Pytorch中的VGG实现修改最后一层FC
Jan 15 #Python
详解Python3 中的字符串格式化语法
Jan 15 #Python
用pytorch的nn.Module构造简单全链接层实例
Jan 14 #Python
pytorch三层全连接层实现手写字母识别方式
Jan 14 #Python
Python实现bilibili时间长度查询的示例代码
Jan 14 #Python
基于python监控程序是否关闭
Jan 14 #Python
关于pytorch中全连接神经网络搭建两种模式详解
Jan 14 #Python
You might like
理解PHP中的stdClass类
2014/04/18 PHP
CodeIgniter框架数据库事务处理的设计缺陷和解决方案
2014/07/25 PHP
php中文字符串截取方法实例总结
2014/09/30 PHP
php实现的mongodb操作类实例
2015/04/03 PHP
PHP XML和数组互相转换详解
2016/10/26 PHP
解决laravel资源加载路径设置的问题
2019/10/14 PHP
网页常用特效代码整理
2006/06/23 Javascript
jQuery autocomplate 自扩展插件、自动完成示例代码
2011/03/28 Javascript
纯js网页画板(Graphics)类简介及实现代码
2012/12/24 Javascript
onkeydown事件解决按回车键直接提交数据的需求
2013/04/11 Javascript
热点新闻滚动特效的js代码
2013/08/17 Javascript
Javascript中使用A标签获取当前目录的绝对路径方法
2015/03/02 Javascript
JavaScript定时器和优化的取消定时器方法
2015/07/03 Javascript
IE浏览器下PNG相关功能
2015/07/05 Javascript
jQuery实现瀑布流布局详解(PC和移动端)
2020/09/01 Javascript
浅谈React和Redux的连接react-redux
2017/12/04 Javascript
Vue Cli3 创建项目的方法步骤
2018/10/15 Javascript
layui.use模块外部使用其内部定义的js封装函数方法
2019/09/16 Javascript
Vue移动端实现图片上传及超过1M压缩上传
2019/12/23 Javascript
[00:10]神之谴戒
2019/03/06 DOTA
Python的Flask框架中使用Flask-Migrate扩展迁移数据库的教程
2016/06/14 Python
Python自定义线程池实现方法分析
2018/02/07 Python
对python创建及引用动态变量名的示例讲解
2018/11/10 Python
python字符串分割及字符串的一些常规方法
2019/07/24 Python
使用Python制作新型冠状病毒实时疫情图
2020/01/28 Python
Tensorflow累加的实现案例
2020/02/05 Python
Selenium元素定位的30种方式(史上最全)
2020/05/11 Python
python进度条显示之tqmd模块
2020/08/22 Python
Python结合百度语音识别实现实时翻译软件的实现
2021/01/18 Python
英国骑行、跑步、游泳、铁人三项运动装备专卖店:Wiggle
2016/08/23 全球购物
日语翻译个人求职的自我评价
2013/10/14 职场文书
企业安全标语
2014/06/07 职场文书
学生安全责任书范本
2014/07/24 职场文书
初中同学会活动方案
2014/08/22 职场文书
检查机关领导群众路线教育实践活动个人整改措施
2014/10/28 职场文书
pytorch 运行一段时间后出现GPU OOM的问题
2021/06/02 Python