PyTorch|自动求导系统AutoGrad

01 | PyTorch的自动求导系统AutoGrad

从前述课程中,我们已经知道:PyTorch训练机器学习或深度学习模型时,依赖于计算优化目标函数(如Loss函数)时的反向传播梯度,并以此层层求导更新每个计算图中结点的数值(权重)。

然而,深度学习架构中经常面临成百上千的待确定参数,而这意味着需要对几百个参数进行导数运算,对于人工而言无疑是困难且低效的。

PyTorch为此提供了自动求导系统AutoGrad,只需要我们根据模型动态搭建好正向计算图,继而调用AutoGrad系统提供“backward”方法以实现模型训练过程。

AutoGrad中最常用的方法是**“torch.autograd.backward()**”,其作用就是自动求取计算图中各个结点的梯度,主要参数有四个:

  • tensors:表示用于求导的张量,如常用的目标Loss函数

  • retain_graph:标记是否要保留计算图,默认情况下一次反向传播结束后,即销毁计算图以节省内存空间

  • create_graph:创建导数的计算图,尤其用于高阶求导(如二阶偏导数)

  • grad_tensors:多梯度权重,用于在多维目标训练时指定,以计算最终的梯度

02 | Backward()使用介绍

为了进一步说明AutoGrad机制,这里我们再次使用之前课程中的示例:

y=(x+w)×(w+1) y = (x + w) \times (w + 1) y=(x+w)×(w+1)

其针对w的求导公式为:

∂y∂w=∂y∂a∂a∂x+∂y∂b∂b∂w \frac{\partial y}{\partial w}=\frac{\partial y}{\partial a}\frac{\partial a}{\partial x} + \frac{\partial y}{\partial b}\frac{\partial b}{\partial w} wy=ay<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值