【综述】结构化剪枝

news2025/2/27 14:32:22

目录

摘要

分类

1、依赖权重

2、基于激活函数

3、正则化

3.1 BN参数正则化

3.2 额外参数正则化

3.3 滤波器正则化

4、优化工具

5、动态剪枝

6、神经架构搜索

 性能比较


摘要

深度卷积神经网络(CNNs)的显著性能通常归因于其更深层次和更广泛的架构,这可能会带来巨大的计算成本。剪枝神经网络有效地降低了存储和计算成本,因此引起了人们的兴趣。与导致非结构化模型的权重剪枝相比,结构化剪枝通过生成对硬件实现友好的模型,提供了现实加速的好处。结构化剪枝的特殊要求导致了许多新挑战的发现和创新解决方案的发展。本文综述了深度CNN的结构化剪枝的最新进展。我们总结和比较了最新的结构化剪枝技术,包括过滤器排序方法、正则化方法、动态执行、神经结构搜索、彩票假设和剪枝的应用。在讨论结构化剪枝算法时,我们简要介绍了非结构化剪枝对等物,以强调它们的区别。

分类

1、依赖权重

与权重相关的准则基于过滤器的权重来评估过滤器的重要性。与基于激活的方法相比,依赖于权重的方法不涉及输入数据。因此,依赖于权重的方法被认为是简单的,并且需要更低的计算成本。与权重相关的准则有两个子类别:滤波器范数和滤波器相关性。

2、基于激活函数

激活映射是输入数据和滤波器的卷积结果。除了使用过滤器的权重外,激活映射还可以用于过滤器剪枝。激活通道剪枝是过滤器剪枝的另一个名称,因为删除激活映射的通道相当于删除过滤器。除了当前层的影响外,过滤器剪枝还会通过特征映射影响下一层的过滤器。

3、正则化

正则化可以通过添加不同的稀疏正则化器Rs(·)来学习结构化的稀疏网络。如果网络包含批处理归一化层,则稀疏性正则化器可以应用于BN参数。为了实现结构稀疏性,BN参数用于表示结构,如通道或滤波器的剪枝决策。引入了额外的参数作为可学习门的工作来指导修剪。有了这些额外的参数,网络就不再需要批处理规范化层了。稀疏性正则化器也可以直接应用于滤波器。群套索正则化通常用于以结构化的方式稀疏滤波器。

3.1 BN参数正则化

BN层在许多现代神经网络中被广泛应用,以提高模型泛化。通过对每个小批训练进行归一化,解决了内部协变量移位问题。

3.2 额外参数正则化

3.3 滤波器正则化

4、优化工具

5、动态剪枝

动态剪枝可以在训练和推理过程中进行。动态修剪在训练过程中的目的是通过在训练过程中保持动态剪枝掩模来保持模型的代表性能力。它也被称为软剪枝,以确保不适当的修剪决策可以稍后恢复。另一方面,硬修剪永久去除与一个固定的面具的重量。推理过程中的动态修剪表明,网络是根据不同的输入样本进行动态修剪的。例如,与一个复杂的图像相比,一个包含清晰目标的简单图像需要更少的模型容量。因此,动态推理提供了更好的资源-准确性的权衡。

6、神经架构搜索

由于手动确定与剪枝相关的超参数很麻烦,如分层剪枝比率,因此提出了神经结构搜索(NAS)[25]来自动查找剪枝结构。

 性能比较

最新剪枝方法性能比较

 参考资料:Structured Pruning for Deep Convolutional Neural Networks: A survey

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

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

相关文章

QML转换(Transformation)

目录 一 QML介绍 二 QML的使用场合 三 实例演示 一 QML介绍 QML是Qt Quick的缩写,它是一种新型的、面向对象的、跨平台的脚本语言,可以用来描述用户界面或应用程序的交互逻辑。QML可以在Qt应用程序中使用,也可以在其他JavaScript应用程序中…

Python入门(九)字典(二)

字典(二) 1.遍历字典1.1 遍历所有键值对1.2 遍历字典中的所有键1.3 按特定顺序遍历字典中的所有键 2.嵌套2.1 字典列表2.2 在字典中存储列表2.3 在字典中存储字典 作者:xiou 1.遍历字典 一个Python字典可能只包含几个键值对,也可…

【源码解析】SpringBoot自定义条件及@Conditional源码解析

自定义注解 自定义条件类 public class MessageCondition extends SpringBootCondition {Overridepublic ConditionOutcome getMatchOutcome(ConditionContext context, AnnotatedTypeMetadata metadata) {MultiValueMap<String, Object> attrs metadata.getAllAnnota…

成年人的崩溃只在一瞬间,程序员凌晨三点写的代码竟被女友删了...

对于恋爱中的情侣来说&#xff0c;吵架是很正常的事情&#xff0c;就算是再怎么亲密&#xff0c;也难免会出现意见不合的时候。 吵架不可怕&#xff0c;可怕的是&#xff0c;受吵架情绪的影响&#xff0c;做出一些比较“极端”的事情。 之前某社交平台上一位女生吐槽自己的男…

Ubuntu 本地部署 Stable Diffusion web UI

Ubuntu 本地部署 Stable Diffusion web UI 0. 什么是 Stable Diffusion1. 什么是 Stable Diffusion web UI2. Github 地址3. 安装 Miniconda34. 创建虚拟环境5. 安装 Stable Diffusion web UI6. 启动 Stable Diffusion web UI7. 访问 Stable Diffusion web UI8. 其他 0. 什么是…

我这里取出来的数据(最后边的excel)有点问题,我没有要取性别的数据,但是表里有...

点击上方“Python爬虫与数据挖掘”&#xff0c;进行关注 回复“书籍”即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 上穷碧落下黄泉&#xff0c;两处茫茫皆不见。 大家好&#xff0c;我是皮皮。 一、前言 前几天在Python钻石群【不争】问了一个Python自动化办公的问题&…

PyCharm安装教程,图文教程(超详细)

「作者简介」&#xff1a;CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」&#xff1a;对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 PyCharm 一、PyCharm下载安装二、Python下载安装三、创建项目四、安装模块1、pip安装2、P…

商城系统商品属性的数据库设计思路

京东商城的数据库是如何搭建的&#xff0c;那么多商品&#xff0c;每种商品的参数各不相同&#xff0c;是怎样设计数据库的&#xff1f; 在提及这种设计思路前&#xff0c;首先得了解数据表可以分为两种结构: 1\横表,也就是我们经常用到的表结构&#xff0c; 2\纵表,这种结构…

ASEMI代理LT8609AJDDM#WTRPBF原装ADI车规级芯片

编辑&#xff1a;ll ASEMI代理LT8609AJDDM#WTRPBF原装ADI车规级芯片 型号&#xff1a;LT8609AJDDM#WTRPBF 品牌&#xff1a;ADI /亚德诺 封装&#xff1a;DFN-10 批号&#xff1a;2023 安装类型&#xff1a;表面贴装型 引脚数量&#xff1a;10 工作温度:-40C~125C 类型…

MySQL学习---13、存储过程与存储函数

1、存储过程概述 MySQL从5.0版本开始支持存储过程和函数。存储过程和函数能够将负杂的SQL逻辑封装在一起&#xff0c;应用程序无序关注存储过程和函数内部复杂的SQL逻辑&#xff0c;而只需要简单的调用存储过程和函数就可以。 1.1 理解 含义&#xff1a;存储过程的英文是Sto…

ASEMI代理LTC2954CTS8-2#TRMPBF原装ADI车规级芯片

编辑&#xff1a;ll ASEMI代理LTC2954CTS8-2#TRMPBF原装ADI车规级芯片 型号&#xff1a;LTC2954CTS8-2#TRMPBF 品牌&#xff1a;ADI/亚德诺 封装&#xff1a;TSOT-23-8 批号&#xff1a;2023 引脚数量&#xff1a;23 工作温度&#xff1a;-40C~85C 安装类型&#xff1a…

若依框架(RuoYI)项目打包(jar)方法,部署到 Linux 服务器

序言 在若依框架的 bin 目录下&#xff0c;存在着三个 bat 文件&#xff0c;一个是清除之前的依赖的自动化 bat 脚本&#xff08;clean.bat&#xff09;&#xff0c;一个是自动化项目打包的 bat 脚本&#xff08;package.bat&#xff09;&#xff0c;一个是运行若依项目的脚本…

云原生CAx软件:技术约束

Pivotal公司的Matt Stine于2013年首次提出Cloud Native(云原生)的概念&#xff0c;从概念提出到技术落地&#xff0c;云原生还处于不断发展过程中&#xff0c;关于云原生的定义也不断在完善。 云原生为使用开源软件堆栈来创建容器化、动态编排和面向微服务的应用程序。 Heroku创…

YOLOv8 深度解析!一文看懂,快速上手实操(附实践代码)

关注并星标 从此不迷路 计算机视觉研究院 公众号ID&#xff5c;ComputerVisionGzq 学习群&#xff5c;扫码在主页获取加入方式 开源地址&#xff1a;https://github.com/ultralytics/ultralytics 计算机视觉研究院专栏 作者&#xff1a;Edison_G YOLOv8 是 ultralytics 公司在 …

消息队列测试场景和redis测试场景

一、消息队列测试场景 1、什么是消息队列。你是怎么测试的&#xff1f; 解题思路&#xff1a; 什么是消息队列。 消息队列应用场景。 消息队列测试点列举。 2、什么是消息队列 Broker&#xff1a;消息服务器&#xff0c;提供消息核心服务 Producer&#xff1a;消息生产者&a…

Python入门(八)字典(一)

字典&#xff08;一&#xff09; 1.字典概述2.一个简单的字典3.使用字典3.1 访问字典中的值3.2添加键值对3.3 先创建一个空字典3.4 修改字典中的值3.5 删除键值对 作者&#xff1a;xiou 1.字典概述 在本章中&#xff0c;你将学习能够将相关信息关联起来的Python字典&#xff…

二叉排序树查找成功和不成功的平均查找长度

理解二叉树的特性: 1)结点:包含一个数据元素及若干指向子树分支的信息。 2)结点的度:一个结点拥有子树的数据成为结点的度。 3)叶子结点:也称为终端结点,没有子树的结点或者度为零的结点。 4)分支结点:也称为非终端结点,度不为零的结点成为非终端结点。 5)结点…

视觉检测设备主要有哪几分类

在如今的工业4.0时代&#xff0c;整个行业都在加速智能制造的脚步&#xff0c;此时我们就不得不说其其中重要的环节——视觉检测&#xff0c;本身其只是属于机器视觉中一个应用的分支&#xff0c;但是因其应用广泛&#xff0c;久而久之很多工厂行业的从业者在遇到需要外观检测问…

GDB 的简单使用

GDB 的简单使用 一、启动调试二、常用调试命令1.list&#xff08;显示程序源代码&#xff09;2.break、tbreak、delete、disable、enable 和 info break&#xff08;断点操作&#xff09;3.run&#xff08;运行源程序&#xff09;4.next 和 step&#xff08;单步调试&#xff0…

大型语言模型 (LLM) 的两条发展路线:Finetune v.s. Prompt

前言 如果你对这篇文章感兴趣&#xff0c;可以点击「【访客必读 - 指引页】一文囊括主页内所有高质量博客」&#xff0c;查看完整博客分类与对应链接。 在大型语言模型的研究中&#xff0c;研究者对其有两种不同的期待&#xff0c;也可以理解为是两种不同的路线&#xff0c;具…