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[0]**2 * x**2 + torch.sqrt(theta[1]) * x + theta[2]
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]
Thanks,
Arrykrishna