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解析发往本机的数据包示例 (解析数据包)
Jan 16 Python
Python实现并行抓取整站40万条房价数据(可更换抓取城市)
Dec 14 Python
pycharm中连接mysql数据库的步骤详解
May 02 Python
Queue 实现生产者消费者模型(实例讲解)
Nov 13 Python
python生成不重复随机数和对list乱序的解决方法
Apr 09 Python
python 简单照相机调用系统摄像头实现方法 pygame
Aug 03 Python
python基础知识(一)变量与简单数据类型详解
Apr 17 Python
python基于paramiko将文件上传到服务器代码实现
Jul 08 Python
python爬虫 线程池创建并获取文件代码实例
Sep 28 Python
查看jupyter notebook每个单元格运行时间实例
Apr 22 Python
python 如何设置守护进程
Oct 29 Python
Python排序算法之插入排序及其优化方案详解
Jun 11 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
PHP+jquery实时显示网站在线人数的方法
2015/01/04 PHP
PHP环境搭建的详细步骤
2016/06/30 PHP
php实现微信扫码自动登陆与注册功能
2016/09/22 PHP
php实现通过soap调用.Net的WebService asmx文件
2017/02/27 PHP
jCallout 轻松实现气泡提示功能
2013/09/22 Javascript
超简单JS二级、多级联动的简单实例
2014/02/18 Javascript
jQuery通过控制节点实现仅在前台通过get方法完成参数传递
2015/02/02 Javascript
jQuery使用hide方法隐藏元素自身用法实例
2015/03/30 Javascript
JS实现转动随机数抽奖特效代码
2020/04/16 Javascript
理解JavaScript表单的基础知识
2016/01/25 Javascript
不定义JQuery插件 不要说会JQuery
2016/03/07 Javascript
jQuery实现漂亮实用的商品图片tips提示框效果(无图片箭头+阴影)
2016/04/16 Javascript
jQuery控制文本框只能输入数字和字母及使用方法
2016/05/26 Javascript
jQuery实现按比例缩放图片的方法
2017/04/29 jQuery
详解用vue编写弹出框组件
2017/07/04 Javascript
Three.js利用顶点绘制立方体的方法详解
2017/09/27 Javascript
JS基于设计模式中的单例模式(Singleton)实现封装对数据增删改查功能
2018/02/06 Javascript
JavaScript原型链与继承操作实例总结
2018/08/24 Javascript
vant(ZanUi)结合async-validator实现表单验证的方法
2018/12/06 Javascript
详解vue 在移动端体验上的优化解决方案
2019/05/20 Javascript
[16:19]教你分分钟做大人——风暴之灵
2015/03/11 DOTA
python中 ? : 三元表达式的使用介绍
2013/10/09 Python
python中pass语句用法实例分析
2015/04/30 Python
django的登录注册系统的示例代码
2018/05/14 Python
python实现一个简单的ping工具方法
2019/01/31 Python
详解python持久化文件读写
2019/04/06 Python
快速查找Python安装路径方法
2020/02/06 Python
pytorch中图像的数据格式实例
2020/02/11 Python
pytorch实现查看当前学习率
2020/06/24 Python
Python爬虫基于lxml解决数据编码乱码问题
2020/07/31 Python
amazeui 验证按钮扩展的实现
2020/08/21 HTML / CSS
2014年为民办实事工作总结
2014/12/20 职场文书
婚宴邀请函
2015/01/30 职场文书
致运动员的广播稿
2015/08/19 职场文书
小学英语教师研修感悟
2015/11/18 职场文书