代码之家  ›  专栏  ›  技术社区  ›  A.E

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

  •  0
  • A.E  · 技术社区  · 5 年前

    我在努力深入地理解皮托克的故事;我想观察一个简单张量在经过一个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()
    

    RuntimeError: grad can be implicitly created only for scalar outputs
    

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

    0 回复  |  直到 5 年前
        1
  •  4
  •   jodag    5 年前

    .backward (没有参数)关于幺正张量/标量张量。也就是说,有一个元素的张量。

    例如,你可以

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

    自从 T 将是一个标量输出。

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

    推荐文章