我对pytorch的向后功能有些疑问,我认为我没有得到正确的输出
import numpy as np
import torch
from torch.autograd import Variable
a = Variable(torch.FloatTensor([[1,2,3],[4,5,6]]), requires_grad=True)
out = a * a
out.backward(a)
print(a.grad)
Run Code Online (Sandbox Code Playgroud)
输出是
tensor([[ 2., 8., 18.],
[32., 50., 72.]])
Run Code Online (Sandbox Code Playgroud)
也许是 2*a*a
但我认为输出应该是
tensor([[ 2., 4., 6.],
[8., 10., 12.]])
Run Code Online (Sandbox Code Playgroud)
2*a.
原因 d(x^2)/dx=2x