假设想要求关于列向量x的导数
import torch
x = torch.arange(4.0)
在计算y关于x的梯度之前,我们需要一个地方存储梯度
x.requries_grad_(True)
#等价于 x = torch.arange(4.0,requires_grad=True)
x.grad #访问梯度
计算y
y = 2 * torch.dot(x,x)
通过调用反向传播函数来自动计算y关于x每个分量的梯度
y.backward() #进行求导
x.grad #访问导数
通过计算导数值x.grad= 4 *x
默认情况下,PyTorch会累计梯度。
#清楚之前的值
x.grad.zero_()