通过数学公式验证pytorch中autograd

一 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\)

猜你喜欢

转载自www.cnblogs.com/yqq-blog/p/11994262.html