我是靠谱客的博主 风趣星星,这篇文章主要介绍纠正yoloV7 断点后训练的错误说明与优化误区:重新训练是否需要配置OTP与HYP?,现在分享给大家,希望可以做个参考。

背景:

由于1)训练的时间比较长;2)设备性能原因(如内存报错);3)训练效果不佳,想继续训练;4)不想重头开始训练。所以继续训练有时需要的。然而本人在阅读网上的断点后继续训练的教程,发现存在不少误区。为此,本文将列出其他文章常见的误区,以及优化建议。

如有错误,请指正!谢谢!

原文地址:https://blog.csdn.net/u014613075/article/details/128883660

作者:marsloving

误区:重新训练是否需要配置OTP与HYP?

答案是:无需的,因为设置了resume 为True的时候,train的原配置会被【原训练weight 】权重文件路径下的原OTP 与 原HPY 代替,所以无须再修改train 对应的配置。

但如果需要修改配置,也可以以下方法进行修改:

断点后,继续训练:

有三情况,可以需要继续训练:

  • 手动或意外停止了训练;

  • 2)之前设置的已经训练完成,但依然想继续训练。

  • 3)需要修改配置文件,再训练。

注意1:

  • 根据本修改会导致:接下来的训练,采用train.py 文件当前的配置,而非之前训练的配置。(常见规避风险的方法为:重新训练前,先保存之前的权重文件。)

注意2:

  • 改变迭代数量,如果学习曲线不是固定的,会有影响,因为动态学习曲线是根据迭代的曲线变化的。

为了适用这三种情况,都有可能发生。

本文建议修改如下(优点在于:当之后的续训,只需要将resume 的参数设置为 Ture):

在train.py 文件,resume 增加代码,复制当前train.py 的配置(即以当前文件为准,而非此前的配置)

复制代码
1
opt_resume = deepcopy(opt) #完成训练时,还可以继续训练

在train.py 的# Epochs 下,修改代码,判断是否resume模式,如果是,则提示用户输入:从第几个训练开始,避免设置的时候混乱。

复制代码
1
2
3
4
5
6
7
try: if opt_resume.resume: #如果有重新开始的参数 a = int(input("请输入上次重新训练数:")) start_epoch = a #根据实际修改 epochs = opt_resume.epochs # 针对已经完成训练,还想继续训练,总次数(在本文件参数eporchs设置) 需要比之前训练的次数要大 except: start_epoch = ckpt['epoch'] + 1 #原代码

最后

以上就是风趣星星最近收集整理的关于纠正yoloV7 断点后训练的错误说明与优化误区:重新训练是否需要配置OTP与HYP?的全部内容,更多相关纠正yoloV7内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(65)

评论列表共有 0 条评论

立即
投稿
返回
顶部