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中星号变量的几种特殊用法
Sep 07 Python
linecache模块加载和缓存文件内容详解
Jan 11 Python
python字符串与url编码的转换实例
May 10 Python
CentOS 7 安装python3.7.1的方法及注意事项
Nov 01 Python
python绘制多个子图的实例
Jul 07 Python
python sqlite的Row对象操作示例
Sep 11 Python
Python OrderedDict的使用案例解析
Oct 25 Python
python爬虫爬取笔趣网小说网站过程图解
Nov 18 Python
Python3实现将一维数组按标准长度分隔为二维数组
Nov 29 Python
Python简单实现区域生长方式
Jan 16 Python
浅谈django channels 路由误导
May 28 Python
python推导式的使用方法实例
Feb 28 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
基于mysql的bbs设计(一)
2006/10/09 PHP
一个简洁的PHP可逆加密函数(分享)
2013/06/06 PHP
PHP对表单提交特殊字符的过滤和处理方法汇总
2014/02/18 PHP
ThinkPHP的I方法使用详解
2014/06/18 PHP
PHP去掉json字符串中的反斜杠\及去掉双引号前的反斜杠
2015/09/30 PHP
YII框架中搜索分页jQuery写法详解
2016/12/19 PHP
Alliance vs Liquid BO3 第一场2.13
2021/03/10 DOTA
ECMAScript 基础知识
2007/06/29 Javascript
jQuery ajax serialize()方法的使用以及常见问题解决
2013/01/27 Javascript
jquery缓动swing liner控制动画过程不同时刻的速度
2014/05/29 Javascript
JS的事件绑定深入认识
2014/06/26 Javascript
JavaScript学习笔记之JS函数
2015/01/22 Javascript
CSS3 media queries结合jQuery实现响应式导航
2016/09/30 Javascript
自己封装的一个原生JS拖动方法(推荐)
2016/11/22 Javascript
vue数据控制视图源码解析
2018/03/28 Javascript
深入了解javascript 数组的sort方法
2018/06/01 Javascript
JavaScript实用代码小技巧
2018/08/23 Javascript
vue excel上传预览和table内容下载到excel文件中
2019/12/10 Javascript
python基础教程之对象和类的实际运用
2014/08/29 Python
Windows下用py2exe将Python程序打包成exe程序的教程
2015/04/08 Python
python实现统计代码行数的方法
2015/05/22 Python
python如何生成网页验证码
2018/07/28 Python
python Django 创建应用过程图示详解
2019/07/29 Python
pytorch 加载(.pth)格式的模型实例
2019/08/20 Python
使用matplotlib动态刷新指定曲线实例
2020/04/23 Python
Python matplotlib读取excel数据并用for循环画多个子图subplot操作
2020/07/14 Python
Python读取多列数据以及用matplotlib制作图表方法实例
2020/09/23 Python
德国街头和运动文化高品质商店:BSTN Store
2017/08/26 全球购物
玩具反斗城天猫官方旗舰店:享誉全球的玩具店
2017/10/10 全球购物
蛋糕店的商业计划书范文
2014/01/27 职场文书
平安建设实施方案
2014/03/19 职场文书
捐助贫困学生倡议书
2014/05/16 职场文书
诚信承诺书模板
2014/05/26 职场文书
蛋糕店创业计划书范文
2014/09/21 职场文书
辩论赛新闻稿
2015/07/17 职场文书
Go 在 MongoDB 中常用查询与修改的操作
2021/05/07 Golang