OK, leaves act as accumulators. On each .backward()
For example:
x = torch.tensor(1., requires_grad=True)
w = torch.tensor(2., requires_grad=True)
b = torch.tensor(3., requires_grad=True)

y = w * x + b    # y = 2 * x + 3

y.backward(retain_graph=True)
y.backward()
x.backward()
x.backward()
b.backward()
b.backward()
b.backward()
w.backward()
print("x grad sum:", x.grad)
print("w grad sum:", w.grad)
print("b grad sum:", b.grad)

So you can emulate autograd.grad() with multiple backward() calls, Right?