一 code:
import torch x = torch.ones(2, 2, requires_grad=True) y = x + 2 z = y * y * 3 out = z.mean() out.backward() print(x.grad)
输出结果:
tensor([[4.5000, 4.5000],
[4.5000, 4.5000]])
二 数学公式来验算
\(out = \frac{1}{4}\sum_i z_i = \frac{1}{4}(z_1 + z_2 + z_3 + z_4)\)
\(z_i = 3(x_i+2)^2\)
\(z_i\bigr\rvert_{x_i=1} = 27\)
\(\frac{\partial out}{\partial x_i} = \frac{3}{2}(x_i+2)\)
\(\frac{\partial out}{\partial x_i}\bigr\rvert_{x_i=1} = \frac{9}{2} = 4.5\)