Linux系统训练模型进程被killed,其实类似于显存out of memory

博客探讨了Linux中进程因内存不足被杀死的问题。作者通过dmesg命令发现了内存(包括交换内存swap)不足的原因,并观察到训练过程中内存逐渐耗尽。重点检查了模型中list.append()的使用和dataset数据处理时的浅拷贝问题,提出了解决思路。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、寻找原因

Linux中进程被killed时没有任何提示。
在这里插入图片描述

可以尝试使用命令(在任何目录下)

sudo dmesg | tail -7

查看出错日志。

发现
在这里插入图片描述

意思是要使用的虚拟内存(linux里也叫交换内存swap)不够了。我搞了半天的虚拟内存,不管用。

后来我打开Linux中的系统监视器,盯着训练过程发现,是训练时内存被逐步填满,进而使用虚拟内存。

所以根本原因是内存不足

就像显存不足out of memory一样,只不过可能是因为什么东西没有放在显存里。

如此一来,这个问题就殊途同归了,如果你最近对原作者的模型有过什么更改,那么问题大概率是出在这里。

二、解决思路

1.是否在模型中使用了list.append()

2.在对dataset数据处理时是否使用了浅拷贝(对array直接使用=号)

3.未完待续

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值