Yolov5更换backbone,与模型压缩(剪枝,量化,蒸馏)

Yolov5更换backbone,与模型压缩(剪枝,量化,蒸馏)目前支持更换yolov5的backbone主干网络为Ghostnet,以及采用eagleeye的剪枝方法支持对yolov5系列的剪枝。后续,将会添加更多更轻量,更优秀的主干网络,比如swintrans,…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

项目地址(GitHub):https://github.com/Ranking666/Yolov5-Processing

~~~欢迎各位交流、star、fork、issues~~~

项目介绍:

        本仓库是基于官方yolov5源码的基础上,进行的改进。

        目前支持更换yolov5的backbone主干网络为Ghostnet,以及采用eagleeye的剪枝方法支持对yolov5系列的剪枝。

        后续,将会添加更多更轻量,更优秀的主干网络,比如swintrans,EfficientNet等,以及其他剪枝方法,以及量化,蒸馏对于yolov5系列的支持。

        欢迎大家有问题,错误,想法都可以积极交流,探讨,学习,本项目长期维护,持续更新,各位的star,就是对本项目的大力支持。

《GhostNet: More Features from Cheap Operations》

        先简单介绍一下,目前支持的backbone

        在一张图像中存在着很多像素的冗余,而在CNN模型中这种冗余更是非常多的,提取到了大量无用的特征。

Yolov5更换backbone,与模型压缩(剪枝,量化,蒸馏)

        比如论文中给到的这个图,可以看到用扳手连接的几张图其实是非常相似的,完全是冗余的,不需要的

        于是本论文提出一个仅通过少量计算(cheap operations)就能生成大量特征图的结构——Ghost Module。

        Ghost Module可以适用在任何大型的CNN模型中,已经可以达到即插即用的效果。

        首先,作者将原来的卷积分为两步,第一步还是卷积,只不过输出通道数减少了;第二步是用第一步生成的特征图通过线性变化,来生成剩余的特征图。最后将两步的输出通道结合输出。也就是像图中b表示的这样

Yolov5更换backbone,与模型压缩(剪枝,量化,蒸馏)

       然后,作者通过一系列计算得出计算量是减少的,具体公式这里就不列出。     

       了解了Ghost Module,下面看Ghost Bottlenecks。

Yolov5更换backbone,与模型压缩(剪枝,量化,蒸馏)

        Ghost Bottlenecks的作用和残差块的作用一样,结构也和残差块的结构类似    ,就不过多介绍, 大家看过代码一下就能懂   

        所以,backbone就是由这样的Ghost Bottlenecks堆叠产生的。

EagleEye: Fast Sub-net Evaluation for Efficient Neural Network Pruning

        详细大家可以看之前的初入神经网络剪枝量化3

如有错误,欢迎各位批评指正!!!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/170748.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 搭建pycharm环境_pycharm怎么配置anaconda环境

    搭建pycharm环境_pycharm怎么配置anaconda环境首先要创建一个项目,创建项目的同时,pycharm默认会顺带创建一个虚拟环境(如果你没修改默认配置的话)。点击终端,如果前面有个(venv)就是使用的虚拟环境了。接下来我们安装pyside6,在终端中输入并执行以下命令:pipinstallpyside6安装完成后配置拓展工具,需要用到的2个工具是pyside6-uic和pyside6-designerpyside6-designer是调用pyside6模块内附带的qtdesigner在Linux中其位

    2022年8月27日
    3
  • MFC进度条编程「建议收藏」

    MFC进度条编程「建议收藏」1.进度条的主要功能进度条控制(ProgressControl)主要用来进行数据读写、文件拷贝和磁盘格式等操作时的工作进度提示情况,如安装程序等,伴随工作进度的进展,进度条的矩形区域从左到右利用当前活动窗口标题条的颜色来不断填充。进度条控制在MFC类库中的封装类为CProgressCtrl,通常仅作为输出类控制,所以其操作主要是设置进度条的范围和当前位置,并不断地更新当前位置。进度条的范

    2022年7月12日
    26
  • 组播(Multicast)传输[通俗易懂]

    组播(Multicast)传输[通俗易懂]组播(Multicast)传输:在发送者和每一接收者之间实现点对多点网络连接。如果一台发送者同时给多个的接收者传输相同的数据,也只需复制一份的相同数据包。它提高了数据传送效率。减少了骨干网络出现拥

    2022年8月5日
    5
  • Mysql错误1452 – Cannot add or update a child row: a foreign key constraint fails 原因及解决方法[通俗易懂]

    Mysql错误1452 – Cannot add or update a child row: a foreign key constraint fails 原因及解决方法[通俗易懂]报错的原因大概分为三种:原因一:添加的外键列与另一个表的唯一索引列(一般是主键)的数据类型不同原因二:要添加外键的表类型与另一个表的存储引擎是不是都为innodb引擎#查看表引擎法一:showcreatetable表名;法二:showtablestatusfrom数据库wherename=‘表名’;法三:useinformation_schema;selec…

    2022年6月15日
    56
  • Ubuntu18.04安装 NVIDIA驱动+CUDA10.2+cuDNN+TensorRT

    Ubuntu18.04安装 NVIDIA驱动+CUDA10.2+cuDNN+TensorRT1.先卸载原有n卡驱动#forthedriverinstalledbyapt-get:sudoapt-getremove–purgenvidia*#forthedriverinstalledbyrunfilesudochmod+x*.runsudo./NVIDIA-Linux-x86_64-384.59.run–uninstall如果使用的是apt-

    2022年5月4日
    195
  • PhantomJS简介[通俗易懂]

    PhantomJS简介[通俗易懂]PhantomJS是一个可编程的无头浏览器.无头浏览器:一个完整的浏览器内核,包括js解析引擎,渲染引擎,请求处理等,但是不包括显示和用户交互页面的浏览器。可以使用Phantomejs做一些页面渲染的工作;如获取js的页面内容、截图等;

    2022年7月26日
    9

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号