我试图了解 pytorch autograd 的工作原理。如果我有函数 y = 2x 和 z = y**2,如果我进行正态微分,我得到 x = 1 处的 dz/dx 为 8 (dz/dx = dz/dy * dy/dx = 2y*2 = 2 (2x)*2 = 8x)。或者,z = (2x)**2 = 4x^2 和 dz/dx = 8x,所以在 x = 1 时,它是 8。
如果我对 pytorch autograd 做同样的事情,我会得到 4
x = torch.ones(1,requires_grad=True)
y = 2*x
z = y**2
x.backward(z)
print(x.grad)
哪个打印
tensor([4.])
我哪里错了?