深度神经网络剪枝算法基础理论

news2024/9/22 3:54:48

非结构化剪枝可获得更高的剪枝率与精度,但是其非结构化特征带来的随机连接使得往往需要专门的软、硬件设计来支持其推理加速,而在现有的边缘硬件上难以满足其应用条件。鉴于此,目前在剪枝领域的研究多集中在结构化剪枝上,如图1.11中所示,右侧三列均属于结构化剪枝的范畴,区别仅在于所选择的剪枝粒度不同。

在本文的研究中主要关注的是卷积核(Filter)剪枝,在一些工作中将与卷积核剪枝有同样效果的剪枝粒度称为通道(Channel)剪枝,两者的区别在于剪枝时所选用的评估指标不同,但剪枝之后最终呈现的效果依然是相同的。例如卷积核剪枝是直接评估卷积层中卷积核的重要性程度,随后剪去筛选出的不重要卷积核以及对应该卷积核的通道;而通道剪枝则是先根据某一评估指标筛选出不重要的通道,再剪去该不重要通道对应的卷积核,例如[103]、[105]以及[107]等工作均属于该类型。卷积核剪枝与Kernel剪枝也同样有联系,如前所述,卷积核剪枝首先会筛选出当前层中不同要的卷积核,随后剪枝,但需要注意到,该层的卷积核剪枝还会影响到下一层的卷积核中的Kernel,因为下一层卷积核的Kernel数是与上一层的输出通道数对应的,两者需要同时改变。

在结构化剪枝方案中,根据评估指标来源所划分的两类剪枝方法,即参数驱动的与数据驱动的方法,鉴于数据驱动的剪枝方案多依赖于训练数据,并根据不同的输入数据计算对应的梯度或损失值等来作为评估依据,相较于参数驱动的方法往往存在更多的计算;同时,参数驱动的方法大多从权值等模型自身数据特征的角度出发来衡量重要性,更符合在不同场景下的应用需求,因此本文研究的剪枝方法也属于参数驱动的剪枝方法。

上述关于评估指标的选择本质是在解决“怎么剪”的问题,而在确定评估指标后,则需求解决“剪多少”的问题。首选需要了解从全局与局部角度进行的剪枝方案划分,局部剪枝方案往往在同一层或同一模块内比较卷积核或通道的重要性;而全局剪枝从直接从整个模型的角度,来统一衡量重要性。两种方案中如何确定最终的剪枝结果,还与如何确定剪枝率的方法息息相关。例如在局部剪枝中,可以提前为所有待剪枝层设置一个固定的剪枝比例,也可以为每一层设置不同的剪枝比例,除了这种提前设置剪枝比例的,还可以根据稀疏后的实际情况,来计算剪枝比例;同样的,这些确定剪枝比例的方法均可应用在全局剪枝中。

待完成剪枝后,在多数剪枝方案中还需要进行微调来恢复模型的精度,但是往往恢复效果较差,或者需要长时间的微调才能得到较好的微调结果,但这种长时间的微调往往其实已经和重新训练并无区别了,因此如何缩短剪枝后的微调时间以及整个剪枝过程所需的时间都是需要优化的。综合上述关于结构化剪枝中的关键问题描述,可得到如图2.4所示的剪枝流程图,图中虚线表示可选。

 2.4  结构化剪枝经典流程图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/733103.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RabbitMQ系列(22)--RabbitMQ优先级队列

前言:在购物系统中有一个订单催付的场景,如果客户在购物系统下单后在设定的时间内未付款那么就会给客户推送一条短信提醒,这是一个比较简单的功能,但是,商家对我们来说,肯定是要区分大客户和小客户的&#…

Xshell7/Xftp7 解决强制更新问题:要继续使用此程序,您必须应用最新的更新或使用最新版本

文章目录 一、背景二、解决方案方案一:重新安装(推荐)方案二:修改nslicense.dll文件(不推荐)方案三:修改系统时间(可选)Xshell.batXftp.bat 三、总结 一、背景 Xshell7/…

音频编码流程 ----- PCM编码为AAC格式

文章目录 1.音频编码流程2.编码函数API含义解释3.音频编码实战Demo PCM转AAC格式 1.音频编码流程 2.编码函数API含义解释 av_frame_make_writable 确保帧数据可写,尽可能避免数据复制.如果帧可写,则不执行任何操作,如果不可写,则…

ssm整合shiro安全框架 前后端分离项目

上一篇文章我们使用ssm整合了shiro安全框架前后端没有进行分离 本篇文章在上一章的项目基础上进行前后端代码分离操作 一、根据账号和密码登录后前后端代码分离🍉 (1)定义一个统一的json类 统一返回的格式🥝 package com.lzq.vo;import lombok.AllArg…

免费开源 | 基于SpringBoot的博客系统

介绍 基于springboot后端架构,websocket实现私信,前端采用thymeleafbootstraplayuiRedis 注册使用邮箱验证注册,且验证码存在redis中,所以需要有redis环境 软件架构 springbootwebsocketthymeleafbootstraplayuiRedismysql 8.…

设计模式--代理设计模式

🎉🎉🎉写在前面: 博主主页:🌹🌹🌹戳一戳,欢迎大佬指点! 目标梦想:进大厂,立志成为一个牛掰的Java程序猿,虽然现在还是一个…

C++之std::function和lambda表达式回调函数(一百五十二)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…

新版本FasterTransformer的FUSED_MHA

关于 UNFUSED_PADDED_MHA VS FUSED_MHA FUSED_MHA用了另一种kernel的执行方法(和添加链接描述相同,将在下一个section说明)UNFUSED_PADDED 的 KERNELS执行代码在 src/fastertransformer/kernels/unfused_attention_kernels.cu enum class AttentionType {UNFUSED_MHA,UNFUSED…

C#,中国福利彩票《刮刮乐》的数学算法(01)——幸运123

彩票名称:幸运123面值:20元/张最高奖:100万(人民币)全套款式:2款玩法介绍: 一份好运,二倍快乐,三重惊喜。福彩刮刮乐新游戏“幸运123”,红色的票面上点缀着礼…

基于simulink使用同步图像跟踪白板上的标记(附源码)

一、前言 此示例演示如何使用Simulink基于图像跟踪白板上的标记。 二、模型 示例模型包含模型引用层次结构。每个模型都有助于图像处理算法。 ex_tracking_marker- 跟踪输入视频中的标记的顶级模型。此模型使用视频查看器块呈现输出视频,并将输出帧记录在工作区变…

Unity桌面弹球小游戏Finger Soccer Game Kit 1.1

按住鼠标左键发射打球 还可以开启双人模式来玩 地址:https://download.csdn.net/download/Highning0007/88020441

《分布式中间件技术实战:Java版》学习笔记(三):Redis实现点赞、取消赞功能

用户在发布内容(包括博客、想法、日记等等)时,后台数据入库后,要往Redis的有序集合添加一条分数为0的记录。这个有序集合是用来对内容点赞量做排序的。同时,可以记录用户操作日志。 Override public String insertArt…

C++常用库函数 4.数学函数

函数名&#xff1a;abs 函数原型&#xff1a;int abs(int n) ; 参数 in 需要求绝对值的整数。 所需头文件&#xff1a;<cstdlib>或<cmath> 功能和返回值&#xff1a;返回 n 的绝对值&#xff1b;没有错误返回函数名&#xff1a;acos 函数原型&#xff1a;doubl…

Cocos Creator 打包 Android 原生,如何配置构建环境?关键就一点

前段时间&#xff0c;有好几位老铁留言 Cocos Creator 打包 Android 原生出现问题&#xff1a;一种是构建失败&#xff0c;一种是运行起来报错&#xff01; 其实&#xff0c;我也是有好长一段时间没有碰过 Android 原生了&#xff0c;而且我这台电脑&#xff0c;环境都没有配置…

idea创建web项目没有jsp选项,不识别jsp,没有tomcat选项

如果你的idea的web项目中没有jsp选项 同时也不识别jsp 那么建议你检查一下你的idea是否为社区版 如果是社区版那么没有jsp的问题无法解决&#xff0c;这只是无法识别&#xff0c;但是语句对的可以正常运行 解决这个问题建议换个idea 至于tomcat&#xff0c; 在plugins中搜s…

axios的学习

axios是基于promise对ajax的一种封装 //将省份信息打印到网页上 <p class"my-p"></p> <script src"https://unpkg.com/axios/dist/axios.min.js"></script> <script>axios({url:http://hmajax.itheima.net/api/province}).…

【PCIE】hot-reset和link disable

Hot reset 规则 如果上游伪端口&#xff08;Pseudo Port&#xff09;的任何一个通道连续接收到两个带有热复位位设置为1b、禁用链路位和回环位设置为0b的TS1有序集合&#xff0c;并且两个伪端口上的任何一个通道&#xff08;接收到TS1有序集合&#xff09;要么收到EIOS&#xf…

java方法的覆盖(Overriding )和隐藏(Hiding)

Java方法的覆盖&#xff08;Overriding &#xff09;针对的是实例方法&#xff08;即非静态方法&#xff09;&#xff0c;而方法的隐藏&#xff08;Hiding&#xff09;针对的是类方法&#xff08;即静态方法&#xff09;。 方法的覆盖和隐藏指的是子类对从父类继承的方法进行重…

基于simulink基于颜色分割方法跟踪人员的面部和手部(附源码)

一、前言 此示例演示如何使用基于颜色的分割方法跟踪人员的面部和手部。 二、模型 下图显示了颜色分割示例模型&#xff1a; 三、颜色分割结果 为了为示例创建准确的颜色模型&#xff0c;处理了许多包含肤色样本的图像&#xff0c;以计算 Cb 和 Cr 颜色通道的均值 &#xf…

基于Unity2017版本的2D3D Infinite Runner Engine 1.5.1二维三维跑酷游戏模板

基于Unity2017版本的2D3D Infinite Runner Engine 1.5.1二维三维跑酷游戏模板 有多种游戏模式 还有个竖屏的玩法 工程地址&#xff1a;https://download.csdn.net/download/Highning0007/88020755