yolov5 用自己的数据集进行训练
在训练之前先要按照一定目录格式准备数据:
VOC标签格式转yolo格式并划分训练集和测试集_爱钓鱼的歪猴的博客-CSDN博客
目录
1、修改数据配置文件
2、修改模型配置文件
3、训练
1、修改数据配置文件
coco.yaml
拷贝data/scripts/coco.yaml文件,
path 修改为VOCdevkit文件夹所在目录
train:修改为yolov5_train.txt
val: 修改为yolov5_val.txt
names也进行修改,保存为my-anther.yaml
具体如下:
这样模仿VOC数据集的目录结构,与yolov5项目里的代码所匹配
2、修改模型配置文件
把项目models/yolov5n.yaml文件拷贝一份,只修改类别数量(num of classes)就成,保存为my-yolov5n.yaml
3、训练
在项目目录下开启终端
运行:
python train.py --data my-anther.yaml --epochs 1 --weights yolov5n.pt --cfg my-yolov5n.yaml --batch-size 24
如果有GPU ,命令后面添加 --device 0。这里没有GPU,所以只跑一个 epoch。
batch可选择调为16、24、40、64、128....。先选一个小的,保证能跑起来,然后慢慢加大,如果内存不足报错,就返回上一个batch大小。
输出信息:
(yolo) jason@honor:~/PycharmProjects/pytorch_learn/yolo/yolov5-7.0$ python train.py --data my-anther.yaml --epochs 1 --weights yolov5n.pt --cfg my-yolov5n.yaml --batch-size 24
train: weights=yolov5n.pt, cfg=my-yolov5n.yaml, data=my-anther.yaml, hyp=data/hyps/hyp.scratch-low.yaml, epochs=1, batch_size=24, imgsz=640, rect=False, resume=False, nosave=False, noval=False, noautoanchor=False, noplots=False, evolve=None, bucket=, cache=None, image_weights=False, device=, multi_scale=False, single_cls=False, optimizer=SGD, sync_bn=False, workers=8, project=runs/train, name=exp, exist_ok=False, quad=False, cos_lr=False, label_smoothing=0.0, patience=100, freeze=[0], save_period=-1, seed=0, local_rank=-1, entity=None, upload_dataset=False, bbox_interval=-1, artifact_alias=latest
github: skipping check (not a git repository), for updates see https://github.com/ultralytics/yolov5
YOLOv5 🚀 2022-11-22 Python-3.8.13 torch-2.0.0+cu117 CPUhyperparameters: lr0=0.01, lrf=0.01, momentum=0.937, weight_decay=0.0005, warmup_epochs=3.0, warmup_momentum=0.8, warmup_bias_lr=0.1, box=0.05, cls=0.5, cls_pw=1.0, obj=1.0, obj_pw=1.0, iou_t=0.2, anchor_t=4.0, fl_gamma=0.0, hsv_h=0.015, hsv_s=0.7, hsv_v=0.4, degrees=0.0, translate=0.1, scale=0.5, shear=0.0, perspective=0.0, flipud=0.0, fliplr=0.5, mosaic=1.0, mixup=0.0, copy_paste=0.0
ClearML: run 'pip install clearml' to automatically track, visualize and remotely train YOLOv5 🚀 in ClearML
Comet: run 'pip install comet_ml' to automatically track and visualize YOLOv5 🚀 runs in Comet
TensorBoard: Start with 'tensorboard --logdir runs/train', view at http://localhost:6006/from n params module arguments 0 -1 1 1760 models.common.Conv [3, 16, 6, 2, 2] 1 -1 1 4672 models.common.Conv [16, 32, 3, 2] 2 -1 1 4800 models.common.C3 [32, 32, 1] 3 -1 1 18560 models.common.Conv [32, 64, 3, 2] 4 -1 2 29184 models.common.C3 [64, 64, 2] 5 -1 1 73984 models.common.Conv [64, 128, 3, 2] 6 -1 3 156928 models.common.C3 [128, 128, 3] 7 -1 1 295424 models.common.Conv [128, 256, 3, 2] 8 -1 1 296448 models.common.C3 [256, 256, 1] 9 -1 1 164608 models.common.SPPF [256, 256, 5] 10 -1 1 33024 models.common.Conv [256, 128, 1, 1] 11 -1 1 0 torch.nn.modules.upsampling.Upsample [None, 2, 'nearest'] 12 [-1, 6] 1 0 models.common.Concat [1] 13 -1 1 90880 models.common.C3 [256, 128, 1, False] 14 -1 1 8320 models.common.Conv [128, 64, 1, 1] 15 -1 1 0 torch.nn.modules.upsampling.Upsample [None, 2, 'nearest'] 16 [-1, 4] 1 0 models.common.Concat [1] 17 -1 1 22912 models.common.C3 [128, 64, 1, False] 18 -1 1 36992 models.common.Conv [64, 64, 3, 2] 19 [-1, 14] 1 0 models.common.Concat [1] 20 -1 1 74496 models.common.C3 [128, 128, 1, False] 21 -1 1 147712 models.common.Conv [128, 128, 3, 2] 22 [-1, 10] 1 0 models.common.Concat [1] 23 -1 1 296448 models.common.C3 [256, 256, 1, False] 24 [17, 20, 23] 1 9471 models.yolo.Detect [2, [[10, 13, 16, 30, 33, 23], [30, 61, 62, 45, 59, 119], [116, 90, 156, 198, 373, 326]], [64, 128, 256]]
my-YOLOv5n summary: 214 layers, 1766623 parameters, 1766623 gradients, 4.2 GFLOPsTransferred 342/349 items from yolov5n.pt
optimizer: SGD(lr=0.01) with parameter groups 57 weight(decay=0.0), 60 weight(decay=0.0005625000000000001), 60 bias
train: Scanning /home/jason/work/my-datasets/yolov5_train.cache... 2276 images, 0 backgrounds, 0 corrupt: 100%|██████████| 2276/2276 00:00
val: Scanning /home/jason/work/my-datasets/yolov5_val.cache... 568 images, 0 backgrounds, 0 corrupt: 100%|██████████| 568/568 00:00AutoAnchor: 6.38 anchors/target, 1.000 Best Possible Recall (BPR). Current anchors are a good fit to dataset ✅
Plotting labels to runs/train/exp2/labels.jpg...
Image sizes 640 train, 640 val
Using 8 dataloader workers
Logging results to runs/train/exp2
Starting training for 1 epochs...Epoch GPU_mem box_loss obj_loss cls_loss Instances Size0/0 0G 0.09858 0.3112 0.01833 1331 640: 100%|██████████| 95/95 10:55Class Images Instances P R mAP50 mAP50-95: 0%| | 0/12 00:00WARNING ⚠️ NMS time limit 2.900s exceededClass Images Instances P R mAP50 mAP50-95: 8%|▊ | 1/12 00:08WARNING ⚠️ NMS time limit 2.900s exceededClass Images Instances P R mAP50 mAP50-95: 17%|█▋ | 2/12 00:15WARNING ⚠️ NMS time limit 2.900s exceededClass Images Instances P R mAP50 mAP50-95: 25%|██▌ | 3/12 00:23WARNING ⚠️ NMS time limit 2.900s exceededClass Images Instances P R mAP50 mAP50-95: 33%|███▎ | 4/12 00:30WARNING ⚠️ NMS time limit 2.900s exceededClass Images Instances P R mAP50 mAP50-95: 42%|████▏ | 5/12 00:38WARNING ⚠️ NMS time limit 2.900s exceededClass Images Instances P R mAP50 mAP50-95: 50%|█████ | 6/12 00:47WARNING ⚠️ NMS time limit 2.900s exceededClass Images Instances P R mAP50 mAP50-95: 58%|█████▊ | 7/12 00:54WARNING ⚠️ NMS time limit 2.900s exceededClass Images Instances P R mAP50 mAP50-95: 67%|██████▋ | 8/12 01:00WARNING ⚠️ NMS time limit 2.900s exceededClass Images Instances P R mAP50 mAP50-95: 75%|███████▌ | 9/12 01:07WARNING ⚠️ NMS time limit 2.900s exceededClass Images Instances P R mAP50 mAP50-95: 83%|████████▎ | 10/12 01:14WARNING ⚠️ NMS time limit 2.900s exceededClass Images Instances P R mAP50 mAP50-95: 92%|█████████▏| 11/12 01:21WARNING ⚠️ NMS time limit 2.500s exceededClass Images Instances P R mAP50 mAP50-95: 100%|██████████| 12/12 01:28all 568 28591 0.613 0.262 0.108 0.03511 epochs completed in 0.207 hours.
Optimizer stripped from runs/train/exp2/weights/last.pt, 3.8MB
Optimizer stripped from runs/train/exp2/weights/best.pt, 3.8MBValidating runs/train/exp2/weights/best.pt...
Fusing layers...
my-YOLOv5n summary: 157 layers, 1761871 parameters, 0 gradients, 4.1 GFLOPsClass Images Instances P R mAP50 mAP50-95: 0%| | 0/12 00:00WARNING ⚠️ NMS time limit 2.900s exceededClass Images Instances P R mAP50 mAP50-95: 8%|▊ | 1/12 00:08WARNING ⚠️ NMS time limit 2.900s exceededClass Images Instances P R mAP50 mAP50-95: 17%|█▋ | 2/12 00:44WARNING ⚠️ NMS time limit 2.900s exceededClass Images Instances P R mAP50 mAP50-95: 25%|██▌ | 3/12 01:07WARNING ⚠️ NMS time limit 2.900s exceededClass Images Instances P R mAP50 mAP50-95: 33%|███▎ | 4/12 01:33WARNING ⚠️ NMS time limit 2.900s exceededClass Images Instances P R mAP50 mAP50-95: 42%|████▏ | 5/12 01:42WARNING ⚠️ NMS time limit 2.900s exceededClass Images Instances P R mAP50 mAP50-95: 50%|█████ | 6/12 01:49WARNING ⚠️ NMS time limit 2.900s exceededClass Images Instances P R mAP50 mAP50-95: 58%|█████▊ | 7/12 01:57WARNING ⚠️ NMS time limit 2.900s exceededClass Images Instances P R mAP50 mAP50-95: 67%|██████▋ | 8/12 02:04WARNING ⚠️ NMS time limit 2.900s exceededClass Images Instances P R mAP50 mAP50-95: 75%|███████▌ | 9/12 02:10WARNING ⚠️ NMS time limit 2.900s exceededClass Images Instances P R mAP50 mAP50-95: 83%|████████▎ | 10/12 02:18WARNING ⚠️ NMS time limit 2.900s exceededClass Images Instances P R mAP50 mAP50-95: 92%|█████████▏| 11/12 02:24WARNING ⚠️ NMS time limit 2.500s exceededClass Images Instances P R mAP50 mAP50-95: 100%|██████████| 12/12 02:30all 568 28591 0.61 0.228 0.0949 0.0317open 568 2512 1 0 0.00273 0.00136close 568 26079 0.219 0.456 0.187 0.062
Results saved to runs/train/exp2
相关文章:

yolov5 用自己的数据集进行训练
在训练之前先要按照一定目录格式准备数据: VOC标签格式转yolo格式并划分训练集和测试集_爱钓鱼的歪猴的博客-CSDN博客 目录 1、修改数据配置文件 2、修改模型配置文件 3、训练 1、修改数据配置文件 coco.yaml 拷贝data/scripts/coco.yaml文件, pa…...

1951-2023最新中国基础地理信息,包括水系、行政区、DEM高程、气象站经纬位置、土地利用,这些数据获取方法介绍
水系: 流域内所有河流、湖泊等各种水体组成的水网系统,称作水系。其中,水流最终流入海洋的称作外流水系,如太平洋水系、北冰洋水系;水流最终流入内陆湖泊或消失于荒漠之中的,称作内流水系。 [1] 流域面积的…...
CAD处理控件Aspose.CAD功能演示:在 C#中以编程方式搜索 DWG 图形文件中的文本
Aspose.CAD 是一个独立的类库,以加强 Java应用程序处理和渲染CAD图纸,而不需要AutoCAD或任何其他渲染工作流程。该CAD类库允许将DWG, DWT, DWF, DWFX, IFC, PLT, DGN, OB…...

实验二十、压控电压源二阶 LPF 幅频特性的研究
一、题目 研究压控电压源二阶低通滤波电路品质因数 Q Q Q 对频率特性的影响。 二、仿真电路 电路如图1所示。集成运放采用 LM324AJ,其电源电压为 15V。 图 1 压控电压源二阶低通滤波电路幅频特性的测试 图1\,\,压控电压源二阶低通滤波电路幅频特性的测试 图1压控…...

类和对象【C++】【中篇】
目录 一、类的6个默认成员函数 1、构造函数 2、析构函数 3、拷贝构造函数 4、赋值重载函数 二、赋值运算符重载 一、类的6个默认成员函数 注意:默认成员函数不能在类外面定义成全局函数。因为类里没有的话会自动生成,就会产生冲突。 1、构造函数…...

2.SpringBoot运维实用篇
SpringBoot运维实用篇 基础篇发布以后,看到了很多小伙伴在网上的留言,也帮助超过100位小伙伴解决了一些遇到的问题,并且已经发现了部分问题具有典型性,预计将有些问题在后面篇章的合适位置添加到本套课程中,作为解…...
【c++】浅讲引用
【c】浅讲引用 前言引用定义作用做输出型参数引用作返回值总结 关于引用的权限 结尾 前言 博主开始细学c和linux了 这次就带来浅学了的引用。 引用 定义 引用不是在内存中开辟一个新空间的新变量 类似于给变量取别名,和取别名的对象在空间中公用一个对象 例&#…...
CSS布局基础(文字[行内<块>]与行内[块]垂直对齐方式 文字溢出显示省略号)
文字[行内<块>]与行内[块]垂直对齐方式 文字[行内<块>]与行内[块]垂直对齐方式概述图片底部空隙问题 文字溢出显示省略号单行文字多行文字 文字[行内<块>]与行内[块]垂直对齐方式 概述 vertical-align: top | middle| bottom | baseline(默认) | sub | sup…...

AI自动写文章_免费在线原创文章生成器
自动写文章生成器 自动写文章生成器是一种利用人工智能和自然语言处理技术,帮助用户快速生成文章的工具。该软件可以根据用户的需求和选择,自动生成符合要求的文章,无需手动编写和修改。 自动写文章生成器的主要功能包括以下几个方面&#…...

Java阶段二Day15
Java阶段二Day15 文章目录 Java阶段二Day15复习前日知识点对象数据类型注入数组类型注入集合类型的注入p命名空间引入外部属性文件 基于XML管理beanbean的作用域bean的生命周期代码演示生命周期后置处理器处理展示基于XML的自动装配 基于注解管理bean开启组件扫描使用注解定义B…...

从月薪3000到月薪20000,自动化测试应该这样学...
绝大多数测试工程师都是从功能测试做起的,工作忙忙碌碌,每天在各种业务需求学习和点点中度过,过了好多年发现自己还只是一个功能测试工程师。 随着移动互联网的发展,从业人员能力的整体进步,软件测试需要具备的能力要…...
Python魔法方法 单例模式
前言 本文介绍一下python中常用的魔法方法以及面向对象中非常重要的单例模式。 魔法方法 python中一切皆对象,因为python是面向对象的编程语言。python给类和对象提供了大量的内置方法,这些内置方法也称魔法方法。这些魔法方法总是在某种条件下自动触…...

计算机网络基础知识(三)—— 什么是OSI七层模型?
文章目录 00 | 🛸发展史🛸01 | 🛸OSI七层参考模型🛸02 | 🛸OSI七层参考模型的信息流向🛸 OSI七层模型是Open Systems Interconnection Reference Model的缩写,是由国际标准化组织(IS…...
Python(符号计算常微分方程)谐振子牛顿运动方程
牛顿运动方程 牛顿运动方程可以写成以下形式 F d p d t m d v d t m d 2 r d t 2 \mathbf{F}\frac{d \mathbf{p}}{d t}m \frac{d \mathbf{v}}{d t}m \frac{d^2 \mathbf{r}}{d t^2} Fdtdpmdtdvmdt2d2r 恒力问题 具有恒定力的问题意味着恒定的加速度。 典型的例子是…...

OpenCL编程指南-1.2OpenCL基本概念
OpenCL概念基础 面向异构平台的应用都必须完成以下步骤: 1)发现构成异构系统的组件。 2)探查这些组件的特征,使软件能够适应不同硬件单元的特定特性。 3)创建将在平台上运行的指令块(内核)。 4)…...

使用 ChatGPT 辅助学习——为自己找一个老师
我们每个人都有许多标签,例如高中生、成绩中等、文科,根据这些标签我和其他拥有相同标签的人分配了相同的教程、班级和老师,这可以带来效率上的提升,因为同一份教程、老师就可以服务几十上百人,而无须为每个人定制&…...
MySQL基础(二十一)用户与权限管理
1. 用户管理 1.1 登录MySQL服务器 启动MySQL服务后,可以通过mysql命令来登录MySQL服务器,命令如下: mysql –h hostname|hostIP –P port –u username –p DatabaseName –e "SQL语句"-h参数后面接主机名或者主机IP,…...

程序员的下一个风口
面对近一年的裁员潮,以及 GPT 出现带来的 AI 颠覆潮流,各种话题出现:「前端已死」、「后端已死」、「Copy/Paste 程序员将被 AI 取代」。程序员行业是否还有发展空间? 这一两年的就业机会是因为经济衰落周期内造成的,不…...

Android 自定义View 之 简易输入框
简易输入框 前言正文① 构造方法② XML样式③ 测量④ 绘制1. 绘制方框2. 绘制文字 ⑤ 输入1. 键盘布局2. 键盘接口3. 键盘弹窗4. 显示键盘5. 相关API 四、使用自定义View五、源码 前言 在日常工作开发中,我们时长会遇到各种各样的需求,不部分需求是可以通…...

SpringMVC的基础知识
创建SpringMVC项目 SpringMVC项目其实和SpingBoot项目差不多,就多引入了一个SpringWeb项目而已拉 可以看这篇博客,创建的就是一个SpringMVC项目--创建项目の博客 SpringMVC是啥 Spring是啥相信大家都了解 啥是MVC呢?MVC是Model View Controller的缩写 我们分开看这三个词Model…...
生成xcframework
打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...
conda相比python好处
Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理:…...

大数据学习栈记——Neo4j的安装与使用
本文介绍图数据库Neofj的安装与使用,操作系统:Ubuntu24.04,Neofj版本:2025.04.0。 Apt安装 Neofj可以进行官网安装:Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...
<6>-MySQL表的增删查改
目录 一,create(创建表) 二,retrieve(查询表) 1,select列 2,where条件 三,update(更新表) 四,delete(删除表…...

Spark 之 入门讲解详细版(1)
1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...

【力扣数据库知识手册笔记】索引
索引 索引的优缺点 优点1. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度(创建索引的主要原因)。3. 可以加速表和表之间的连接,实现数据的参考完整性。4. 可以在查询过程中,…...
oracle与MySQL数据库之间数据同步的技术要点
Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异ÿ…...
Qt Http Server模块功能及架构
Qt Http Server 是 Qt 6.0 中引入的一个新模块,它提供了一个轻量级的 HTTP 服务器实现,主要用于构建基于 HTTP 的应用程序和服务。 功能介绍: 主要功能 HTTP服务器功能: 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...
大模型多显卡多服务器并行计算方法与实践指南
一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...
#Uniapp篇:chrome调试unapp适配
chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器:Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...