关于Yolov7-tiny模型瘦身(param、FLOPs)碎碎念

这篇具有很好参考价值的文章主要介绍了关于Yolov7-tiny模型瘦身(param、FLOPs)碎碎念。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

优于模型落地需要,yolov7-tiny版本的参数量(Param)为6.2M,FLOPs在输入为320*320下为3.46G,想着还能不能再进行减少这两者或其中之一(精度方面还未做效果验证)。

于是翻遍了github,没有关于v7的剪枝方法,替换backbone也大部分是基于yolov5s的,眼花缭乱中看到yolov7的github官方作者的一句回复:

关于Yolov7-tiny模型瘦身(param、FLOPs)碎碎念

接着去看了一下什么是ELAN,相关细节知识不做复制粘贴了,可以去看各大神的代价解读。在yolov7-tiny.yaml中,就是这个在被stride为2的卷积下采样后,被Concat整合前的这四个连续卷积层。

关于Yolov7-tiny模型瘦身(param、FLOPs)碎碎念

这种结构在标准版和tiny版的backbone和head中都有,只是tiny中少了两个卷积层的堆叠,激活函数变成了LeakyReLU,每个branch的操作中,输入通道都是和输出通道保持一致,接下来就是小白改结构碰的壁了。

每层网络都有四个参数,[from, number, module, args],以Conv层为例,第一个from表示本层的输入来自哪一层的输出,-1表示上一层,-2表示上上层,以此类推,若是正数n则表示从头数的第n层;number表示本层堆叠几次;module表示该层的种类,在models.common中都能找到class;args则是相关参数,如Conv中是通道数、卷积核尺寸、步长、激活函数等。

当时由于不懂from的含义,就硬删ELAN中的某层卷积(from为-2的卷积不要删),然后train.py,结果可想而知。

关于Yolov7-tiny模型瘦身(param、FLOPs)碎碎念

根据log找到是构建网络时报的错,然后继续研究。。。因为网络各层是堆叠的,删除某层对后面的层数当然会有影响,所以from不为-1的值肯定要改,经过一系列小学数学的操作后,层和from对应上了,还是报错。。。 接着研究,在yolov7.yaml和v7-tiny.yaml中发现Concat层的from是[-1,-2,-3,-4,-5,-6]和[-1,-2,-3,-4]的区别,所以当from是数组时,表示上一层,上2层,上3层..以此类推。所以ELAN中删一层,[-1,-2,-3,-4]也要变成[-1,-2,-3],最后一层IDetect也需要修改,该层的from表示第[n,n+1,n+2]层的输出作为Detect模块的输入,接着run,成功!

关于Yolov7-tiny模型瘦身(param、FLOPs)碎碎念 

solution2:简单粗暴,不用改网络结构,在yaml的第2、3行depth_multiple与width_multiple进行修改, 其中深度与网络层中的number相乘,得到实际网络深度,宽度与通道数相乘,所以这两者设置为0-1之间可以直接影响整体网络,但实际检测效果肯定会大受影响。

solution3: anchor大小的修改,可以根据自己数据集的特点进行特征图大小的修改,每一对数字是anchors的长宽大小。

原始yolov7-tiny的参数量为6.2M,320*320的输入下FLOPs为3.46G;在solution2中,比例为0.5时Param与FLOPs分别为1.5M 与 0.41G,模型大小为3.1M ;比例为0.8时分别为4.03M与1.21G,模型大小为8.3M,但具体效果。。见仁见智了

solution1还在训练文章来源地址https://www.toymoban.com/news/detail-447591.html

到了这里,关于关于Yolov7-tiny模型瘦身(param、FLOPs)碎碎念的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

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

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

    2024年02月04日
    浏览(15)
  • 实践航拍小目标检测,基于YOLOv7【tiny/l/x】不同系列参数模型开发构建无人机航拍场景下的小目标检测识别分析系统

    实践航拍小目标检测,基于YOLOv7【tiny/l/x】不同系列参数模型开发构建无人机航拍场景下的小目标检测识别分析系统

    关于无人机相关的场景在我们之前的博文也有一些比较早期的实践,感兴趣的话可以自行移步阅读即可: 《deepLabV3Plus实现无人机航拍目标分割识别系统》 《基于目标检测的无人机航拍场景下小目标检测实践》 《助力环保河道水质监测,基于yolov5全系列模型【n/s/m/l/x】开发构

    2024年03月18日
    浏览(14)
  • 助力工业园区作业违规行为检测预警,基于YOLOv7【tiny/l/x】不同系列参数模型开发构建工业园区场景下作业人员违规行为检测识别系统

    助力工业园区作业违规行为检测预警,基于YOLOv7【tiny/l/x】不同系列参数模型开发构建工业园区场景下作业人员违规行为检测识别系统

    在很多工业园区生产作业场景下保障合规合法进行作业生产操作,对于保护工人生命安全降低安全隐患有着非常重要的作用,但是往往在实际的作业生产中,因为一个安全观念的淡薄或者是粗心大意,对于纪律约束等意思薄弱,导致在进行正常的作业生产中并没有按照安全规

    2024年02月01日
    浏览(66)
  • AI助力农作物自动采摘,基于YOLOv7【tiny/l/x】不同系列参数模型开发构建作物番茄采摘场景下番茄成熟度检测识别分析系统

    AI助力农作物自动采摘,基于YOLOv7【tiny/l/x】不同系列参数模型开发构建作物番茄采摘场景下番茄成熟度检测识别分析系统

    去年十一那会无意间刷到一个视频展示的就是德国机械收割机非常高效自动化地24小时不间断地在超广阔的土地上采摘各种作物,专家设计出来了很多用于采摘不同农作物的大型机械,看着非常震撼,但是我们国内农业的发展还是相对比较滞后的,小的时候拔草是一个人一列

    2024年02月19日
    浏览(15)
  • YOLOv5、YOLOv7改进首发最新PWConv核心结构|来自最新CVPR2023顶会,进一步轻量化!测试数据集mAP有效涨点,进一步降低参数量,追求更高的 FLOPS

    YOLOv5、YOLOv7改进首发最新PWConv核心结构|来自最新CVPR2023顶会,进一步轻量化!测试数据集mAP有效涨点,进一步降低参数量,追求更高的 FLOPS

    💡 本篇内容 :YOLOv5,YOLOv7改进首发最新PWConv核心结构|来自最新顶会CVPR2023, 🚀🚀各种数据集mAP有效涨点,进一步降低参数量,追求更高的 FLOPS 💡 🚀🚀🚀内含·改进源代码·,按步骤操作运行改进后的代码即可 重点 :🔥🔥🔥有同学已经使用这个 PWConv 创新点 在 数据集

    2024年02月06日
    浏览(15)
  • 神经网络的参数量(Params)和计算量(FLOPs)

    神经网络的参数量(Params)和计算量(FLOPs)

    参数量(Params) 参数量是指模型训练中需要训练的参数总数。用来衡量模型的大小(计算空间复杂度)。 计算量(FLOPs) 浮点运算次数,理解为计算量(计算时间复杂度),可以用来衡量算法的复杂度,常用做神经网络模型速度的间接衡量标准(虽然最近已经有文章证明靠FLOPs间接标

    2023年04月16日
    浏览(6)
  • YOLOV7训练模型分析

    YOLOV7训练模型分析

    训练后在runs/train文件下生成了包含这些文件或文件夹: 训练后会得到一个权重文件(weights),weights文件是YOLOv7模型的核心,它保存了模型的训练结果,也就是训练好的模型,是进行目标检测的必要文件。该文件内包括best.pt和last.pt,一般使用best.pt去进行推理。这个文件包含

    2024年02月06日
    浏览(10)
  • 【Yolov7】配置参数以及训练模型

    【Yolov7】配置参数以及训练模型

    github地址:https://github.com/WongKinYiu/yolov7 或者命令行下载 用Acaconda新建一个干净的环境,我命名为yolov7,python版本选择3.8 进入到刚刚下载的yolov7的目录中,安装yolov7所需的第三方库 打开yolov7项目,再打开data文件夹,拷贝一份 coco.yaml 1、修改里面的 trian 、 val 、 test 的路径,改

    2023年04月13日
    浏览(11)
  • Yolov7学习笔记(一)模型结构

    Yolov7学习笔记(一)模型结构

    个人学习笔记,项目代码参考Bubbliiiing的yolov7-pytorch-master版 参考: 1、Pytorch搭建YoloV7目标检测平台 源码 2、最终版本YOLOv1-v7全系列大解析 3、三万字硬核详解:yolov1、yolov2、yolov3、yolov4、yolov5、yolov7 4、yolo系列的Neck模块 如图所示,yolo系类的结构主要由主干提取结构(Backbon

    2024年02月08日
    浏览(9)
  • YOLOV7 目标检测模型调试记录

    YOLOV7 目标检测模型调试记录

    YOLO系列在目标检测领域可谓名声赫赫,其性能表现不俗,如今其已经更新到了YOLOV7版本,今天便来一睹其风采。 博主之前只是对YOLO算法的原理一知半解,并未实验,因此并不熟练,因此,借此机会来进行实验以为日后的论文撰写做好准备。 看一下YOLOV7X的网络结构: 首先是

    2024年02月03日
    浏览(11)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包