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中使用urllib2获取http请求状态码的代码例子
Jul 07 Python
Python 多线程实例详解
Mar 25 Python
python 删除大文件中的某一行(最有效率的方法)
Aug 19 Python
python清理子进程机制剖析
Nov 23 Python
python Opencv将图片转为字符画
Feb 19 Python
详解Django中CBV(Class Base Views)模型源码分析
Feb 25 Python
python利用selenium进行浏览器爬虫
Apr 25 Python
pyqt5 实现工具栏文字图片同时显示
Jun 13 Python
python实现把两个二维array叠加成三维array示例
Nov 29 Python
Python如何使用bokeh包和geojson数据绘制地图
Mar 21 Python
Python调用OpenCV实现图像平滑代码实例
Jun 19 Python
如何在mac下配置python虚拟环境
Jul 06 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实现验证码功能
2006/10/09 PHP
SMARTY学习手记
2007/01/04 PHP
PHP实现的超长文本分页显示功能示例
2018/06/04 PHP
PHP过滤器 filter_has_var() 函数用法实例分析
2020/04/23 PHP
div失去焦点事件实现思路
2014/04/22 Javascript
jQuery实现切换字体大小的方法
2015/03/10 Javascript
javascript实现选中复选框后相关输入框变灰不可用的方法
2015/08/11 Javascript
js判断移动端是否安装某款app的多种方法
2015/12/18 Javascript
jQuery+css实现非常漂亮的水平导航菜单效果
2016/07/27 Javascript
简单谈谈ES6的六个小特性
2016/11/18 Javascript
canvas的神奇用法
2017/02/03 Javascript
Bootstrap 3 按钮标签实例代码
2017/02/21 Javascript
jquery中绑定事件的异同
2017/02/28 Javascript
原JS实现banner图的常用功能
2017/06/12 Javascript
JQuery 获取Dom元素的实例讲解
2017/07/08 jQuery
NodeJS实现视频转码的示例代码
2017/11/18 NodeJs
Vue实现移动端左右滑动效果的方法
2018/11/27 Javascript
微信小程序实现获取小程序码和二维码java接口开发
2019/03/29 Javascript
vue中的mescroll搜索运用及各种填坑处理
2019/10/30 Javascript
有趣的JavaScript隐式类型转换操作实例分析
2020/05/02 Javascript
使用python实现baidu hi自动登录的代码
2013/02/10 Python
Python单链表的简单实现方法
2014/09/23 Python
详解Python中的join()函数的用法
2015/04/07 Python
Python每天必学之bytes字节
2016/01/28 Python
python ChainMap的使用和说明详解
2019/06/11 Python
python3+PyQt5 创建多线程网络应用-TCP客户端和TCP服务器实例
2019/06/17 Python
从pandas一个单元格的字符串中提取字符串方式
2019/12/17 Python
python_mask_array的用法
2020/02/18 Python
jupyter notebook中新建cell的方法与快捷键操作
2020/04/22 Python
带有css3动画效果的兼容多浏览器简单导航条示例
2014/01/26 HTML / CSS
男女钓鱼靴和甲板鞋:XTRATUF
2021/01/09 全球购物
数据库笔试题
2013/05/09 面试题
介绍一下linux文件系统分配策略
2013/02/25 面试题
艺人经纪人岗位职责
2014/04/15 职场文书
2014年团支部年度工作总结
2014/12/24 职场文书
个人事迹材料范文
2014/12/29 职场文书