我正在尝试在 pytorch 中实现向后的 grad 函数。
但是,我不知道为什么会返回这个值。
这是我的代码。
x = Variable(torch.FloatTensor([[1,2],[3,4]]), requires_grad=True)
y = x + 2
z = y * y
gradient = torch.ones(2, 2)
z.backward(gradient)
print(x.grad)
我认为结果值应该是 [[6,8],[10,12]]
因为 dz/dx= 2*(x+2) 和 x=1,2,3,4
但返回值为 [[7,9],[11,13]]
为什么会这样。我想知道梯度,grad函数是怎么做的。
请帮帮我..