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获取CPU和内存信息的思路与实现(linux系统)
Jan 03 Python
Python抽象类的新写法
Jun 18 Python
Python语言的面相对象编程方式初步学习
Mar 12 Python
Python利用Beautiful Soup模块搜索内容详解
Mar 29 Python
分享一个可以生成各种进制格式IP的小工具实例代码
Jul 28 Python
python中reader的next用法
Jul 24 Python
Python利用递归实现文件的复制方法
Oct 27 Python
python+unittest+requests实现接口自动化的方法
Nov 29 Python
Python实现数据结构线性链表(单链表)算法示例
May 04 Python
Django ORM 聚合查询和分组查询实现详解
Aug 09 Python
在pytorch中动态调整优化器的学习率方式
Jun 24 Python
Python 语言实现六大查找算法
Jun 30 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
Search File Contents PHP 搜索目录文本内容的代码
2010/02/21 PHP
基于php 随机数的深入理解
2013/06/05 PHP
php 5.6版本中编写一个PHP扩展的简单示例
2015/01/20 PHP
利用js的Node遍历找到repeater的一个字段实例介绍
2013/04/25 Javascript
jquery实现简单的拖拽效果实例兼容所有主流浏览器
2013/06/21 Javascript
文本框水印提示效果的简单实现代码
2014/02/22 Javascript
JS打开新窗口防止被浏览器阻止的方法
2015/01/03 Javascript
Bootstrap每天必学之js插件
2015/11/30 Javascript
js实现页面跳转的五种方法推荐
2016/03/10 Javascript
AngularJS基础 ng-src 指令简单示例
2016/08/03 Javascript
vue.js 1.x与2.0中js实时监听input值的变化
2017/03/15 Javascript
浅谈node中的exports与module.exports的关系
2017/08/01 Javascript
AngularJS下$http服务Post方法传递json参数的实例
2018/03/29 Javascript
Express之托管静态文件的方法
2018/06/01 Javascript
用node撸一个监测复联4开售短信提醒的实现代码
2019/04/10 Javascript
如何使用Node.js爬取任意网页资源并输出PDF文件到本地
2019/06/17 Javascript
如何在Angular8.0下使用ngx-translate进行国际化配置
2019/07/24 Javascript
[43:26]完美世界DOTA2联赛PWL S2 Forest vs Rebirth 第二场 11.20
2020/11/23 DOTA
在Python中处理XML的教程
2015/04/29 Python
Python操作Sql Server 2008数据库的方法详解
2018/05/17 Python
python函数enumerate,operator和Counter使用技巧实例小结
2020/02/22 Python
Python xlwt模块使用代码实例
2020/06/10 Python
虚拟机下载python是否需要联网
2020/07/27 Python
利用CSS3实现文本框的清除按钮相关的一些效果
2015/06/23 HTML / CSS
html5播放视频且动态截图实现步骤与代码(支持safari其他未测试)
2013/01/06 HTML / CSS
Monica Vinader官网:英国轻奢珠宝品牌
2020/02/05 全球购物
香港零食网购:上仓胃子
2020/06/08 全球购物
2014年网络管理员工作总结
2014/12/01 职场文书
小王子读书笔记
2015/06/29 职场文书
结婚典礼致辞
2015/07/28 职场文书
任命书格式模板
2015/09/22 职场文书
导游词之阆中古城
2019/12/23 职场文书
JavaWeb实现显示mysql数据库数据
2022/03/19 Java/Android
教你在 Java 中实现 Dijkstra 最短路算法的方法
2022/04/08 Java/Android
Hive HQL支持2种查询语句风格
2022/06/25 数据库