YOLOX训练C盘爆满解决方案

0. 问题描述COCO数据集训练到一半突然中断,看C盘显示红色,已经没多少内存了(训练时,生成在AppData/Temp中的临时文件太多)
如图所示:随着epoch的增加,文件越来越大(图中还是yolox-tiny),如果采用yolox-x,C盘不大的一下爆了!!
在这里插入图片描述
1. 问题原因
YOLOX-main/yolox/evaluators/coco_evaluator.py中203行左右**tempfile.mkstemp()**创建文件后,没有进行close()和remove()操作
如下图
在这里插入图片描述
2. 解决方法
(1)方法一
如上图,添加os.close(_)与os.remove(tmp)两行代码,直接把刚创建的文件用完后删除。【注意:开头导入os模块】
(2)方法二
问题已经知道,可以采用with…as…的创建方式,自动删除和关闭文件。
(3)方法三
如果想保留各临时文件,又不想C盘炸了,那直接更改保存位置到自定义路径。
代码位置:Anoconda/envs/使用的环境/Lib/tempfile.py中159行-185行左右
在这里插入图片描述
直接把直接dirlist的操作,改为自定义文件夹位置,如下:
在这里插入图片描述
(4)方法四
定时手动清理temp中文件
注意:VOC格式数据集训练,没有产生临时文件,因为它采用了with…as…的文件创建方法。具体可以参考voc_evaluater.py结尾部分

资料参考
Tempfile模块:https://blog.csdn.net/zhtysw/article/details/82778354
tempfile.mkstemp 详解:https://blog.csdn.net/weixin_43490422/article/details/107555737

猜你喜欢

转载自blog.csdn.net/weixin_45679938/article/details/123264869