前情提要

  • 显卡使用的是RTX3090,在云服务器AutoDL上实验的
  • 实验数据:已经完成500轮训练,期间生成的权重已经全部存放weights里面,如下所示
    • 中间轮数生成的权重会比训练结束后的best.ptlast.pt大,中间的会以epoch开头best开头,可能会有40多M,而这两个只有10几M

在这里插入图片描述

步骤

1. 拷贝整个运行train.py之后生成的文件(然后删掉weights文件夹)

这是很重要的步骤!因为把他拷贝到其他地方去,就不会担心新生成的权重会覆盖掉原本的!

下图就是train.py运行之后生成的文件夹里的内容:

在这里插入图片描述

我现在要操作的文件夹名字是:All-lr22

我原本的整个文件路径是:/root/autodl-tmp/train_result/All-lr22

现在我把它拷贝到另外一个路径下去:/root/tf-logs/All-resume,使用下面的命令拷贝之后的路径就变成了/root/tf-logs/All-resume/All-lr22

cp -r /root/autodl-tmp/train_result/All-lr22 /root/tf-logs/All-resume

2. 删掉新路径下的weights里的所有权重,然后挑选一个权重放进去

先删除新路径下的weights文件夹:

rm -rf /root/tf-logs/All-resume/All-lr22/weights

然后新建一个空的weights文件夹:

mkdir /root/tf-logs/All-resume/All-lr22/weights

然后就调用yolov7的test.py查看中间某一个权重的map指标们(以epoch、best开头的都可以),假设找到了best_213.pt权重,就将他拷贝到新的文件夹下去,也就是刚刚新建的/root/tf-logs/All-resume/All-lr22/weights

所以现在的文件夹的weights文件夹里面就只有best_213.pt这一个权重

3. 修改新路径下的opt.yaml

在这里插入图片描述

4. 指定新路径下的weights重的权重的绝对路径,开始断点训练

前提:前面步骤均已完成!

命令如下:

python train.py --resume /root/tf-logs/All-resume/All-lr22/weights/best_213.pt

在这里插入图片描述

接着就出现以下的打印台,起始的epoch数和最终的epoch数已经变为设定值,训练完后就会得到best.ptlast.pt(不过可能会由于训练中没有比best_213.pt好的权重,所以就不会生成best.pt,但是肯定会生成last.pt

在这里插入图片描述

训练结束:

在这里插入图片描述

在这里插入图片描述

  • best.pt也只有10几M了

在这里插入图片描述

5. 还有个小细节

在这里插入图片描述

下图就是已经重写了的

在这里插入图片描述

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐