1. example
创建变量x
并为其分配一个初始值。
import torch
x = torch.arange(4.0)
x
在计算y关于x的梯度之前,我们需要一个地方来存储梯度。
x.requires_grad_(True) # 等价于 `x = torch.arange(4.0, requires_grad=True)`
x.grad # 默认值是None
y = 2 * torch.dot(x, x)
y
x
是一个长度为4的向量,计算x
和x
的内积,得到了我们赋值给y
的标量输出。接下来,我们可以通过调用反向传播函数来自动计算y
关于x
每个分量的梯度,并打印这些梯度。
y.backward() #求导
x.grad #访问导数
x.grad == 4 * x #验证梯度计算
# 在默认情况下,PyTorch会累积梯度,我们需要清除之前的值
#下划线表示更新内