YOLOv5(v6.1)解析(四)超参数进化

这篇具有很好参考价值的文章主要介绍了YOLOv5(v6.1)解析(四)超参数进化。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

YOLOv5(v6.1)解析(四)超参数进化

本文对YOLOv5项目的超参数算法进行详细阐述,笔者以后会定期讲解关于模型的其他的模块与相关技术,笔者也建立了一个关于目标检测的交流群:781334731,欢迎大家踊跃加入,一起学习鸭!

1.项目地址

源码地址:https://github.com/ultralytics/yolov5

打开网址后,点击master可选取不同版本的分支,本文对Yolov5最新版本v6.1解析
YOLOv5(v6.1)解析(四)超参数进化

2.环境搭建

在配置Conda环境后就可以进入项目了,可以通过作者提供的requirements.txt文件进行快速安装,即在终端中键入如下指令:pip install -r requirements.txt
YOLOv5(v6.1)解析(四)超参数进化

3.代码运行

YOLOv5(v6.1)解析(四)超参数进化
如上是官方给出的代码运行方式,我们可利用Yolov5模型预测图像、视频、摄像头、网站视频、RTSP流文件等,模型会自动下载权重文件(yolov5s.pt、yolov5m.pt、yolov5l.pt等),预测后的结果会自动保存到runs/detect/exp目录下,下次运行结果会保存在runs/detect/exp1目录下,依次类推;下图给出yolov5模型的权重和尺寸,更具体信息请参考:https://github.com/ultralytics/yolov5/releases
YOLOv5(v6.1)解析(四)超参数进化

4.模型推理

YOLOv5(v6.1)解析(四)超参数进化
首先我们可以利用PyTorch Hub工具加载Yolov5模型(如果没下载,会自动下载模型权重到根目录下),之后加载需要检测的图片,最后利用封装好的模型推理检测结果,下图给出具体的实现步骤。

5. 检测结果

我们可以直接运行detect.py文件试试效果,运行后系统会把检测结果保存在runs\detect\exp3路径下(之前自己跑过试试)
YOLOv5(v6.1)解析(四)超参数进化
下图就是检测结果:
YOLOv5(v6.1)解析(四)超参数进化

6. 超参数进化Hyperparameter Evolution

yolov5提供了一种超参数优化的方法Hyperparameter Evolution,即超参数进化;超参数进化是一种利用遗传算法(GA) 进行超参数优化的方法,我们可以通过该方法选择更加合适自己的超参数;模型提供的默认参数是通过在COCO数据集上使用超参数进化得来的(由于超参数进化会耗费大量的资源和时间,如果默认参数训练出来的结果能满足你的使用,使用默认参数也是不错的选择)

6.1 初始化超参数

YOLOv5有28个用于各种训练设置的超参数,它们定义在/data/hyps目录下的yaml文件中;好的初始参数值将产生更好的最终结果,因此在演进之前正确初始化这些值是很重要的;如果有不清楚怎么初始化,只需使用默认值,这些值是针对COCO训练优化得到的(如yolov5/data/hyps/hyp.scratch.yaml文件)
YOLOv5(v6.1)解析(四)超参数进化

6.2 参考指标

在YOLOv5模型中,定义了一个fitness函数对各项指标进行加权得到当前拟合度
YOLOv5(v6.1)解析(四)超参数进化

6.3 超参数进化

yolov5/train.py文件中的超参数进化列表,括号里分别为(突变规模, 最小值,最大值)
YOLOv5(v6.1)解析(四)超参数进化
超参数进化算法

根据之前训练时的hyp来确定一个base hyp再进行突变,再通过之前每次进化得到的results来确定之前每个hyp的权重,得到每个hyp和每个hyp的权重之后有两种进化方式:

  1. 根据每个hyp的权重随机选择一个之前的hyp作为base hyp,random.choices(range(n), weights=w)
  2. 根据每个hyp的权重对之前所有的hyp进行融合获得一个base hyp,(x * w.reshape(n, 1)).sum(0) / w.sum()

evolve.txt会记录每次进化之后的results+hyp,每次进化时,hyp会根据之前的results进行从大到小的排序,再根据fitness函数计算之前每次进化得到的hyp的权重;再确定哪一种进化方式,从而进行进化
YOLOv5(v6.1)解析(四)超参数进化

6.4 超参数进化实验

设置每75轮进化一次,epoch为300:python train.py --evolve 75 ;在进化之后可得到28个超参数的值
YOLOv5(v6.1)解析(四)超参数进化
这些超参数的值也会保存在/runs/evolve/exp/hyp.evolve.yaml文件中(好像也没啥变化,一定是我数据集的问题。。。)

官方资料:https://github.com/ultralytics/yolov5/issues/607

彩蛋

本文对YOLOv5项目的超参数算法进行了详细阐述,笔者以后会定期讲解关于模型的其他的模块与相关技术,笔者也建立了一个关于目标检测的交流群:781334731,大家也可扫描下面这张图片加入,欢迎大家踊跃加入,一起学习鸭!
YOLOv5(v6.1)解析(四)超参数进化文章来源地址https://www.toymoban.com/news/detail-494545.html

到了这里,关于YOLOv5(v6.1)解析(四)超参数进化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【YOLOv5-6.x】模型参数量param及计算量FLOPs解析

    评价一个用深度学习框架搭建的神经网络模型,除了精确度(比如目标检测中常用的map)指标之外,模型复杂度也必须要考虑,通常用正向推理的计算量(FLOPs)和参数个数(Parameters)来描述模型的复杂度。   参数量 有参数的层主要包括: 卷积层 全连接层 BN层 Embedding层 少数激活

    2024年02月04日
    浏览(40)
  • yolov5s模型剪枝详细过程(v6.0)

    本文参考github上大神的开源剪枝项目进行学习与分享,具体链接放在文后,希望与大家多多交流! 在官方源码上训练yolov5模型,支持v6.0分支的n/s/m/l模型,我这里使用的是v5s,得到后将项目clone到本机上 cd进入文件夹后,新建runs文件夹,将训练好的模型放入runs/your_train/weigh

    2024年02月03日
    浏览(43)
  • 手把手教你用Yolov5 (v6.2) 训练分类模型 基于《Kaggle猫狗大战》案例

    在8月17日晚上, YOLOv5 官方发布了 v6.2 版本, v6.2 版本支持分类模型训练、验证、预测和导出; v6.2 版本的推出使得训练分类器模型变得超级简单! 下一个版本 v6.3 计划于9月发布,将为 YOLOv5 带来官方实例分割支持,今年晚些时候将发布一个主要的 v7.0 版本,更新所有3个任务

    2024年01月18日
    浏览(54)
  • YOLOv5超参数、迁移训练设置

    目录 一、超参数设置 1. 定义自适应函数 2. 定义模型深度和宽度 二、迁移训练设置 1. 为迁移训练设置冻结层 遗传算法中适应度(fitness)是描述个体性能的主要指标,直接影响到算法的收敛速度以及能否找到最优解。适应度是训练中寻求最大化的一个值。YOLOv5默认的适应度函

    2024年02月08日
    浏览(55)
  • yolov5结果解析

    以这种形式给出矩阵的值 g t c l a s s 1 gt_{class1} g t c l a ss 1 ​ g t c l a s s 2 gt_{class2} g t c l a ss 2 ​ g t c l a s s 3 gt_{class3} g t c l a ss 3 ​ background FP p r e d c l a s s 1 pred_{class1} p re d c l a ss 1 ​ p r e d c l a s s 2 pred_{class2} p re d c l a ss 2 ​ p r e d c l a s s 3 pred_{class3} p re d c l a ss 3 ​ bac

    2024年02月04日
    浏览(45)
  • yolov5 代码内容解析

    目录 一、工程目录及所需的配置文件解析 二、训练代码详解 加载模型 优化器    数据生成器 参数及类别权重 warmup和前向传播 损失函数计算 准确性和召回率计算 Yolov5 目标检测   整个目录结构如下图所示: 其中config_document包含yolov5的预训练模型和模型参数等的配置文件,

    2024年02月14日
    浏览(32)
  • yolov5训练结果解析

    yolov5训练结果的文件解析 1、weights训练好的模型,一般使用best.pt去进行推理 2、confusion_matrix.png 混淆矩阵以矩阵形式将数据集中的记录按照真实的类别与分类模型预测的类别判断两个标准进行汇总。其中矩阵的行表示真实值,矩阵的列表示预测值。 TP(True Positive): 将正类预

    2024年02月06日
    浏览(64)
  • yolov5的后处理解析

            由于最近实习项目使用到了yolov5, 发现对yolov5的后处理部分不太熟悉,为防止忘记,这里简单做个记录。 在yolov5里,利用FPN特征金字塔,可以得到三个加强特征层,每一个特征层上每一个特征点存在3个先验框,每个先验框需要预测每一个特征点的回归参数、是否

    2024年02月15日
    浏览(39)
  • yolov5源码解析(9)--输出

    本文章基于yolov5-6.2版本。主要讲解的是yolov5是怎么在最终的特征图上得出物体边框、置信度、物体分类的。   一。总体框架 首先贴出总体框架,直接就拿官方文档的图了,本文就是接着右侧的那三层输出开始讨论。 Backbone :  New CSP-Darknet53 Neck :  SPPF ,  New CSP-PAN Head :  YOLO

    2023年04月09日
    浏览(40)
  • 了解 YOLOv5 中的 NMS 多标签检测参数设置

    “NMS 多标签检测”(multi_label = False)是一个关于 YOLOv5 模型推理设置的参数,具体来说,它控制非最大抑制(NMS)的行为。要理解这个设置,我们首先需要了解 NMS 和它在目标检测中的作用。 非最大抑制 (NMS) 在目标检测任务中,模型会对图像中可能存在的每个目标输出多个

    2024年01月19日
    浏览(42)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包