首页IT科技猫狗大战1 电影(手把手教你用Yolov5 (v6.2) 训练分类模型 基于《Kaggle猫狗大战》案例)

猫狗大战1 电影(手把手教你用Yolov5 (v6.2) 训练分类模型 基于《Kaggle猫狗大战》案例)

时间2025-06-14 20:17:52分类IT科技浏览3751
导读:0 前言...

0 前言

在8月17日晚上           ,YOLOv5官方发布了v6.2版本                  ,v6.2版本支持分类模型训练           、验证                  、预测和导出;v6.2版本的推出使得训练分类器模型变得超级简单!

下一个版本v6.3计划于9月发布     ,将为YOLOv5带来官方实例分割支持        ,今年晚些时候将发布一个主要的v7.0版本                  ,更新所有3个任务的架构——分类     、检测和分割           。

并且Yolov5官方同样提供了大量的预训练权重供大家选择;

权重都是在ImageNet数据集上训练90 Epoch后得到的        ,并且YOLOv5官方将所有型号导出到ONNX FP32进行CPU速度测试     ,导出到 TensorRT FP16进行GPU速度测试                  ,最终得到的各项指标如下图所示:

分类任务的工作流与先前版本的检测任务工作流基本一致           ,所以熟悉检测任务的同学应该会很容易上手分类任务

1 v6.2 项目结构改动

v6.2版本项目结构并无太大改变  ,主要是增加了classify文件夹以及predict.py train.py val.py 这三个文件;那么这三个文件也分别对应着分类模型的推理        、训练和验证                  。

2 快速上手🌟

YOLOv5分类训练支持使用--data参数自动下载MNIST                  、Fashion-MNIST        、CIFAR10     、CIFAR100                  、Imagenette           、Imagewoof 和 ImageNet 数据集     。

例如                 ,要开始在MNIST上进行训练              ,只需要给–data参数设置为“MNIST            ”

2.1 train

# Single-GPU python classify/train.py --model yolov5s-cls.pt --data cifar100 --epochs 5 --img 224 --batch 128 # Multi-GPU DDP python -m torch.distributed.run --nproc_per_node 4 --master_port 1 classify/train.py --model yolov5s-cls.pt --data imagenet --epochs 5 --img 224 --device 0,1,2,3

2.2 val

bash data/scripts/get_imagenet.sh --val # download ImageNet val split (6.3G, 50000 images) python classify/val.py --weights yolov5m-cls.pt --data ../datasets/imagenet --img 224 # validate

2.3 predict

python classify/predict.py --weights yolov5s-cls.pt --data data/images/bus.jpg

3 重要参数解析🚀

下面来看一下train.py具体的参数信息

分类任务的参数与检测任务的参数差的并不是很多,大多数在参数的含义在6.1版本我已经讲过了              ,我这里就挑出几个重点的说一下

v6.1版本的参数解析可以参考我这两篇博文

手把手带你调参Yolo v5 (v6.1)(一)

手把手带你调参Yolo v5 (v6.1)(二)

3.1 "–data"🍀

Yolov5(v6.2)版本的分类数据集信息不再通过配置文件的形式载入                 ,而是通过文件夹的名字自动匹配  ,官方提供了一些数据集的url可以自行下载;

本篇博文数据集以kaggle猫狗大战数据集为例子           ,从零开始训练自己的分类模型

3.1.1 划分数据集

kaggle猫狗大战数据集包含12500张猫🐱图片与12500张🐶狗图片                  ,我按照如下方式划分

kaggle-DogVsCat ├─train ├─Cat 8750 └─Dog 8750 ├─val ├─Cat 2500 └─Dog 2500 └─test ├─Cat 1250 └─Dog 1250

分类数据集的路径是自动匹配的     ,所以我们要按照这个命名规则划分        ,不然会提示你找不到数据集

3.1.2 修改超参数

划分好数据集后做如下改动:--data default=“你分类数据集的名字                ”

随后就可以训练了

分类模型较检测模型训练速度快非常多                  ,可能是训练图像尺寸设置的比较小的原因;可以通过--imgsz参数设置

3.2 “–seed      ” 🍀

这是v6.2版本更新的一个非常重要的参数        ,使用torch>=1.12.0的单GPU训练完全可再现

4 模型推理

推理方式与检测任务几乎没有区别     ,修改一下权重路径就好

分类任务

推理出的图片是这样子的                  ,会显示准确率top5的类别

5 Test集验证

这里也没什么可说的           ,修改一下权重路径数据集就好

不知道是不是我没用明白  ,还没看出来怎么修改网络结构                 ,所以说出个分类模型的意义是什么?

🎉更多内容导航

1.手把手带你调参Yolo v5 (v6.2)(一)🌟强烈推荐

2.手把手带你调参Yolo v5 (v6.2)(二)🚀

3.如何快速使用自己的数据集训练Yolov5模型

4.手把手带你Yolov5 (v6.1)添加注意力机制(一)(并附上30多种顶会Attention原理图)🌟

5.手把手带你Yolov5 (v6.1)添加注意力机制(二)(在C3模块中加入注意力机制)

6.Yolov5如何更换激活函数?

7.Yolov5 (v6.1)数据增强方式解析

8.Yolov5更换上采样方式( 最近邻 / 双线性 / 双立方 / 三线性 / 转置卷积)

9.Yolov5如何更换EIOU / alpha IOU / SIoU?

10.Yolov5更换主干网络之《旷视轻量化卷积神经网络ShuffleNetv2》🍀

11.YOLOv5应用轻量级通用上采样算子CARAFE🍀

12.空间金字塔池化改进 SPP / SPPF / ASPP / RFB / SPPCSPC🍀

13.用于低分辨率图像和小物体的新 CNN 模块SPD-Conv🍀

14.持续更新中

有问题欢迎大家指正              ,如果感觉有帮助的话请点赞支持下👍📖🌟

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

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

展开全文READ MORE
idea创建前端项目(IntelliJ IDEA【前端必备插件】) 小程序里面可以跳转公众号链接吗(【微信小程序】微信小程序跳转H5页面的实现思路与方案)