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

这篇具有很好参考价值的文章主要介绍了手把手教你用Yolov5 (v6.2) 训练分类模型 基于《Kaggle猫狗大战》案例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


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速度测试,最终得到的各项指标如下图所示:

yolov5分类模型,深度学习,分类,深度学习,人工智能

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


1 v6.2 项目结构改动

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

yolov5分类模型,深度学习,分类,深度学习,人工智能


2 快速上手🌟

YOLOv5分类训练支持使用--data参数自动下载MNISTFashion-MNISTCIFAR10CIFAR100ImagenetteImagewoofImageNet 数据集。
例如,要开始在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具体的参数信息
yolov5分类模型,深度学习,分类,深度学习,人工智能
分类任务的参数与检测任务的参数差的并不是很多,大多数在参数的含义在6.1版本我已经讲过了,我这里就挑出几个重点的说一下

v6.1版本的参数解析可以参考我这两篇博文
手把手带你调参Yolo v5 (v6.1)(一)
手把手带你调参Yolo v5 (v6.1)(二)

3.1 "–data"🍀

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

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

3.1.1 划分数据集

yolov5分类模型,深度学习,分类,深度学习,人工智能

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

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

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

3.1.2 修改超参数

yolov5分类模型,深度学习,分类,深度学习,人工智能
划分好数据集后做如下改动:--data default=“你分类数据集的名字”

随后就可以训练了

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

yolov5分类模型,深度学习,分类,深度学习,人工智能

3.2 “–seed” 🍀

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


4 模型推理

yolov5分类模型,深度学习,分类,深度学习,人工智能
推理方式与检测任务几乎没有区别,修改一下权重路径就好

分类任务推理出的图片是这样子的,会显示准确率top5的类别
yolov5分类模型,深度学习,分类,深度学习,人工智能


5 Test集验证

yolov5分类模型,深度学习,分类,深度学习,人工智能
这里也没什么可说的,修改一下权重路径数据集就好


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

🎉更多内容导航

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.持续更新中文章来源地址https://www.toymoban.com/news/detail-799958.html


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

到了这里,关于手把手教你用Yolov5 (v6.2) 训练分类模型 基于《Kaggle猫狗大战》案例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • YOLOv5入门实践(5)——从零开始,手把手教你训练自己的目标检测模型(包含pyqt5界面)

      通过前几篇文章,相信大家已经学会训练自己的数据集了。本篇是YOLOv5入门实践系列的最后一篇,也是一篇总结,我们再来一起按着 配置环境--标注数据集--划分数据集--训练模型--测试模型--推理模型 的步骤,从零开始,一起实现自己的目标检测模型吧! 前期回顾: YOLO

    2023年04月26日
    浏览(43)
  • 手把手教你用MindSpore训练一个AI模型!

    首先我们要先了解深度学习的概念和AI计算框架的角色( https://zhuanlan.zhihu.com/p/463019160 ),本篇文章将演示怎么利用MindSpore来训练一个AI模型。和上一章的场景一致,我们要训练的模型是用来对手写数字图片进行分类的LeNet5模型 请参考( http://yann.lecun.com/exdb/lenet/ )。 图1 M

    2024年02月04日
    浏览(37)
  • PyQt5 | 手把手教你YOLOv5添加PyQt页面

    演示视频:YOLOv5/v7添加 PyQT5 页面 我的毕业有救了 !哔哩哔哩

    2024年02月01日
    浏览(35)
  • YOLOV7训练自己的数据集以及训练结果分析(手把手教你)

    YOLOV7训练自己的数据集整个过程主要包括:环境安装----制作数据集----参数修改----模型测试----模型推理 labelme标注的数据格式是VOC,而YOLOv7能够直接使用的是YOLO格式的数据,因此下面将介绍如何将自己的数据集转换成可以直接让YOLOv7进行使用。 1. 创建数据集 在data目录下新建

    2023年04月20日
    浏览(35)
  • YOLOv5入门实践(3)——手把手教你划分自己的数据集

    上一篇我们学习了如何利用labelimg标注自己的数据集,下一步就是该对这些数据集进行划分了。面对繁杂的数据集,如果手动划分的话不仅麻烦而且不能保证随机性。本篇文章就来手把手教你利用代码,自动将自己的数据集划分为训练集、验证集和测试集。一起来学习吧! 前

    2024年02月03日
    浏览(35)
  • 【2023-Pytorch-检测教程】手把手教你使用YOLOV5做电线绝缘子缺陷检测

    随着社会和经济的持续发展,电力系统的投资与建设也日益加速。在电力系统中,输电线路作为电能传输的载体,是最为关键的环节之一。而绝缘子作为输电环节中的重要设备,在支撑固定导线,保障绝缘距离的方面有着重要作用。大多数高压输电线路主要架设在非城市内地

    2023年04月11日
    浏览(34)
  • 手把手教你用代码画架构图

    作者:京东物流 覃玉杰 本文将给大家介绍一种简洁明了软件架构可视化模型——C4模型,并手把手教大家如何使用 代码 绘制出精美的C4架构图。 阅读本文之后,读者画的架构图将会是这样的: 注:该图例仅作绘图示例使用,不确保其完整性、可行性。 C4是软件架构可视化

    2024年02月04日
    浏览(36)
  • 快收藏!手把手教你用AI绘画

    点个关注👆跟腾讯工程师学技术 最近看到一篇有趣的文章,一副名为《太空歌剧院》(如下图)的艺术品在某美术比赛上,获得了第一名的成绩, 有意思的是这件作品是通过AI来实现的画作, 顿时觉得非常神奇。结合近期科技媒体频频报道的AI作画爆火现象,深入了解了下

    2024年02月09日
    浏览(27)
  • 手把手教你用AirtestIDE无线连接手机

    一直以来,我们发现同学们都挺喜欢用无线的方式连接手机,正好安卓11出了个无线连接的新姿势,我们今天就一起来看看,如何用AirtestIDE无线连接你的Android设备~ 当 手机与电脑处在同一个wifi 下,即可尝试无线连接手机了,但是这种方式受限于网络连接的稳定性,可能会出

    2023年04月18日
    浏览(38)
  • 手把手教你用Python编写邮箱脚本引擎

    版权声明:原创不易,本文禁止抄袭、转载需附上链接,侵权必究! 邮箱是传输信息方式之一,个人,企业等都在使用,朋友之间发消息,注册/登录信息验证,订阅邮箱,企业招聘,向客户发送消息等都是邮箱的使用场景;邮箱有两个较重要的协议:SMTP和POP3,均位于OSI7层

    2024年02月06日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包