首页IT科技yolov5中断训练(yolov5ds-断点训练、继续训练、先终止训练并调整最终epoch(yolov5同样适用))

yolov5中断训练(yolov5ds-断点训练、继续训练、先终止训练并调整最终epoch(yolov5同样适用))

时间2025-08-05 01:51:40分类IT科技浏览10067
导读:参考链接 🍀yolov5 继续训练 🍅yolov5ds:Yolov5同时进行目标检测和分割分割(yolov5ds作者的博客介绍) github地址:👉yolov5ds 训练yolov5ds案例:用YOLOv5ds训练自己的数据集——...

参考链接

🍀yolov5 继续训练 🍅yolov5ds:Yolov5同时进行目标检测和分割分割(yolov5ds作者的博客介绍) github地址:👉yolov5ds 训练yolov5ds案例:用YOLOv5ds训练自己的数据集——同时检测和分割

两种情况:

训练过程中中断了                 ,继续训练 训练完了                           ,但是未收敛         ,在这个基础上                 ,还想用这个权重                 、学习率等参数继续训练多一些批次

不再需要断点训练后                          ,就一定要记得把以下修改全部都恢复成原状!!!

1. 训练过程中中断了         ,继续训练

断电                           、或者什么原因中断了         ,比如设定epoch为200                          ,但是在90这里中断了                  ,想从断点这里继续训练到 200个epoch

直接在trainds.py设置参数--resume的defualt=True即可(在代码 517行附近)

parser.add_argument(--resume, nargs=?, const=True, default=True, help=resume most recent training)

或者参考这个芒果大佬的方式:直接调用命令行开始resume         ,他还变了加载的权重(我没有变                          ,但是也能行                  ,保险起见还是参照大佬的方式吧,我是从这篇博文里面摘录过来的:手把手调参最新 YOLOv7 模型 训练部分 - 最新版本(二))

python train.py --resume D:\Pycharm_Projects\yolov7\runs\train\exp19\weights\last.pt

如果觉得数值差不多稳定了                          ,但是距离最终设置的epoch还很远                           ,所以想要停止训练但是又得到yolov5在运行完指定最大epoch后生成的一系列map         、混淆矩阵等图

(虽然yolov5默认有早停机制,但是是要再多训练100轮如果结果还是没改善才会自动停止) 先终止训练 找到run/train/exp(注意找对文件夹                 ,exp是本轮训练时生成的文件夹)中的opt.yaml文件                           ,修改其中的epochs为最近的一个比较大的数值         ,比如现在我训练到了169轮                 ,我就先终止训练                          ,然后将这个epochs改成了170         ,再将resume的default值改为True继续训练 如上         ,直接在trainds.py设置参数--resume的defualt=True即可(在代码 517行附近)

2. 训练完原有epoch                          ,但还继续训练(与参考链接操作不同)

训练完原有epoch后                  ,但还继续训练         ,比如设置epoch为200                          ,已经训练完了                  ,但是没有收敛等原因想使用训练了200 epoch的权重继续训练100个epoch, 总共就是300个epoch

不是直接在train.py设置weight参数为训练好的权重(last.pt)                          ,然后设置epoch为100                           ,这样不行,因为学习率等超参数启动时还是按照默认的                  。                          。         。(自己把一些超参数设置好也可以                 ,但感觉有点烦) 在train.py代码里面设置就可以使用原有200 epoch的权重后继续训练到300epoch

❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀

以训练了5个epoch后                           ,想继续训练到15个epoch为例:

step1: (同1.)先将--resume的defualt改为True         ,再将--epochs设为想要继续训练到的epochs                 ,即defualt=300(在trainds.py代码的513行附近)

parser.add_argument(--epochs, type=int, default=15)

step2:

在trainds.py文件中                          ,按下Ctrl+F搜索Epochs定位到大概200行的位置         ,做以下两处修改:

添加一行代码:ckpt[epoch] = 5 修改代码:start_epoch = ckpt[epoch](后面不加1)

注意:这两处修改是为了断点训练         ,如果不再需要断点训练                          ,请将这两处修改都还原         。

step3:

可以直接简化为下面的操作:

找到run/train/exp(注意找对文件夹                  ,exp是本轮训练时生成的文件夹)中的opt.yaml文件         ,修改其中的epochs为你想要改为的最大的epoch值

#--------------------------------这个编辑代码的步骤可以省略了---------------------------------------------#

在trainds.py文件中                          ,按下Ctrl+F搜索replace定位到大概565行的位置                  ,做以下两处修改:

如图添加一行代码:init_epochs = opt.epochs(记录最开始由epochs参数设定的数值15,因为replace这行代码                          ,将epochs替换成了原始的epochs数值5) 修改代码:如图进行添加                           ,reinstate恢复成设定的epochs

#-----------------------------------------------------------------------------------------------------------------#

🙋‍🙋‍🙋‍🙋‍🙋‍🙋‍🙋‍🙋‍🙋‍🙋‍🙋‍🙋‍🙋‍🙋‍🙋‍🙋‍🙋‍

做完以上3个修改,训练就会从第5个epoch的基础上进行继续训练到15个epoch                 ,和直接设置epoch为15一样

老师让我测试了一下:这个继续训练对数据集发生变化的有效没有? 老师的解释:理论上应该是没有影响                           ,虽然数据集变化         ,但训练只是沿用前面的权重表就可以                 ,比如增加了训练数据应该没有问题

前5个epoch的数据集情况:总数为708张                          ,按9:1划分得到 -> 训练集637张         ,验证集71张 继续训练到15个epoch的新数据集情况:总数为100张         ,按9:1划分得到 -> 训练集90张                          ,验证集10张

👉经测试                  ,是有效的         ,能够继续训练且正确                          ,可参看以下3张图片:

声明:本站所有文章                  ,如无特殊说明或标注,均为本站原创发布                          。任何个人或组织                          ,在未征得本站同意时                           ,禁止复制                 、盗用                          、采集         、发布本站内容到任何网站         、书籍等各类媒体平台                 。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理         。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
韩国三星手机官网价格表大全(韩果社 韩国elago三星i9220 Galaxy Note烤漆外壳 手机壳 手机套淘宝网) win10查找我的设备怎么关闭(Windows 10如何开启“查找我的设备”功能)