返回顶部
首页 > 资讯 > 精选 >Pytorch——回归问题
  • 547
分享到

Pytorch——回归问题

2023-06-02 00:06:05 547人浏览 泡泡鱼
摘要

  1.前言  我会这次会来见证神经网络是如何通过简单的形式将一群数据用一条线条来表示. 或者说, 是如何在数据当中找到他们的关系, 然后用神经网络模型来建立一个可以代表他们关系的线条.  2.数据准备  我们创建一些假数据来模拟真实的情况

  1.前言

  我会这次会来见证神经网络是如何通过简单的形式将一群数据用一条线条来表示. 或者说, 是如何在数据当中找到他们的关系, 然后用神经网络模型来建立一个可以代表他们关系的线条.

  2.数据准备

  我们创建一些假数据来模拟真实的情况. 比如一个一元二次函数: y = a * x^2 + b, 我们给 y 数据加上一点噪声来更加真实的展示它.

  import torch

  import matplotlib.pyplot as plt

  #制造一些数据

  x = torch.unsqueeze(torch.linspace(-1,1,100),dim = 1) #torch.Size([100, 1]) #把[a,b,c]变成[[a,b,c]]

  #print(x)

  y = 2*(x.pow(2)) + 0.5*torch.rand(x.size()) #torch.rand为均匀分布,返回一个张量,包含了从区间[0, 1)的均匀分布中抽取的一组随机数。张量的形状由参数sizes定义

  #print(y)

  #画图

  plt.scatter(x.data.numpy(),y.data.numpy())

  plt.show()

  3.搭建神经网络

  建立一个神经网络我们可以直接运用 torch 中的体系. 先定义所有的层属性(init()), 然后再一层层搭建(forward(x))层于层的关系链接. 建立关系的时候, 我们会用到激励函数

  from torch import nn

  import torch.nn.functional as F

  class NetWork(nn.Module):

  def __init__(self,n_input,n_hidden,n_output):

  super(NetWork,self).__init__()

  self.hidden = nn.Linear(n_input,n_hidden)

  self.output_for_predict = nn.Linear(n_hidden,n_output)

  def forward(self,x):

  x = F.relu(self.hidden(x)) #对x进入隐层后的输出应用激活函数(相当于一个筛选的过程)

  output = self.output_for_predict(x) #做线性变换,将维度为1

  return output

  network = NetWork(n_input = 1,n_hidden = 8, n_output = 1)

  print(network) #打印模型的层次结构

  4.训练搭建的神经网络

  训练的步骤很简单, 如下:

  from torch import nn

  import torch.nn.functional as F

  class NetWork(nn.Module):

  def __init__(self,n_input,n_hidden,n_output):

  super(NetWork,self).__init__()

  self.hidden = nn.Linear(n_input,n_hidden)

  self.output_for_predict = nn.Linear(n_hidden,n_output)

  def forward(self,x):

  x = F.relu(self.hidden(x)) #对x进入隐层后的输出应用激活函数(相当于一个筛选的过程)

  output = self.output_for_predict(x) #做线性变换,将维度为1

  return output

  network = NetWork(n_input = 1,n_hidden = 8, n_output = 1)

  print(network) #打印模型的层次结构

  optimizer = torch.optim.SGD(network.parameters(),lr = 0.2)

  criterion = torch.nn.MSELoss() #均方误差,用于计算预测值与真实值之间的误差

  for i in range(500): #训练步数(相当于迭代次数)

  predication = network(x)

  loss = criterion(predication, y) #predication为预测的值,y为真实值

  optimizer.zero_grad()

  loss.backward() #反向传播,更新参数

  optimizer.step() #将更新的参数值放进network的parameters

  5.可视化操作

  x = torch.unsqueeze(torch.linspace(-1,1,100),dim = 1) #torch.Size([100, 1]) #把[a,b,c]变成[[a,b,c]]

  #print(x)郑州哪里做人流好 Http://www.kdrlyy.com/

  y = 2*(x.pow(2)) + 0.5*torch.rand(x.size()) #torch.rand为均匀分布,返回一个张量,包含了从区间[0, 1)的均匀分布中抽取的一组随机数。张量的形状由参数sizes定义

  #print(y)

  #画图

  # plt.scatter(x.data.numpy(),y.data.numpy())

  # plt.show()

  from torch import nn

  import torch.nn.functional as F

  class NetWork(nn.Module):

  def __init__(self,n_input,n_hidden,n_output):

  super(NetWork,self).__init__()

  self.hidden = nn.Linear(n_input,n_hidden)

  self.output_for_predict = nn.Linear(n_hidden,n_output)

  def forward(self,x):

  x = F.relu(self.hidden(x)) #对x进入隐层后的输出应用激活函数(相当于一个筛选的过程)

  output = self.output_for_predict(x) #做线性变换,将维度为1

  return output

  network = NetWork(n_input = 1,n_hidden = 8, n_output = 1)

  print(network) #打印模型的层次结构

  plt.ion() # 打开交互模式

  plt.show()

  optimizer = torch.optim.SGD(network.parameters(),lr = 0.2)

  criterion = torch.nn.MSELoss() #均方误差,用于计算预测值与真实值之间的误差

  for i in range(500): #训练步数(相当于迭代次数)

  predication = network(x)

  loss = criterion(predication, y) #predication为预测的值,y为真实值

  optimizer.zero_grad()

  loss.backward() #反向传播,更新参数

  optimizer.step() #将更新的参数值放进network的parameters

  if i % 10 == 0:

  plt.cla() # 清坐标轴

  plt.scatter(x.data.numpy(),y.data.numpy())

  plt.plot(x.data.numpy(),predication.data.numpy(),'ro', lw=5) #画预测曲线,用红色o作为标记

  plt.text(0.5,0,'Loss = %.4f' % loss.data.numpy(), fontdict = {'size': 20, 'color': 'red'})

  plt.pause(0.1)

--结束END--

本文标题: Pytorch——回归问题

本文链接: https://lsjlt.com/news/228169.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Pytorch——回归问题
      1.前言  我会这次会来见证神经网络是如何通过简单的形式将一群数据用一条线条来表示. 或者说, 是如何在数据当中找到他们的关系, 然后用神经网络模型来建立一个可以代表他们关系的线条.  2.数据准备  我们创建一些假数据来模拟真实的情况...
    99+
    2023-06-02
  • pytorch实现线性回归以及多元回归
    本文实例为大家分享了pytorch实现线性回归以及多元回归的具体代码,供大家参考,具体内容如下 最近在学习pytorch,现在把学习的代码放在这里,下面是github链接 直接附上g...
    99+
    2024-04-02
  • pytorch实现逻辑回归
    本文实例为大家分享了pytorch实现逻辑回归的具体代码,供大家参考,具体内容如下 一、pytorch实现逻辑回归 逻辑回归是非常经典的分类算法,是用于分类任务,如垃圾分类任务,情感...
    99+
    2024-04-02
  • pytorch实现线性回归
    pytorch实现线性回归代码练习实例,供大家参考,具体内容如下 欢迎大家指正,希望可以通过小的练习提升对于pytorch的掌握 # 随机初始化一个二维数据集,使用朋友torch...
    99+
    2024-04-02
  • pytorch实现多项式回归
    pytorch实现多项式回归,供大家参考,具体内容如下 一元线性回归模型虽然能拟合出一条直线,但精度依然欠佳,拟合的直线并不能穿过每个点,对于复杂的拟合任务需要多项式回归拟合,提高精...
    99+
    2024-04-02
  • pytorch实现线性回归和多元回归的方法
    本篇内容介绍了“pytorch实现线性回归和多元回归的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!最近在学习pytorch,现在把学习...
    99+
    2023-06-14
  • 使用pytorch实现线性回归
    本文实例为大家分享了pytorch实现线性回归的具体代码,供大家参考,具体内容如下 线性回归都是包括以下几个步骤:定义模型、选择损失函数、选择优化函数、 训练数据、测试 ...
    99+
    2024-04-02
  • Pytorch实现逻辑回归分类
    本文实例为大家分享了Pytorch实现逻辑回归分类的具体代码,供大家参考,具体内容如下 1、代码实现 步骤: 1.获得数据2.建立逻辑回归模型3.定义损失函数4.计算损失函数5.求解...
    99+
    2024-04-02
  • 基于Pytorch实现逻辑回归
    本文实例为大家分享了Pytorch实现逻辑回归的具体代码,供大家参考,具体内容如下 1.逻辑回归  线性回归表面上看是“回归问题”,实际上处理的问题...
    99+
    2024-04-02
  • pytorch怎样实现线性回归
    这篇文章给大家分享的是有关pytorch怎样实现线性回归的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体内容如下# 随机初始化一个二维数据集,使用朋友torch训练一个回归模型import ...
    99+
    2023-06-14
  • pytorch使用nn.Moudle实现逻辑回归
    本文实例为大家分享了pytorch使用nn.Moudle实现逻辑回归的具体代码,供大家参考,具体内容如下 内容 pytorch使用nn.Moudle实现逻辑回归 问题 loss下降不...
    99+
    2024-04-02
  • pytorch如何实现多项式回归
    这篇文章主要为大家展示了“pytorch如何实现多项式回归”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“pytorch如何实现多项式回归”这篇文章吧。pytorch实现多项式回归,供大家参考,具...
    99+
    2023-06-14
  • pytorch实现线性回归的方法
    这篇文章主要介绍“pytorch实现线性回归的方法”,在日常操作中,相信很多人在pytorch实现线性回归的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”pytorch实现线性回归的方法”的疑惑有所帮助!...
    99+
    2023-06-14
  • PyTorch实现线性回归详细过程
    目录一、实现步骤1、准备数据2、设计模型3、构造损失函数和优化器4、训练过程5、结果展示二、参考文献一、实现步骤 1、准备数据 x_data = torch.tensor([[1.0...
    99+
    2024-04-02
  • pytorch逻辑回归实现步骤详解
    目录1. 导入库2. 定义数据集2.1 生成数据2.2 设置label3. 搭建网络+优化器4. 训练5. 绘制决策边界6. 代码1. 导入库 机器学习的任务分为两大类:分类和回归 ...
    99+
    2024-04-02
  • adg 归档问题
    Incomplete read from log member '/u01/2_9017_852473381.dbf'. Trying next member.mv 之后可以自动重新传日志,...
    99+
    2024-04-02
  • pytorch机器学习softmax回归的简洁实现
    目录初始化模型参数重新审视softmax的实现优化算法通过深度学习框架的高级API也能更方便地实现分类模型。让我们继续使用Fashion-MNIST数据集,并保持批量大小为256。 ...
    99+
    2024-04-02
  • PyTorch零基础入门之逻辑斯蒂回归
    目录学习总结一、sigmoid函数二、和Linear的区别三、逻辑斯蒂回归(分类)PyTorch实现Reference学习总结 (1)和上一讲的模型训练是类似的,只是在线性模型的基础...
    99+
    2024-04-02
  • python中怎么利用PyTorch进行回归运算
    本篇内容介绍了“python中怎么利用PyTorch进行回归运算”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!PyTorch中的重要基础函数...
    99+
    2023-06-30
  • java递归函数返回值问题怎么解决
    在递归函数中,可以使用一个参数或者一个全局变量来保存计算结果,然后在递归调用的过程中更新这个参数或者变量的值,最终返回最终的结果。例...
    99+
    2023-09-26
    java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作