每当我调用 autogradsbackward
我的脚本永远不会终止。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
,如果我手动终止它,脚本执行也会终止。
conda create --name grad_test pytorch -c pytorch
我在最新的稳定版本(python 3.7、pytorch 1.2.0)中使用 conda () 在 Windows 7 上安装了 pytorch 。