PyTorch 代码停止并显示消息“Killed”。是什么杀死了它?

问题描述 投票:0回答:4

我使用 Pytorch 在 GPU 上训练网络。然而,最多 3 个 epoch 后,代码会停止并显示一条消息:

Killed

没有给出其他错误消息。 我监控了内存和GPU的使用情况,运行期间仍然有空间。我查看了 /var/sys/dmesg 以找到与此相关的详细消息,但是没有输入带有“kill”的消息。可能是什么问题?

Cuda版本:9.0 Pytorch 版本:1.1.0

linux pytorch
4个回答
12
投票

如果您有root权限,您可以通过

dmesg
命令检查这是否是内存问题。

在我的例子中,由于

out of memory
,该进程被内核终止。 我发现将张量保存到列表中需要 grad 的原因是每个列表都存储整个计算图,这会消耗大量内存。

我通过保存

.detach()
张量而不是将损失函数返回的张量保存到列表中来解决这个问题。


9
投票

您可以在终端上输入“dmesg”并向下滚动到底部。它会向您显示为什么它被杀死的消息。

既然您提到了 PyTorch,那么您的进程很可能由于“内存不足”而被终止。要解决此问题,请减少批量大小,直到不再看到错误。

希望这有帮助! :)


2
投票

为了给遇到这个问题的人一个想法:

显然机器上安装了Slurm,所以我需要在Slurm上分配任务。


0
投票

回复 Soerendip 的评论,因为我无法回复评论。我的猜测是她在 SLURM 的登录节点上运行任务,该节点通常具有较少的计算资源。一旦她将作业提交到计算节点,它就开始工作了。

© www.soinside.com 2019 - 2024. All rights reserved.