TypeError: backward() got an unexpected keyword argument 'grad_tensors' in pytorch
TypeError: backward() got an unexpected keyword argument 'grad_tensors' in pytorch
我有以下
w = torch.tensor([1.], requires_grad=True)
x = torch.tensor([2.], requires_grad=True)
a = torch.add(w, x)
b = torch.add(w, 1)
y0 = torch.mul(a, b) # y0 = (x+w) * (w+1)
y1 = torch.add(a, b) # y1 = (x+w) + (w+1)
loss = torch.cat([y0, y1], dim=0) # [y0, y1]
weight = torch.tensor([1., 2.])
loss.backward(grad_tensors=weight)
以上给我TypeError: backward() got an unexpected keyword argument 'grad_tensors'
我检查了 website , grad_tensors
确实存在于 backward
.
然而,当我使用
loss.backward(gradient=weight)
有效。 gradient
不是 backward
中的参数。有什么想法吗?我的 pytorch 版本是 1.7.0
。谢谢。
您正在调用 torch.Tensor.backward
,而不是 torch.autograd.backward
。
关于你的第二个问题 b/w 两者的区别 torch.Tensor.backward
internally calls torch.autograd.backward
,它计算给定张量的梯度 w.r.t。图叶。
torch.autograd.backward(self, gradient, retain_graph, create_graph)
对应
torch.autograd.backward(tensors: self, grad_tensors: gradient, retain_graph, create_graph)
因此,下面两个是等价的:
loss.backward(gradient=weight)
torch.autograd.backward(loss, weight)
我有以下
w = torch.tensor([1.], requires_grad=True)
x = torch.tensor([2.], requires_grad=True)
a = torch.add(w, x)
b = torch.add(w, 1)
y0 = torch.mul(a, b) # y0 = (x+w) * (w+1)
y1 = torch.add(a, b) # y1 = (x+w) + (w+1)
loss = torch.cat([y0, y1], dim=0) # [y0, y1]
weight = torch.tensor([1., 2.])
loss.backward(grad_tensors=weight)
以上给我TypeError: backward() got an unexpected keyword argument 'grad_tensors'
我检查了 website , grad_tensors
确实存在于 backward
.
然而,当我使用
loss.backward(gradient=weight)
有效。 gradient
不是 backward
中的参数。有什么想法吗?我的 pytorch 版本是 1.7.0
。谢谢。
您正在调用 torch.Tensor.backward
,而不是 torch.autograd.backward
。
关于你的第二个问题 b/w 两者的区别 torch.Tensor.backward
internally calls torch.autograd.backward
,它计算给定张量的梯度 w.r.t。图叶。
torch.autograd.backward(self, gradient, retain_graph, create_graph)
对应
torch.autograd.backward(tensors: self, grad_tensors: gradient, retain_graph, create_graph)
因此,下面两个是等价的:
loss.backward(gradient=weight)
torch.autograd.backward(loss, weight)