我用 Pytorch 在 GPU 上训练一个网络。但是,在最多 3 个 epoch 之后,代码停止并显示一条消息:
Killed
未给出其它错误消息。 我监控了内存和 GPU 使用情况,运行过程中仍有空间。我查看了/var/sys/dmesg 以找到与此相关的详细消息,但是没有输入带有"kill"的消息。可能有什么问题?
库达版本:9.0 Pytorch 版本:1.1.0
如果您有root访问权限,则可以通过dmesg
命令检查这是否是内存问题。
就我而言,由于out of memory
,该进程被内核杀死了。 我发现将张量需要 grad 保存到一个列表的原因是每个张量存储一个完整的计算图,这会消耗大量内存。
我通过保存张量而不是将损失函数返回的张量保存到列表中来解决此问题.detach()
。
您可以在终端上键入"dmesg"并向下滚动到底部。它将向您显示为什么它被杀死的信息。
既然你提到了 PyTorch,那么你的进程很可能由于"内存不足"而被终止。若要解决此问题,请减小批大小,直到不再看到错误。
希望这有帮助! :)
为了给那些会理解这个的人一个想法:
显然,Slurm 安装在机器上,所以我需要在 Slurm 上给出任务。