广告
返回顶部
首页 > 资讯 > 精选 >pytorch实现线性回归和多元回归的方法
  • 205
分享到

pytorch实现线性回归和多元回归的方法

2023-06-14 11:06:26 205人浏览 泡泡鱼
摘要

本篇内容介绍了“PyTorch实现线性回归和多元回归的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!最近在学习pytorch,现在把学习

本篇内容介绍了“PyTorch实现线性回归和多元回归的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

最近在学习pytorch,现在把学习的代码放在这里,下面是GitHub链接

直接附上github代码

# 实现一个线性回归# 所有的层结构和损失函数都来自于 torch.nn# torch.optim 是一个实现各种优化算法的包,调用的时候必须是需要优化的参数传入,这些参数都必须是Variable x_train = np.array([[3.3],[4.4],[5.5],[6.71],[6.93],[4.168],[9.779],[6.182],[7.59],[2.167],[7.042],[10.791],[5.313],[7.997],[3.1]],dtype=np.float32)y_train = np.array([[1.7],[2.76],[2.09],[3.19],[1.694],[1.573],[3.366],[2.596],[2.53],[1.221],[2.827],[3.465],[1.65],[2.904],[1.3]],dtype=np.float32) # 首先我们需要将array转化成tensor,因为pytorch处理的单元是Tensor x_train = torch.from_numpy(x_train)y_train = torch.from_numpy(y_train)  # def a simple network class LinearRegression(nn.Module):    def __init__(self):        super(LinearRegression,self).__init__()        self.linear = nn.Linear(1, 1)  # input and output is 2_dimension    def forward(self, x):        out = self.linear(x)        return out  if torch.cuda.is_available():    model = LinearRegression().cuda()    #model = model.cuda()else:    model = LinearRegression()    #model = model.cuda() # 定义loss function 和 optimize funccriterion = nn.MSELoss()   # 均方误差作为优化函数optimizer = torch.optim.SGD(model.parameters(),lr=1e-3)num_epochs = 30000for epoch in range(num_epochs):    if torch.cuda.is_available():        inputs = Variable(x_train).cuda()        outputs = Variable(y_train).cuda()    else:        inputs = Variable(x_train)        outputs = Variable(y_train)     # forward    out = model(inputs)    loss = criterion(out,outputs)     # backWord    optimizer.zero_grad()  # 每次做反向传播之前都要进行归零梯度。不然梯度会累加在一起,造成不收敛的结果    loss.backward()    optimizer.step()     if (epoch +1)%20==0:        print('Epoch[{}/{}], loss: {:.6f}'.fORMat(epoch+1,num_epochs,loss.data))  model.eval()  # 将模型变成测试模式predict = model(Variable(x_train).cuda())predict = predict.data.cpu().numpy()plt.plot(x_train.numpy(),y_train.numpy(),'ro',label = 'original data')plt.plot(x_train.numpy(),predict,label = 'Fitting line')plt.show()

结果如图所示:

pytorch实现线性回归和多元回归的方法

多元回归:

# _*_encoding=utf-8_*_# pytorch 里面最基本的操作对象是Tensor,pytorch 的tensor可以和numpy的ndarray相互转化。# 实现一个线性回归# 所有的层结构和损失函数都来自于 torch.nn# torch.optim 是一个实现各种优化算法的包,调用的时候必须是需要优化的参数传入,这些参数都必须是Variable  # 实现 y = b + w1 *x + w2 *x**2 +w3*x**3import osos.environ['CUDA_DEVICE_ORDER']="PCI_BUS_ID"os.environ['CUDA_VISIBLE_DEVICES']='0'import torchimport numpy as npfrom torch.autograd import Variableimport matplotlib.pyplot as pltfrom torch import nn  # pre_processingdef make_feature(x):    x = x.unsqueeze(1)   # unsquenze 是为了添加维度1的,0表示第一维度,1表示第二维度,将tensor大小由3变为(3,1)    return torch.cat([x ** i for i in range(1, 4)], 1) # 定义好真实的数据  def f(x):    W_output = torch.Tensor([0.5, 3, 2.4]).unsqueeze(1)    b_output = torch.Tensor([0.9])    return x.mm(W_output)+b_output[0]  # 外积,矩阵乘法  # 批量处理数据def get_batch(batch_size =32):     random = torch.randn(batch_size)    x = make_feature(random)    y = f(x)    if torch.cuda.is_available():         return Variable(x).cuda(),Variable(y).cuda()    else:        return Variable(x),Variable(y)   # def modelclass poly_model(nn.Module):    def __init__(self):        super(poly_model,self).__init__()        self.poly = nn.Linear(3,1)    def forward(self,input):        output = self.poly(input)        return output if torch.cuda.is_available():    print("sdf")    model = poly_model().cuda()else:    model = poly_model()  # 定义损失函数和优化器criterion = nn.MSELoss()optimizer = torch.optim.SGD(model.parameters(), lr=1e-3) epoch = 0while True:    batch_x, batch_y = get_batch()    #print(batch_x)    output = model(batch_x)    loss = criterion(output,batch_y)    print_loss = loss.data    optimizer.zero_grad()    loss.backward()    optimizer.step()    epoch = epoch +1    if print_loss < 1e-3:        print(print_loss)        break model.eval()print("Epoch = {}".format(epoch)) batch_x, batch_y = get_batch()predict = model(batch_x)a = predict - batch_yy = torch.sum(a)print('y = ',y)predict = predict.data.cpu().numpy()plt.plot(batch_x.cpu().numpy(),batch_y.cpu().numpy(),'ro',label = 'Original data')plt.plot(batch_x.cpu().numpy(),predict,'b', ls='--',label = 'Fitting line')plt.show()

“pytorch实现线性回归和多元回归的方法”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: pytorch实现线性回归和多元回归的方法

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • pytorch实现线性回归和多元回归的方法
    本篇内容介绍了“pytorch实现线性回归和多元回归的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!最近在学习pytorch,现在把学习...
    99+
    2023-06-14
  • pytorch实现线性回归以及多元回归
    本文实例为大家分享了pytorch实现线性回归以及多元回归的具体代码,供大家参考,具体内容如下 最近在学习pytorch,现在把学习的代码放在这里,下面是github链接 直接附上g...
    99+
    2022-11-12
  • pytorch实现线性回归的方法
    这篇文章主要介绍“pytorch实现线性回归的方法”,在日常操作中,相信很多人在pytorch实现线性回归的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”pytorch实现线性回归的方法”的疑惑有所帮助!...
    99+
    2023-06-14
  • pytorch实现线性回归
    pytorch实现线性回归代码练习实例,供大家参考,具体内容如下 欢迎大家指正,希望可以通过小的练习提升对于pytorch的掌握 # 随机初始化一个二维数据集,使用朋友torch...
    99+
    2022-11-12
  • pytorch怎样实现线性回归
    这篇文章给大家分享的是有关pytorch怎样实现线性回归的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体内容如下# 随机初始化一个二维数据集,使用朋友torch训练一个回归模型import ...
    99+
    2023-06-14
  • 使用pytorch实现线性回归
    本文实例为大家分享了pytorch实现线性回归的具体代码,供大家参考,具体内容如下 线性回归都是包括以下几个步骤:定义模型、选择损失函数、选择优化函数、 训练数据、测试 ...
    99+
    2022-11-12
  • python多元线性回归怎么实现
    在Python中,可以使用`scikit-learn`库来实现多元线性回归。首先,需要导入所需的库和模块:```pythonfrom...
    99+
    2023-08-18
    python
  • PyTorch实现线性回归详细过程
    目录一、实现步骤1、准备数据2、设计模型3、构造损失函数和优化器4、训练过程5、结果展示二、参考文献一、实现步骤 1、准备数据 x_data = torch.tensor([[1.0...
    99+
    2022-11-13
  • Python实现多元线性回归的梯度下降法
    目录1. 读取数据2.定义代价函数3. 梯度下降4.可视化展示1. 读取数据 首先要做的就是读取数据,请自行准备一组适合做多元回归的数据即可。这里以data.csv为例,这里做的是二...
    99+
    2022-11-11
  • R语言如何实现多元线性回归
    R小白几天的摸索 红色为输入,蓝色为输出 输入数据 先把数据用excel保存为csv格式放在”我的文档”文件夹 打开R软件,不用新建,直接写 回归计算 求三个平方和 置信区间...
    99+
    2022-11-11
  • python实现线性回归算法
    本文用python实现线性回归算法,供大家参考,具体内容如下 # -*- coding: utf-8 -*- """ Created on Fri Oct 11 19:25:11...
    99+
    2022-11-12
  • python一元线性回归怎么实现
    在Python中,可以使用NumPy和Scikit-learn库来实现一元线性回归。以下是一元线性回归的实现步骤:1. 导入所需的库...
    99+
    2023-08-18
    python
  • R语言多元线性回归实例详解
    目录一、模型简介二、求解过程总结一、模型简介 一元线性回归是一个主要影响因素作为自变量来解释因变量的变化,在现实问题研究中,因变量的变化往往受几个重要因素的影响,此时就需要用两个或两...
    99+
    2022-11-13
  • 【数学建模】多元线性回归(Python&Matlab代码实现)
    目录 1 概述 2 算例1 2.1 算例 2.2 Python代码实现  2.3 结果 3 算例2  3.1 算例 3.2 Python代码 3.3 结果 4 算例3 4.1 算例 4.2 Python代码 4.3 结果 5 算例4——Ma...
    99+
    2023-09-16
    python 线性回归 matlab
  • 如何在R语言项目中实现多元线性回归
    这期内容当中小编将会给大家带来有关如何在R语言项目中实现多元线性回归,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。输入数据先把数据用excel保存为csv格式放在”我的文档”文件夹打开R软件,不用新建,直...
    99+
    2023-06-08
  • R语言多元线性回归是什么及如何实现
    这篇文章主要介绍“R语言多元线性回归是什么及如何实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“R语言多元线性回归是什么及如何实现”文章能帮助大家解决问题。一、模型简介一元线性回归是一个主要影响因...
    99+
    2023-07-02
  • Python多元线性回归预测模型实验完整版
    多元线性回归预测模型 实验目的 通过多元线性回归预测模型,掌握预测模型的建立和应用方法,了解线性回归模型的基本原理 实验内容 多元线性回归预测模型 实验步骤和过程 (1)第一步:学习多元线性回归预测模...
    99+
    2023-10-06
    python 线性回归 机器学习
  • 怎么用Scikit-Learn和Pandas实现线性回归
    这篇文章主要为大家展示了“怎么用Scikit-Learn和Pandas实现线性回归”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么用Scikit-Learn和Pandas实现线性回归”这篇文章...
    99+
    2023-06-04
  • python实现线性回归的示例代码
    目录1线性回归1.1简单线性回归1.2 多元线性回归1.3 使用sklearn中的线性回归模型1线性回归 1.1简单线性回归 在简单线性回归中,通过调整a和b的参数值,来拟合从x到...
    99+
    2022-11-13
  • R语言实现线性回归的示例
    在统计学中,线性回归(Linear Regression)是利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。 简单对来说就是用来确定两种或...
    99+
    2022-11-11
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作