文章目录
- 前情提要
- 步骤
- 1. 拷贝整个运行train.py之后生成的文件(然后删掉weights文件夹)
- 2. 删掉新路径下的weights里的所有权重,然后挑选一个权重放进去
- 3. 修改新路径下的opt.yaml
- 4. 指定新路径下的weights重的权重的绝对路径,开始断点训练
- 5. 还有个小细节
前情提要
- 显卡使用的是RTX3090,在云服务器AutoDL上实验的
- 实验数据:已经完成
500
轮训练,期间生成的权重已经全部存放weights
里面,如下所示- 中间轮数生成的权重会比训练结束后的
best.pt
、last.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.pt
、last.pt
(不过可能会由于训练中没有比best_213.pt
好的权重,所以就不会生成best.pt
,但是肯定会生成last.pt
)
训练结束:
best.pt
也只有10几M了
5. 还有个小细节
下图就是已经重写了的