李沐【动手学深度学习V2】-自动求导(2023.06.19)

文章介绍了PyTorch中关于张量梯度处理的关键概念,如设置`requires_grad=True`来追踪计算图,使用`.grad.zeros_()`清零梯度,以及调用`.backward()`进行反向传播。梯度在默认情况下是累加的,需要手动清零以避免影响后续计算。detach操作则用于断开张量与计算图的连接。
摘要由CSDN通过智能技术生成

x.grad.zeros_():将x的梯度清0
.backward():反向传递求导
张量参数requires_grad=True:表示构造计算图来存储梯度变化
梯度是积累的,需要通过x.grad.zeros_()变0
张量有参数grad来看导数
在这里插入图片描述
requires_grad 是 PyTorch 张量(Tensor)的一个属性,它用于指示是否需要对该张量进行梯度计算。如果一个张量的 requires_grad 属性被设置为 True,那么 PyTorch 会在计算图中跟踪该张量的计算,并将其梯度累积到其对应的张量的 grad 属性中,以便进行反向传播算法的求导计算。

具体来说,如果一个张量的 requires_grad 属性被设置为 True,那么在对该张量执行任何操作时,PyTorch 都会在后台构建一个计算图,并跟踪该张量的计算历史。这意味着,如果你对一个 requires_grad=True 的张量进行了一系列的操作,那么你可以使用 PyTorch 的自动梯度计算机制,通过调用其 backward() 方法来计算该张量的梯度。
在这里插入图片描述
在这里插入图片描述
在默认情况下,PyTorch会累计梯度,我们需要清除之前的值
在这里插入图片描述
在这里插入图片描述
在计算梯度时候,通过detach可以将张量变成标量
在这里插入图片描述
在这里插入图片描述
写出表达式就相当于正向积累,通过backward()来计算变换导数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值