【发布时间】:2020-01-11 10:30:27
【问题描述】:
每当我调用 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,如果我手动终止它,脚本执行也会终止。
我在 Windows 7 上使用 conda (conda create --name grad_test pytorch -c pytorch) 在最新的稳定版本(python 3.7、pytorch 1.2.0)中安装了 pytorch。
【问题讨论】: