【深度学习】YOLOv9继续训练——断点训练方法

YOLOv9继续训练主要分为两个情况:

其一、训练过程中意外中断,未完成训练预期的epoch数量;

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

一、训练过程中意外中断

将train.py文件中的442行,即patser中第9个参数resume,将其设置为default=True即可


 

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

注意点:如果你想从上一次训练结果中回复训练,那么首先保证你的训练结果(一般都存放在/runs/train目录下)在保存目录中代号为最大的

断续前训练的设置参数、超参数和每轮训练效果在/runs/train/exp3下的opt.yaml、hyp.yaml、results.csv中有记录

设置好resume参数后,python train.py重新启动训练程序将从上次断续点处开始训练:

二、训练完后,继续增加轮次训练

训练完原有epoch后,但还继续训练,共分为3大步进行程序更改。此处以原本训练epoch为5,已经训练完了,但是没有收敛,继续增加5个epoch训练,总共训练10epoch为例子。

备注:不是直接在train.py设置weight参数为训练好的权重(last.pt),然后设置epoch为10,这样不行,因为学习率等超参数启动时还是按照默认的。

第一步:

将train.py文件中,patser中第5个参数从5改为10,第9个参数resume设置为default=True

原本训练完的参数设置图:

继续训练的参数设置图:

第二步:

对utils/torch_utils.py中大致458行smart_resume()函数进行更改:

添加一行代码:ckpt[‘epoch’] =5  #原本训练完的epoch
修改代码:start_epoch = ckpt[‘epoch’](后面不加1)
注意:这两处修改是为了断点训练,如果不再需要断点训练,请将这两处修改都还原。

第三步:

在trainds.py文件中,大概487行如图添加一行代码:

init_epochs = opt.epochs(记录最开始由epochs参数设定的数值10,因为replace这行代码,将epochs替换成了原始的epochs数值5)


修改代码:如图进行添加,reinstate恢复成设定的epochs,

opt.cfg, opt.weights, opt.resume,opt.epochs = '', str(last), True,init_epochs

 完成以上3步,可以进行继续训练了,python trainds.py:

原本训练完的显示记录:

继续训练的显示记录:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/275525.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于YOLOv8深度学习的野外火焰烟雾检测系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标检测

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推…

【相关问题解答1】bert中文文本摘要代码:import时无法找到包时,几个潜在的原因和解决方法

【相关问题解答1】bert中文文本摘要代码 写在最前面问题1问题描述一些建议import时无法找到包时,几个潜在的原因和解决方法1. 模块或包的命名冲突解决方法: 2. 错误的导入路径解决方法: 3. 第三方库的使用错误解决方法: 4. 包未正…

Text-to-SQL 工具Vanna进阶|数据库对话机器人的多轮对话

跟数据库对话机器人对话,我可不止一个问题。 可能基于第一句问话,还有第二句、第三句问话。。。第N句对话。所以本文测试了多轮对话功能。 单轮对话的环境搭建参考博客 Text-to-SQL 工具Vanna + MySQL本地部署 | 数据库对话机器人 我的数据是这样 1. 基础配置 import vann…

Parade Series - WebRTC ( < 300 ms Low Latency ) T.B.D

Parade Series - FFMPEG (Stable X64) 延时测试秒表计时器 ini/config.ini [system] homeserver storestore\nvr.db versionV20240312001 verbosefalse [monitor] listrtsp00,rtsp01,rtsp02 timeout30000 [rtsp00] typelocal deviceSurface Camera Front schemartsp ip127…

Heparin-PCL/PLGA/PLA Heparin肝素偶联聚己内酯/聚乳酸/聚乳酸羟基乙酸共聚物

肝素的结构与性质:肝素是一种硫酸化多糖,具有高度负电荷。它由重复的二糖单元组成,这些单元含有硫酸基团,这些硫酸基团负责其负电荷。 纳米材料的电荷特性:纳米材料可以通过化学修饰来带正电荷或负电荷。例如&#xf…

编曲学习:钢琴编写 人性化、逻辑预制 工程音频导出

第8课 钢琴编写 人性化、逻辑预制 工程音频导出小鹅通-专注内容付费的技术服务商https://app8epdhy0u9502.pc.xiaoe-tech.com/live_pc/l_65e30339e4b064a8cfe56001?course_id=course_2XLKtQnQx9GrQHac7OPmHD9tqbv 音乐创作中,有思路时可以不套学习到的公式,没有思路时可以套…

多维时序 | Matlab实现VMD-CNN-GRU变分模态分解结合卷积神经网络门控循环单元多变量时间序列预测

多维时序 | Matlab实现VMD-CNN-GRU变分模态分解结合卷积神经网络门控循环单元多变量时间序列预测 目录 多维时序 | Matlab实现VMD-CNN-GRU变分模态分解结合卷积神经网络门控循环单元多变量时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现VMD-CN…

科研工具分享-SCI写作课

教程地址【传送门】 所为搭建自己本地的chatGpt,其一就是方便,其二就是没有Ip休眠,这里解释一下,所为ip休眠,就是你长时间不用,就跟电脑自动休眠一样,你需要重新刷新一次网页 他才跟你继续聊天…

群晖 Synology Photos DSM7 自定义文件夹管理照片

背景 众所周知,目前群晖DSM7中使用Synology Photos做照片管理时,个人照片只能默认索引 /home/Photos 文件夹,但是如果个人照片很多或者用户很多时,共享文件夹/homes 所在的存储空间就会不够用 当然,如果你的存…

登录阿里云镜像仓库报认证失败

阿里云web界面登录输入用户名和密码都是正确的,但是用docker login登录一直报认证失败。 解决问题方案: https://www.alibabacloud.com/help/zh/acr/support/faq-about-errors-of-docker-login-docker-push-and-docker-pull

程序猿成长之路之socket篇-socket通信原理简介

hello,各位小伙伴们大家好,上次以RSA加解密算法介绍作为密码学篇的结尾后,时光飞逝,转眼到了新一年的春季,这次将介绍一下socket通信和编程原理。 什么是socket(套接字)? socket(套…

DataGrip 2023:让数据库开发变得更简单、更高效 mac/win

JetBrains DataGrip 2023是一款功能强大的数据库IDE,专为数据库开发和管理而设计。通过DataGrip,您可以连接到各种关系型数据库管理系统(RDBMS),并使用其提供的一组工具来查询、管理、编辑和开发数据库。 DataGrip 2023软件获取 DataGrip 2…

【网络安全】手机不幸被远程监控,该如何破解,如何预防?

手机如果不幸被远程监控了,用三招就可以轻松破解,再用三招可以防范于未然。 三招可破解可解除手机被远程监控 1、恢复出厂设置 这一招是手机解决软件故障和系统故障的终极大招。只要点了恢复出厂设置,你手机里后装的各种APP全部将灰飞烟灭…

Leetcode 240. 搜索二维矩阵 II

题目描述: 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性: 每行的元素从左到右升序排列。 每列的元素从上到下升序排列。 示例 1: 输入:matrix [[1,4,7,11,15],[2,5,8,12,19],[3,6…

NAS网络存储的简单了解

一、概述 NAS网络存储,即网络附加存储(Network Attached Storage),是一种具有很大存储容量的电脑外敷设备,它通过网络直接连接到交换机上。NAS的主要功能是为网络区域存储(或磁盘)的用户提供数据…

设计模式 -- 2:策略模式

目录 总结部分:策略模式的优点部分代码部分 总结部分: 策略模式和简单工厂模式很像 区别在于 简单工厂模式 需求的是由工程创造的类 去给客户直接答案 而策略模式在于 我有主体 一个主体 根据策略的不同来进行不同的计算 我的主体就负责收钱 然后调度相…

让若依生成的service、mapper继承mybatisPlus的基类

前言:若依继承mybatisPlus后,生成代码都要手动去service、serviceImpl、mapper文件去继承mybatisplus的基类,繁琐死了。这里通过修改若依生成模版从而达到生成文件后直接使用mybatisPlus的方法。 一、首先找到若依生成模版文件位置&#xff…

《安富莱嵌入式周报》第334期:开源SEM扫描电子显微镜,自制编辑器并搭建嵌入式环境,免费产品设计审查服务,实用电子技术入门,USB资料汇总,UDS统一诊断

周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz! 视频版: https://www.bilibili.com/video/BV1om411Z714/ 《安富莱嵌入式周报》第334期:开源SEM…

xcode15,个推推送SDK闪退问题处理办法

个推iOS推送SDK最新版本 优化了xcode15部分场景下崩溃问题,以及回执上传问题,近期您的应用有发版计划,建议更新SDK: 1)GTSDK更新到3.0.5.0以及以上版本; 2)GTCommonSDK更新到3.1.0.0及以上版本…

深入理解Python中的面向对象编程(OOP)【第129篇—Scikit-learn的入门】

深入理解Python中的面向对象编程(OOP) 在Python编程领域中,面向对象编程(Object-Oriented Programming,简称OOP)是一种强大而灵活的编程范式,它允许开发者以对象为中心组织代码,使得…