I am trying to a simple gradient calculation. The true function is:
and the goal is to calculate the gradient of y with respect to the thetas.
import torch from torch.autograd import Variable theta = Variable(torch.tensor([3.0, 2.0, 1.0]), requires_grad=True) x = Variable(torch.tensor([1.0]), requires_grad= False) y = theta**2 * x**2 + torch.sqrt(theta) * x + theta y.backward(torch.ones(3)) print(theta.grad)
The output is: [18.000, 1.0607, 3.0000]. Any idea why I have an extra factor of 3 as I was expecting [6.0000, 0.3536, 1.0000]