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 zip文件 压缩
Dec 24 Python
Python实现 多进程导入CSV数据到 MySQL
Feb 26 Python
Python数字图像处理之霍夫线变换实现详解
Jan 12 Python
python实现多线程网页下载器
Apr 15 Python
Python中Numpy包的安装与使用方法简明教程
Jul 03 Python
python实现图片识别汽车功能
Nov 30 Python
Python3.8中使用f-strings调试
May 22 Python
关于Python作用域自学总结
Jun 10 Python
Python 迭代,for...in遍历,迭代原理与应用示例
Oct 12 Python
python小项目之五子棋游戏
Dec 26 Python
Python创建文件夹与文件的快捷方法
Dec 08 Python
PyCharm+Miniconda3安装配置教程详解
Feb 16 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
提升PHP执行速度全攻略(下)
2006/10/09 PHP
第二章 PHP入门基础之php代码写法
2011/12/30 PHP
php类中private属性继承问题分析
2012/11/01 PHP
破解.net程序(dll文件)编译和反编译方法
2013/01/31 PHP
安装apache2.2.22配置php5.4(具体操作步骤)
2013/06/26 PHP
jquery键盘事件介绍
2011/01/31 Javascript
js异步加载的三种解决方案
2013/03/04 Javascript
超级好用的jQuery圆角插件 Corner速成
2014/08/31 Javascript
JS实现往下不断流动网页背景的方法
2015/02/27 Javascript
jquery实现用户信息修改验证输入方法汇总
2015/07/18 Javascript
jQuery树插件zTree使用方法详解
2017/05/02 jQuery
详解Vue路由History mode模式中页面无法渲染的原因及解决
2017/09/28 Javascript
AngularJS集合数据遍历显示的实例
2017/12/27 Javascript
解决Vue不能检测数组或对象变动的问题
2018/02/24 Javascript
vee-validate vue 2.0自定义表单验证的实例
2018/08/28 Javascript
探秘vue-rx 2.0(推荐)
2018/09/21 Javascript
微信小程序实现点击图片旋转180度并且弹出下拉列表
2018/11/27 Javascript
Cordova(ionic)项目实现双击返回键退出应用
2019/09/17 Javascript
python文件写入实例分析
2015/04/08 Python
BP神经网络原理及Python实现代码
2018/12/18 Python
基于Python实现大文件分割和命名脚本过程解析
2019/09/29 Python
Ubuntu下Python+Flask分分钟搭建自己的服务器教程
2019/11/19 Python
python 字典套字典或列表的示例
2019/12/16 Python
CSS3实现多重边框的方法总结
2016/05/31 HTML / CSS
HTML5 贪吃蛇游戏实现思路及源代码
2013/09/03 HTML / CSS
Html5 Canvas实现图片标记、缩放、移动和保存历史状态功能 (附转换公式)
2020/03/18 HTML / CSS
美国气象仪器、花园装饰和墙壁艺术商店:Wind & Weather
2019/05/29 全球购物
耐克亚太地区:Nike APAC
2019/12/07 全球购物
建筑工程专业毕业生自荐信
2013/10/19 职场文书
仓管岗位职责范本
2014/02/08 职场文书
艺校音乐专业自我鉴定范文
2014/03/01 职场文书
保险公司早会主持词
2014/03/22 职场文书
股东出资证明书范例
2014/10/04 职场文书
离婚协议书样本
2015/01/26 职场文书
小学生安全保证书
2015/05/09 职场文书
升学宴家长致辞
2015/07/27 职场文书