pytorch-线性回归模型

本文详细介绍了如何在PyTorch中构建线性回归模型,包括构造损失函数和计算图。讨论了梯度下降的不同方式,如SGD、GD和mini-batch,并解释了为何在深度学习中选择特定的batch大小。此外,还探讨了模型构造中使用类形式的原因,并解释了`call()`函数的作用。最后,概述了线性回归模型的训练步骤,包括计算预测值、损失、反向传播和权重更新。
摘要由CSDN通过智能技术生成

线性回归模型

构造损失函数

构造计算图

在这里插入图片描述
深度神经网络并没有太多的局部极小值,但是会有鞍点,鞍点就会导致没有梯度停止更新
梯度下降的三种方式:

  • SGD(随机梯度下降):每次更新只用一个样本,数据中会有噪声,会另训练离开鞍点,如果GD更新的话,进入鞍点就出不来了
    用SGD的话,loss function输出要进行平滑(否则看到的数据会跳动)
  • GD(梯度下降):用所有样本的误差进行梯度更新。设定epoch次数。SGD有两个循环(每个样本都要遍历)而GD有一个循环
  • mini-batch(常用方法)将数据分成一小块一小块的(折中方式)
    效率问题
    GD在更新计算损失的时候可以并行运算,因为每个样本可以直接加,上一个样本和下一个样本没有关联。运算快
    SGD在更新计算损失的时候 不 可以并行运算,因为上一个样本更新和下一个样本更新有关联。运算慢
    问题
    为什么跑深度学习模型的时候,batch大了显存不够?
    GPU进行并行计算,batch大了 显存就不够了,GPU进行并行计算,一个batch的数据一起计算
import torch
x_data = torch.Tensor([[1.0],[2.0],[3.0]])
y_data = torch.Tensor([[2.0],[4.0],[6.0]])

构造模型的时候使用的都是【类的形式】
ython中的函数是一级对象。这意味着Python中的函数的引用可以作为输入传递到其他的函数/方法中,并在其中被执行。
而Python中类的实例(对象)可以被当做函数对待。也就是说,我们可以将它们作为输入传递到其

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值