pytorch 模拟关系拟合——回归实例


Posted in Python onJanuary 14, 2020

本次用 pytroch 来实现一个简单的回归分析,也借此机会来熟悉 pytorch 的一些基本操作。

1. 建立数据集

import torch
from torch.autograd import Variable
import matplotlib.pyplot as plt

# torch.linspace(-1,1,100)表示返回一个一维张量,包含在区间 -1到1 上均匀间隔的100个点;
# torch.unsqueeze(input,dim=1)表示转换维度
x = torch.unsqueeze(torch.linspace(-1, 1, 100), dim=1)
# 生成的y值为x的平方加上随机数 
y = x.pow(2) + 0.2*torch.rand(x.size())         

# 用 Variable 来修饰这些数据 tensor
x, y = torch.autograd.Variable(x), Variable(y)

# 画图
plt.scatter(x.data.numpy(), y.data.numpy())
plt.show()

2. 构建神经网络

import torch
import torch.nn.functional as F   # 激励函数都在这

class Net(torch.nn.Module): # 继承 torch 的 Module
  def __init__(self, n_feature, n_hidden, n_output):
    super(Net, self).__init__()   # 继承 __init__ 功能
    # 定义每层用什么样的形式
    self.hidden = torch.nn.Linear(n_feature, n_hidden)  # 隐藏层线性输出
    self.predict = torch.nn.Linear(n_hidden, n_output)  # 输出层线性输出

  def forward(self, x):  # 这同时也是 Module 中的 forward 功能
    # 正向传播输入值, 神经网络分析出输出值
    x = F.relu(self.hidden(x))   # 激励函数(隐藏层的线性值)
    x = self.predict(x)       # 输出值
    return x

net = Net(n_feature=1, n_hidden=10, n_output=1)

print(net) # net 的结构
"""
Net (
 (hidden): Linear (1 -> 10)
 (predict): Linear (10 -> 1)
)
"""

3. 实时绘图查看回归效果

import matplotlib.pyplot as plt

plt.ion() #打开交互绘图模式(便于实时显示图像变化)
plt.show() 

optimizer = torch.optim.SGD(net.parameters(), lr=0.1) # 定义优化器和学习率
loss_func = torch.nn.MSELoss() #定义损失函数

for t in range(200):
  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=%.4f' % loss.data[0], fontdict={'size':20,'color':'red'}) # 显示损失数值
    plt.pause(0.1)

# 如果在脚本中使用ion()命令开启了交互模式,没有使用ioff()关闭的话,则图像会一闪而过,并不会常留。要想防止这种情况,需要在plt.show()之前加上ioff()命令。
plt.ioff() 
plt.show()

运行终态效果图如下:

pytorch 模拟关系拟合——回归实例

以上这篇pytorch 模拟关系拟合——回归实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python翻译软件实现代码(使用google api完成)
Nov 26 Python
Python安装使用命令行交互模块pexpect的基础教程
May 12 Python
利用Python查看目录中的文件示例详解
Aug 28 Python
Python优先队列实现方法示例
Sep 21 Python
Python模糊查询本地文件夹去除文件后缀的实例(7行代码)
Nov 09 Python
Python3中条件控制、循环与函数的简易教程
Nov 21 Python
python TCP Socket的粘包和分包的处理详解
Feb 09 Python
python中协程实现TCP连接的实例分析
Oct 14 Python
django drf框架中的user验证以及JWT拓展的介绍
Aug 12 Python
Python操作excel的方法总结(xlrd、xlwt、openpyxl)
Sep 02 Python
五种Python转义表示法
Nov 27 Python
Python3.9.1中使用match方法详解
Feb 08 Python
PyTorch实现AlexNet示例
Jan 14 #Python
Pytorch 实现focal_loss 多类别和二分类示例
Jan 14 #Python
Python实现钉钉订阅消息功能
Jan 14 #Python
Python Tensor FLow简单使用方法实例详解
Jan 14 #Python
Python利用全连接神经网络求解MNIST问题详解
Jan 14 #Python
基于pytorch的lstm参数使用详解
Jan 14 #Python
Python利用逻辑回归模型解决MNIST手写数字识别问题详解
Jan 14 #Python
You might like
基于simple_html_dom的使用小结
2013/07/01 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
2017/12/21 PHP
极酷的javascirpt,让你随意编辑任何网页
2007/02/25 Javascript
javascript获取网页中指定节点的父节点、子节点的方法小结
2013/04/24 Javascript
使用jquery实现以post打开新窗口
2014/03/19 Javascript
详解webpack+es6+angular1.x项目构建
2017/05/02 Javascript
jquery处理checkbox(复选框)是否被选中实例代码
2017/06/12 jQuery
Vue2.0 vue-source jsonp 跨域请求
2017/08/04 Javascript
通过源码分析Vue的双向数据绑定详解
2017/09/24 Javascript
小程序实现留言板
2018/11/02 Javascript
React路由鉴权的实现方法
2019/09/05 Javascript
vue路由守卫,限制前端页面访问权限的例子
2019/11/11 Javascript
python基础教程之类class定义使用方法
2014/02/20 Python
Python中的MongoDB基本操作:连接、查询实例
2015/02/13 Python
Python的Django框架安装全攻略
2015/07/15 Python
Python3中使用urllib的方法详解(header,代理,超时,认证,异常处理)
2016/09/21 Python
Django模板变量如何传递给外部js调用的方法小结
2017/07/24 Python
使用python PIL库实现简单验证码的去噪方法步骤
2019/05/10 Python
在Python函数中输入任意数量参数的实例
2019/07/16 Python
关于python导入模块import与常见的模块详解
2019/08/28 Python
深入浅析python的第三方库pandas
2020/02/13 Python
Python sklearn库实现PCA教程(以鸢尾花分类为例)
2020/02/24 Python
pandas数据拼接的实现示例
2020/04/16 Python
Pycharm新手使用教程(图文详解)
2020/09/17 Python
美国尼曼百货官网:Neiman Marcus
2019/09/05 全球购物
奥地利智能家居和智能生活网上商店:tink.at
2019/10/07 全球购物
Oracle性能调优原则
2012/05/03 面试题
工程造价与财务管理专业应届生求职信
2013/10/06 职场文书
学校安全检查制度
2014/01/27 职场文书
大型车展策划方案
2014/02/01 职场文书
小学班主任寄语大全
2014/04/04 职场文书
药剂专业个人求职信范文
2014/04/29 职场文书
优秀教师先进材料
2014/12/16 职场文书
《小蝌蚪找妈妈》教学反思
2016/02/23 职场文书
创业计划书之个人工作室
2019/08/22 职场文书
毕业生自荐求职信书写的技巧
2019/08/26 职场文书