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…...

OpenPCDet系列 | 4.2 DataAugmentor点云数据增强模块解析
文章目录 DataAugmentor模块解析1. gt_sampling2. random_world_flip3. random_world_rotation4. random_world_scaling5. limit_period DataAugmentor模块解析 在pointpillars算法中,具体的数据增强方法配置是在yaml中的DATA_CONFIG.DATA_AUGMENTOR进行配置&#…...

精准测试之过程与实践 | 京东云技术团队
作者:京东工业 宛煜昕 一、怎样的技术 •百度百科: 精准测试是一套计算机测试辅助分析系统。 精准测试的核心组件包含的软件测试示波器、用例和代码的双向追溯、智能回归测试用例选取、覆盖率分析、缺陷定位、测试用例聚类分析、测试用例自动生成系统…...
类ChatGPT逐行代码解读(1/2):从零实现Transformer、ChatGLM-6B
前言 最近一直在做类ChatGPT项目的部署 微调,关注比较多的是两个:一个LLaMA,一个ChatGLM,会发现有不少模型是基于这两个模型去做微调的,说到微调,那具体怎么微调呢,因此又详细了解了一下微调代…...

车道线检测
前言 目前,车道线检测技术已经相当成熟,主要应用在自动驾驶、智能交通等领域。下面列举一些当下最流行的车道线检测方法: 基于图像处理的车道线检测方法。该方法是通过图像处理技术从摄像头传回的图像中提取车道线信息的一种方法,…...

云渲染靠谱吗,使用云渲染会不会被盗作品?
云渲染靠谱吗、安全吗?如果使用 云渲染会不会被盗作品......Renderbus瑞云渲染作为一个正经的云渲染平台,也时不时会收到这类疑问,首先,瑞云渲染是肯定靠谱的,各位可以放心使用。另外小编也将在本篇教你如何辨别云渲染平台是否安全…...

什么是FPGA?关于FPGA基础知识 一起来了解FPGA lattice 深力科 MachXO3系列 LCMXO3LF-9400C-5BG256C
什么是FPGA?关于FPGA基础知识 一起来了解FPGA lattice 深力科 MachXO3系列 LCMXO3LF-9400C-5BG256C FPGA基础知识:FPGA是英文Field-Programmable Gate Array的缩写,即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器…...

有什么好用的云渲染?
在CG制作流程中,离线渲染一直是必要且耗时的环节。你的场景越复杂,渲染出现问题的可能性就越大,尤其是当你独自工作,没有人给你建议的时候,灯光、模型、场景任何一个环节渲染时出现问题都可能让你焦头烂额,…...

什么是医学影像PACS系统?PACS系统功能有哪些?作用有哪些?对接哪些设备?业务流程是什么?
一、什么是医学影像PACS系统 PACS:为Picture Archive and CommunicationSystem的缩写,是图象归档和通讯系统。PACS系统应用在医院影像科室的系统,主要的任务就是把日常产生的各种医学影像(包括核磁,CT,超声…...

分布式缓存:什么是它以及为什么需要它?
前言 随着网络的快速发展,分布式应用变得越来越普遍。这种类型的应用程序需要访问多个组件和服务,而这些组件可能分散在不同的物理位置上。在这种情况下,由于网络通信的高延迟和低带宽,性能问题变得尤为明显。为解决这一问题&…...

MySQL基础(二十二)逻辑架构
1.逻辑架构剖析 1.1 第1层:连接层 系统(客户端)访问MySQL服务器前,做的第一件事就是建立TCP连接。 经过三次握手建立连接成功后,MySQL服务器对TCP传输过来的账号密码做身份认证、权限获取。 用户名或密码不对&#…...