Tensorflow Pytorch Autograd:运行时错误是什么;grad只能为标量输出隐式创建;意思是

Tensorflow Pytorch Autograd:运行时错误是什么;grad只能为标量输出隐式创建;意思是,tensorflow,neural-network,pytorch,autograd,automatic-differentiation,Tensorflow,Neural Network,Pytorch,Autograd,Automatic Differentiation,我试图深入地理解Pytorch autograd;我想在通过一个S形函数后观察一个简单张量的梯度,如下所示: import torch from torch import autograd D = torch.arange(-8, 8, 0.1, requires_grad=True) with autograd.set_grad_enabled(True): S = D.sigmoid() S.backward() 我的目标是获取D.grad(),但即使在调用它之前,我也会得到

我试图深入地理解Pytorch autograd;我想在通过一个S形函数后观察一个简单张量的梯度,如下所示:

import torch
from torch import autograd 

D = torch.arange(-8, 8, 0.1, requires_grad=True)

with autograd.set_grad_enabled(True):
    S = D.sigmoid()
S.backward()
我的目标是获取D.grad(),但即使在调用它之前,我也会得到运行时错误:

RuntimeError: grad can be implicitly created only for scalar outputs

我看到另一个有类似问题的人,但那边的答案不适用于我的问题。谢谢

该错误意味着您只能在幺正/标量张量上运行
.backward
(无参数)。也就是说,一个单元素张量

例如,你可以

T = torch.sum(S)
T.backward()
因为
T
将是标量输出


我发布了更多关于使用pytorch计算中张量导数的信息。

@jodag-谢谢你的回答