pytorch快速入门--数据的基本操作-2.求导

时间:2025-01-17 22:35:29

自动求导:计算一个函数在指定值上的导数

2.1初始化变量及函数

在这里插入图片描述

import torch
x=torch.arange(4.0,requires_grad=True)
y=2*torch.dot(x,x)

2.2反向传播求梯度

y.backward()
x.grad

在这里插入图片描述

2.3梯度清零

pytorch中梯度会进行累加,所以在进行下一次反向传播前,需要将梯度清零

#%%
x.grad.zero_()
y=x.sum()
y.backward()
x.grad
#%%

在这里插入图片描述

2.4特殊情况

有时需要将某个数视为常数,不参与方向传播的过程,即不作为链式法则的中间变量,此时可以通过detach()函数实现
在这里插入图片描述
此时,y是x的函数,u只是一个常数,并不是x的函数,因此可以求y关于x的导数
在这里插入图片描述