最近自己写了个模型,采用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掉之后,完美解决!
版权声明:本文为weixin_44777827原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。