一 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\)
原文:https://www.cnblogs.com/yqq-blog/p/11994262.html