Pytorch Autograd:运行时错误 "grad can be implicitly created only for scalar outputs" 是什么意思
Pytorch Autograd: what does runtime error "grad can be implicitly created only for scalar outputs" mean
我正在尝试深入了解 Pytorch autograd;我想在通过 sigmoid 函数后观察一个简单张量的梯度,如下所示:
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
我看到另一个 有类似的问题,但那里的答案不适用于我的问题。谢谢
该错误意味着您只能在 unitary/scalar 张量上 运行 .backward
(不带参数)。 IE。具有单个元素的张量。
例如,您可以这样做
T = torch.sum(S)
T.backward()
因为 T
将是标量输出。
我在 中发布了一些关于使用 pytorch 计算张量导数的更多信息。
我正在尝试深入了解 Pytorch autograd;我想在通过 sigmoid 函数后观察一个简单张量的梯度,如下所示:
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
我看到另一个
该错误意味着您只能在 unitary/scalar 张量上 运行 .backward
(不带参数)。 IE。具有单个元素的张量。
例如,您可以这样做
T = torch.sum(S)
T.backward()
因为 T
将是标量输出。
我在