最近自己写了个模型,采用mmdetection框架去训练coco数据集。由于数据集较大,单卡情况下预计需要一个月时间才能完成1x的训练。这无法容忍,于是采用多卡分布式训练。

首先,第一次由于batchsize过大,导致显存爆了。
调整batchsize后,报如下错误:

在这里插入图片描述显示有信号泄露警告,起初以为只是警告忽略就可,主要关注其中的error错误,百度这个错误,网上并没有关于这个问题的解答。于是关注于警告的部分,这个警告的解决方案,可以参考相关博文:
UserWarning: semaphore_tracker: There appear to be 4 leaked semaphores to clean up at shutdown

但是并不能解决我的问题,通过请教openmmlab的大佬,得到如下回答:“你这是上一次跑出错或者暂停了,然后没清理上次的残留进程。如果不太会的话,每次跑之前killall python一下(确保没其他有用的python程序在跑)。”

我之前batchsize过大时暂停过一次,后续又暂停多吃,残留的线程太多了,最终kill掉之后,完美解决!

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐