如下程序
import torch
a = torch.tensor(1.0, requires_grad=True)
b = torch.tensor(1.0, requires_grad=True)
print(a.grad)
y = (a ** 2) * (b ** 3)
z = y ** 100
print(z)
z.backward()
print(a.grad.data)
print(b.grad.data)
将会打印
None
tensor(1., grad_fn=<PowBackward0>)
tensor(200.)
tensor(300.)
前向流传就是 z 的值是从 a b 计算 y 的值 再从 y 计算 z 的值
反向流传就是从 z 对 a b 的表达式中计算对应的偏导