Autodl服务器上训练YOLOv7改进代码时,突然中断并报错:OSError: [Errno 28] No space left on device

参考链接

报错原因

IO读写的时候,临时占用的内存不够,从而需要引入新的临时文件夹

解决方案

分析原因:

  1. 开启--cache-images训练参数:因为最近为了加速训练YOLOv7,所以听取网友建议,打开了训练参数--cache-images,这个参数的作用就是将训练用到的数据加载到内存中,这样就能加快数据读取速度从而训练得更快
  2. 过度占用系统盘autodl-nas:训练结果我是保存在内蒙A区的公用网盘autodl-nas中的,所以在生成训练权重过程中可能就会占用系统盘什么进程巴拉巴拉的吧,不懂(感觉autodl-nas的作用就像C盘系统盘,如果某一时间段系统盘占满了,程序就会崩溃,显示内存不足。而autodl-tmp就相当于D盘,随便存放多大的数据,都不会影响电脑的数据读取,也就是不会导致程序崩溃)

解决:

因为是训练到中途断掉的,所以我将开启断点训练。针对OSError: [Errno 28] No space left on device最核心的步骤其实是将训练结果保存在autodl-tmp(不要保存在autodl-nas中了!)

  1. 拷贝已有的结果到autodl-tmp文件夹:Linux命令是cp -r dir1 dir2

例如,我是:

cp -r /root/autodl-nas/NeimengA_runs/train/yolov7-FasterNet-new-from-yolov7-distillation2 /root/autodl-tmp
  1. 更改已拷贝到autodl-tmp文件夹中的训练文件夹中opt.yaml相应内容:更改projectsave_dir这两个参数,将它们指定到/root/autodl-tmp打头的某一具体路径中(自己视情况而定去安排是哪个文件夹)

例如,我是:

project: /root/autodl-tmp
save_dir: /root/autodl-tmp/yolov7-FasterNet-new-from-yolov7-distillation2
  1. 开始断点训练:核心是设置使用resume参数👉python train.py --resume 指明你想要接着训练的权重位置

例如,我是:

python train.py --cfg cfg/training/yolov7-FasterNet-new.yaml --name yolov7-FasterNet-new-from-yolov7-distillation --resume /root/autodl-tmp/yolov7-FasterNet-new-from-yolov7-distillation2/weights/last.pt

上面命令的前端部分参数,是我最开始就设定好的训练参数,为了保险起见我就是在训练命令的前提下添加的断点设置,即,以下就是我训练时的命令:

python train.py --cfg cfg/training/yolov7-FasterNet-new.yaml --name yolov7-FasterNet-new-from-yolov7-distillation
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孟孟单单

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值