Pytorch Autograd:运行时错误"grad can be implicitly created only for scalar outputs"是什么意思



我试图深入了解 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

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

该错误意味着您只能在酉/标量张量上运行.backward(没有参数)。 即具有单个元素的张量。

例如,你可以做

T = torch.sum(S)
T.backward()

因为T将是标量输出。

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

相关内容

  • 没有找到相关文章

最新更新