使用YOLO训练好自己的模型并持续训练【教程二】
前言
在使用已经训练好的 YOLOv5 模型继续训练时,如果减少了 yaml 文件中的 classes 分类数,这会对模型产生影响。具体影响取决于以下几个方面:
类别数量减少:如果你在继续训练时减少了 classes 中的类别数量,模型将不会再检测那些已移除的类别。这意味着模型的权重将被重新调整以适应新的类别数量和类别标签。这会导致以下问题:
权重调整:模型会重新分配权重,原有的类别可能会受到影响。
检测准确性:减少类别数量可能导致检测准确性降低,尤其是在剩余类别与被移除类别有特征重叠的情况下。
训练数据的一致性:如果新的训练数据集和标签文件与原始训练数据集不一致(即标签数量和类别数量不同),模型可能会因为标签和类别的改变而表现异常。
建议做法
如果你确实需要减少类别数量,以下是一些建议的做法:
重新训练:最好从头重新训练模型,确保新数据和类别能够一致且无干扰地训练模型。
数据预处理:在继续训练前,确保所有训练数据和标签文件已被正确预处理,且与新的类别定义一致。
类别映射:如果只是减少部分不常见类别,可以考虑将这些类别映射到一个通用的类别,如 other,以减少对模型的干扰。
具体操作步骤
更新 YAML 文件:
更新 data.yaml 文件中的类别列表,减少不需要的类别。
我这里以训练狗与猫测试
第一次训练狗 :
Classes
nc: 2 # number of classes
names: [
‘dog_src’,
‘dog_tar’,
] # class names
训练后生成的best模型预测没有问题,能正常使用,但是当我想要继续训练猫时用了新的cat.yaml文件:
Classes
nc: 2 # number of classes
names: [
‘cat_src’,
‘cat_tar’,
] # class names
这里创建完数据集后我继续尝试使用 best 进行模型迭代,此时训练后的模型并不能识别狗了,原因就是classess被我减少了,也就是说,继续迭代的模型训练,我们需要保留以前的classes:
Classes
nc: 4 # number of classes
names: [
‘dog_src’,
‘dog_tar’,
‘cat_src’,
‘cat_tar’,
] # class names
更新后如上所示:
重新训练:
–weights best.pt --data data/myDog.yaml --workers 1 --batch-size 8
训练后进行预测:




相关文章:
使用YOLO训练好自己的模型并持续训练【教程二】
前言 在使用已经训练好的 YOLOv5 模型继续训练时,如果减少了 yaml 文件中的 classes 分类数,这会对模型产生影响。具体影响取决于以下几个方面: 类别数量减少:如果你在继续训练时减少了 classes 中的类别数量,模型将不…...
STC32G/F/8H通用无刷电机驱动板
STC32G/F/8H通用无刷电机驱动板 📌相关篇《低成本STC32G8K64驱动控制BLDC开源入门学习方案》 ✨该驱动板是在上一版的基础上改版而来。这里的STC32G/F/8H所指的是封装型号为-LQFP48的STC32G8K64、STC32G12K128、STC32F12K54、STC8H8K64U。是一款兼容有感和无感设计的…...
java Web 优秀本科毕业论文系统用eclipse定制开发mysql数据库BS模式java编程jdbc
一、源码特点 JSP 优秀本科毕业论文系统是一套完善的web设计系统,对理解JSP java serlvet 编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,eclipse开发,数据库为Mysql5.0&a…...
SAP_MMABAP模块_MM60物料清单通过增强新增物料描述
业务背景: 用户需要在系统标准的物料主数据查询报表MM60中,添加物料组描述,一直以来,我都觉得标准的MM60显示的内容字段不够多,不太好用。 以往都是给用户新开发一个物料主数据查询报表来解决的,但是这次刚…...
lodash中flush的使用(debounce、throttle)
在项目的配置中,看到了一个请求,类似是这样的 import { throttle } from lodash-es// 请求函数 async function someFetch(){const {data} await xxx.post()return data }// 节流函数 async function throttleFn(someFetch,1000)// 执行拿到数据函数 a…...
设计高并发秒杀系统:保障稳定性与数据一致性
✨✨谢谢大家捧场,祝屏幕前的小伙伴们每天都有好运相伴左右,一定要天天开心哦!✨✨ 🎈🎈作者主页: 喔的嘛呀🎈🎈 目录 引言 一. 系统架构设计 1. 系统架构图 二、 系统流程 三…...
从源码到成品:直播电商与短视频带货APP的开发之路
本篇文章,笔者将详细探讨从源码到成品,直播电商与短视频带货APP的开发过程。 一、市场调研与需求分析 通过用户调研,可以确定目标用户群体的需求,从而为产品的功能设计提供依据。 1.1市场分析 消费者对视频内容的偏好ÿ…...
C++OCR API减轻人们文字录入的负担
曾几何时,许多大企业会设立文字录入专员的岗位。相信有不少人第一份实习工作就是录入资料,文档、发票、证件等形形色色的文件堆积如山,日积月累的敲击键盘,一张一张的录入电脑系统。这种工作是枯燥的,可以练就文字录入…...
web安全基础名词概念
本节内容根据小迪安全讲解制作 第一天 域名: 1.1什么是域名? 网域名称(英语:Domain Name,简称:Domain),简称域名、网域,是由一串用点分隔的字符组成的互联网上某一台计算机或计算机组的名称&a…...
ctfshow-web入门-文件上传(web161、web162、web163)远程包含
目录 1、web161 2、web162 3、web163 1、web161 先传配置文件,可以上传成功 因为我前面给的 .user.ini 都是带了图片头 GIF89a 的,前面的题这个图片头可以去掉,但是在这里如果去掉是不行的。 因此后面上传的东西我们都带上这个图片头&…...
【Gradle】(三)详细聊聊依赖管理:坐标、依赖配置、依赖传递、依赖冲突
文章目录 1.概述2.依赖管理2.1.坐标2.2.依赖的基本概念2.3.依赖配置(Dependency configurations)2.3.1.依赖路径2.3.2.依赖配置与依赖路径的关联 2.4.依赖传递2.4.1.准备工作2.4.2.运行时依赖传递jar包生成与依赖配置依赖树打印使用 Dependency Analyzer…...
C#数据类型:object、var和dynamic的比较与应用
在C#中,object、var和dynamic虽然常被提及为可以处理多种数据类型的“万能”方式,但它们各自有不同的应用场景、特性和优缺点。下面我将用通俗易懂的方式结合示例来详细说明这三者的区别与应用。 1. object 定义与应用场景:object是C#中所有…...
【面试题】MySQL(第一篇)
1. MySQL是什么? MySQL是一种开源的关系型数据库管理系统(RDBMS),它使用结构化查询语言(SQL)进行数据管理。MySQL具有高性能、可靠性、可扩展性和兼容性等特点,广泛应用于Web应用开发中。 2. …...
SQL Server集成服务(SSIS):数据集成的瑞士军刀
SQL Server集成服务(SSIS):数据集成的瑞士军刀 在数据仓库和大数据处理领域,SQL Server集成服务(SSIS)扮演着至关重要的角色。作为微软SQL Server套件的一部分,SSIS提供了一套强大的工具&#…...
鸿蒙开发HarmonyOS NEXT (三) 熟悉ArkTs (上)
一、自定义组件 1、自定义组件 自定义组件,最基础的结构如下: Component struct Header {build() {} } 提取头部标题部分的代码,写成自定义组件。 1、新建ArkTs文件,把Header内容写好。 2、在需要用到的地方,导入…...
值传递与引用传递:理解Java中的参数传递机制
值传递与引用传递:理解Java中的参数传递机制 1、值传递(Call by Value)2、引用传递(Call by Reference)3、总结 💖The Begin💖点点关注,收藏不迷路💖 值传递和引用传递的…...
Qt常用基础控件总结—带边框的部件(QFrame和QLabel)
带边框的部件 框架控件QFrame类 QFrame类介绍 QFrame 类是带有边框的部件的基类,带边框部件的特点是有一个明显的边框,QFrame类就是用来实现边框的不同效果的(把这种效果称为边框样式),所有继承自 QFrame 的子类都可以使用 QFrame 类实现的效果。 部件通常是矩形的(其他…...
太多项会毁了回归
「AI秘籍」系列课程: 人工智能应用数学基础 人工智能Python基础 人工智能基础核心知识 人工智能BI核心知识 人工智能CV核心知识 多项式回归的过度拟合及其避免方法 通过添加现有特征的幂,多项式回归可以帮助你充分利用数据集。它允许我们甚至使用简…...
python的魔法方法
python类中的self是什么? 对象的方法都会有一个self参数,类比于c,self就相当于c的this指针。 由一个类可以生成无数个对象,当一个对象的方法被调用时,对象会讲自身的引用作为第一个参数传给该方法,那么pyt…...
[Vue3 + TS + Vite] 获取网页选中内容的字符串格式或HTML格式
获取网页选中内容的字符串格式 let selected_text_by_mouse: any// 获取选中的文字 const mouse_selected_text(event:MouseEvent)>{const selection window.getSelection();if(selection && selection.rangeCount > 0){const content selection.toString();s…...
利用最小二乘法找圆心和半径
#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...
DockerHub与私有镜像仓库在容器化中的应用与管理
哈喽,大家好,我是左手python! Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库,用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...
基于ASP.NET+ SQL Server实现(Web)医院信息管理系统
医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上,开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识,在 vs 2017 平台上,进行 ASP.NET 应用程序和简易网站的开发;初步熟悉开发一…...
Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级
在互联网的快速发展中,高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司,近期做出了一个重大技术决策:弃用长期使用的 Nginx,转而采用其内部开发…...
NFT模式:数字资产确权与链游经济系统构建
NFT模式:数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新:构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议:基于LayerZero协议实现以太坊、Solana等公链资产互通,通过零知…...
蓝桥杯 冶炼金属
原题目链接 🔧 冶炼金属转换率推测题解 📜 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V,是一个正整数,表示每 V V V 个普通金属 O O O 可以冶炼出 …...
深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用
文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么?1.1.2 感知机的工作原理 1.2 感知机的简单应用:基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...
DingDing机器人群消息推送
文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人,点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置,详见说明文档 成功后,记录Webhook 2 API文档说明 点击设置说明 查看自…...
计算机基础知识解析:从应用到架构的全面拆解
目录 前言 1、 计算机的应用领域:无处不在的数字助手 2、 计算机的进化史:从算盘到量子计算 3、计算机的分类:不止 “台式机和笔记本” 4、计算机的组件:硬件与软件的协同 4.1 硬件:五大核心部件 4.2 软件&#…...
毫米波雷达基础理论(3D+4D)
3D、4D毫米波雷达基础知识及厂商选型 PreView : https://mp.weixin.qq.com/s/bQkju4r6med7I3TBGJI_bQ 1. FMCW毫米波雷达基础知识 主要参考博文: 一文入门汽车毫米波雷达基本原理 :https://mp.weixin.qq.com/s/_EN7A5lKcz2Eh8dLnjE19w 毫米波雷达基础…...
