我刚刚在Python 3.7.2(macOS)上安装了torch-1.0.0,并尝试了本教程,但使用了以下代码:
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)
Run Code Online (Sandbox Code Playgroud)
打印None
出的不是预期的。
有什么问题?
这是预期的结果。
.backward
仅在叶节点中累积梯度。out
不是叶节点,因此grad为None。
autograd.backward
也做同样的事情
autograd.grad
可用于查找任何张量wrt到任何张量的梯度。因此,如果您autograd.grad (out, out)
得到的(tensor(1.),)
是预期的输出。
参考
归档时间: |
|
查看次数: |
1461 次 |
最近记录: |