gpt4 book ai didi

python - .backward() 之后 pytorch grad 为 None

转载 作者:行者123 更新时间:2023-12-04 18:19:11 25 4
gpt4 key购买 nike

我刚刚在 Python 3.7.2 (macOS) 上安装了 torch-1.0.0,并尝试了 tutorial ,但是以下代码:

import torch
x = torch.ones(2, 2, requires_grad=True)
y = x + 2
z = y * y * 3
out = z.mean()
out.backward()
print(out.grad)

打印 None 这不是预期的。

有什么问题?

最佳答案

这是预期的结果。
.backward 仅在叶节点中累积梯度。 out 不是叶节点,因此 grad 是 None。
autograd.backward 也做同样的事情
autograd.grad 可用于找到任何张量 w.r.t 到任何张量的梯度。所以如果你做 autograd.grad (out, out) 你会得到 (tensor(1.),) 作为输出,这是预期的。

引用:

  • Tensor.backward ( https://pytorch.org/docs/stable/autograd.html#torch.Tensor.backward )
  • autograd.backward (https://pytorch.org/docs/stable/autograd.html#torch.autograd.backward)
  • autograd.grad (https://pytorch.org/docs/stable/autograd.html#torch.autograd.grad)
  • 关于python - .backward() 之后 pytorch grad 为 None,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54150684/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com