缺少梯度的维度

问题描述 投票:0回答:1

我正在为以下函数计算w_1和w_2的偏导数:

enter image description here

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])。

我在这里想念什么?

pytorch gradient autograd
1个回答
0
投票

您不看任何渐变,而5.2832是g(x)的结果,它应该是标量。

© www.soinside.com 2019 - 2024. All rights reserved.