小编HOA*_*ANG的帖子

PyTorch 梯度不同于手动计算的梯度

我试图在不使用 Pytorch 的 autograd 的情况下计算 1/x 的梯度。我使用公式 grad(1/x, x) = -1/x**2。当我将这个公式的结果与 Pytorch 的 autograd 给出的梯度进行比较时,它们是不同的。

这是我的代码:

a = torch.tensor(np.random.randn(), dtype=dtype, requires_grad=True)
loss = 1/a
loss.backward()
print(a.grad - (-1/(a**2)))
Run Code Online (Sandbox Code Playgroud)

输出是:

tensor(5.9605e-08, grad_fn=<ThAddBackward>)
Run Code Online (Sandbox Code Playgroud)

任何人都可以向我解释问题是什么?

python gradient derivative pytorch

5
推荐指数
1
解决办法
926
查看次数

标签 统计

derivative ×1

gradient ×1

python ×1

pytorch ×1