import torch
x = torch.tensor([1.0, 2.0, 3.0], requires_grad=True)
y = x * 2
z = y.sum()
z.backward()
print(x.grad)
以上是举例用于讲解的代码
requires_grad=true参数表示x需要进行梯度计算,最后的结果会存储在x.grad中。
backward()函数:
当调用 z.backward()
时,PyTorch 会执行反向传播算法,计算出所有 requires_grad=True
的张量的梯度。
这些梯度通过链式法则相乘。
以下是手算详细过程: