每当我调用 autograds backward
时,我的脚本永远不会终止。 backward
本身不是阻塞的,它之后的所有行仍然被执行,脚本只是没有终止。似乎后台有某种工作线程挂起,但我找不到任何相关信息。
我最初在训练神经网络时遇到了这个问题,但我最终找到了一个具有相同行为的非常短的例子:
import torch
x = torch.randn(3, requires_grad=True)
y = x * 2
print(y)
gradients = torch.tensor([0.1, 1.0, 0.0001], dtype=torch.float)
y.backward(gradients)
print(x.grad)
print("all done")
当我删除 backward
行时,脚本按预期完成。否则我在任务管理器中看到一个进程调用 python
,如果我手动终止它,脚本执行也会终止。
我在最新的稳定版本(python 3.7,pytorch 1.2.0)中使用 conda(conda create --name grad_test pytorch -c pytorch
)在 Windows 7 上安装了 pytorch。
最佳答案
它现在仍然存在,似乎是 Windows 7 特有的问题。
关于python - pytorch autograd 阻止脚本终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57857690/