我正在为以下函数计算w_1和w_2的偏导数:
import torch
from torch.autograd import Variable
import numpy as np
x = Variable(torch.Tensor([np.pi, 1]), requires_grad=True)
print(x.data)
def g(w):
return 2*w[0]*w[1] + w[1]*torch.cos(w[0])
q = Variable(torch.Tensor([0, 0]), requires_grad=True)
q = g(x)
# q.grad.data.zero_()
q.backward()
print(q.grad)
数据输出为5.2832,而应为二维(每个偏导数一个:张量([2.0000,5.2832])。
我在这里想念什么?
您不看任何渐变,而5.2832是g(x)
的结果,它应该是标量。