0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

深度学习模型压缩与加速综述

Dbwd_Imgtec 来源:yxw 2019-06-08 17:26 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

目前在深度学习领域分类两个派别,一派为学院派,研究强大、复杂的模型网络和实验方法,为了追求更高的性能;另一派为工程派,旨在将算法更稳定、高效的落地在硬件平台上,效率是其追求的目标。复杂的模型固然具有更好的性能,但是高额的存储空间、计算资源消耗是使其难以有效的应用在各硬件平台上的重要原因。所以,卷积神经网络日益增长的深度和尺寸为深度学习在移动端的部署带来了巨大的挑战,深度学习模型压缩与加速成为了学术界和工业界都重点关注的研究领域之一。本文主要介绍深度学习模型压缩和加速算法的三个方向,分别为加速网络结构设计、模型裁剪与稀疏化、量化加速。

I. 加速网络设计

分组卷积

分组卷积即将输入的feature maps分成不同的组(沿channel维度进行分组),然后对不同的组分别进行卷积操作,即每一个卷积核至于输入的feature maps的其中一组进行连接,而普通的卷积操作是与所有的feature maps进行连接计算。分组数k越多,卷积操作的总参数量和总计算量就越少(减少k倍)。然而分组卷积有一个致命的缺点就是不同分组的通道间减少了信息流通,即输出的feature maps只考虑了输入特征的部分信息,因此在实际应用的时候会在分组卷积之后进行信息融合操作,接下来主要讲两个比较经典的结构,ShuffleNet[1]和MobileNet[2]结构。

1) ShuffleNet结构:

如上图所示,图a是一般的group convolution的实现效果,其造成的问题是,输出通道只和输入的某些通道有关,导致全局信息 流通不畅,网络表达能力不足。图b就是shufflenet结构,即通过均匀排列,把group convolution后的feature map按通道进行均匀混合,这样就可以更好的获取全局信息了。图c是操作后的等价效果图。在分组卷积的时候,每一个卷积核操作的通道数减少,所以可以大量减少计算量。

2)MobileNet结构:

如上图所示,mobilenet采用了depthwise separable convolutions的思想,采用depthwise (或叫channelwise)和1x1 pointwise的方法进行分解卷积。其中depthwise separable convolutions即对每一个通道进行卷积操作,可以看成是每组只有一个通道的分组卷积,最后使用开销较小的1x1卷积进行通道融合,可以大大减少计算量。

分解卷积

分解卷积,即将普通的kxk卷积分解为kx1和1xk卷积,通过这种方式可以在感受野相同的时候大量减少计算量,同时也减少了参数量,在某种程度上可以看成是使用2k个参数模拟k*k个参数的卷积效果,从而造成网络的容量减小,但是可以在较少损失精度的前提下,达到网络加速的效果。

右图是在图像语义分割任务上取得非常好的效果的ERFNet[3]的主要模块,称为NonBottleNeck结构借鉴自ResNet[4]中的Non-Bottleneck结构,相应改进为使用分解卷积替换标准卷积,这样可以减少一定的参数和计算量,使网络更趋近于efficiency。

Bottleneck结构

右图为ENet[5]中的Bottleneck结构,借鉴自ResNet中的Bottleneck结构,主要是通过1x1卷积进行降维和升维,能在一定程度上能够减少计算量和参数量。其中1x1卷积操作的参数量和计算量少,使用其进行网络的降维和升维操作(减少或者增加通道数)的开销比较小,从而能够达到网络加速的目的。

C.ReLU[7]结构

C.ReLU来源于CNNs中间激活模式引发的。输出节点倾向于是"配对的",一个节点激活是另一个节点的相反面,即其中一半通道的特征是可以通过另外一半通道的特征生成的。根据这个观察,C.ReLU减少一半输出通道(output channels)的数量,然后通过其中一半通道的特征生成另一半特征,这里使用 negation使其变成双倍,最后通过scale操作使得每个channel(通道)的斜率和激活阈值与其相反的channel不同。

SqueezeNet[8]结构

SqueezeNet思想非常简单,就是将原来简单的一层conv层变成两层:squeeze层+expand层,各自带上Relu激活层。在squeeze层里面全是1x1的卷积kernel,数量记为S11;在expand层里面有1x1和3x3的卷积kernel,数量分别记为E11和E33,要求S11 < input map number。expand层之后将 1x1和3x3的卷积output feature maps在channel维度拼接起来。

神经网络搜索[18]

神经结构搜索(Neural Architecture Search,简称NAS)是一种自动设计神经网络的技术,可以通过算法根据样本集自动设计出高性能的网络结构,在某些任务上甚至可以媲美人类专家的水准,甚至发现某些人类之前未曾提出的网络结构,这可以有效的降低神经网络的使用和实现成本。

NAS的原理是给定一个称为搜索空间的候选神经网络结构集合,用某种策略从中搜索出最优网络结构。神经网络结构的优劣即性能用某些指标如精度、速度来度量,称为性能评估,可以通过NAS自动搜索出高效率的网络结构。

本节主要介绍了模型模型设计的思路,同时对模型的加速设计以及相关缺陷进行分析。总的来说,加速网络模型设计主要是探索最优的网络结构,使得较少的参数量和计算量就能达到类似的效果。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 模型
    +关注

    关注

    1

    文章

    3841

    浏览量

    52293
  • 深度学习
    +关注

    关注

    73

    文章

    5611

    浏览量

    124667

原文标题:深度学习模型压缩与加速综述

文章出处:【微信号:Imgtec,微信公众号:Imagination Tech】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    深度学习为什么还是无法处理边缘场景?

    选择视而不见甚至直接加速。 之所以出现这个问题,是因为深度学习模型大多建立在统计学基础之上,它们通过观察数以千万计的图像学习识别物体的特征。
    的头像 发表于 05-04 10:16 2171次阅读
    <b class='flag-5'>深度</b><b class='flag-5'>学习</b>为什么还是无法处理边缘场景?

    零基础手写大模型资料2026

    零基础纯代码手写大模型:从数学原理到工程实践的技术解析 在深度学习框架高度封装的今天,理解大模型底层原理的开发者愈发稀缺。本文将剥离复杂框架的依赖,从数学基础出发,解析如何用基础代码实
    发表于 05-01 17:44

    人工智能-Python深度学习进阶与应用技术:工程师高培解读

    深度学习的工程化落地,早已不是纸上谈兵的事。从卷积神经网络到Transformer,从目标检测到大模型私有化部署,技术栈不断延伸,工程师面临的知识体系也越来越庞杂。现根据中际赛威工程师培训老师的一份
    的头像 发表于 04-21 11:01 407次阅读
    人工智能-Python<b class='flag-5'>深度</b><b class='flag-5'>学习</b>进阶与应用技术:工程师高培解读

    深度学习驱动的超构表面设计进展及其在全息成像中的应用

    可实现高质量图像的获取。基于神经网络深度学习方法进行超构表面设计的文章数量日益增多,但关于该主题的综述仍较为匮乏。据麦姆斯咨询报道,近期,中国计量大学田颖教授等人
    的头像 发表于 04-09 13:55 184次阅读
    <b class='flag-5'>深度</b><b class='flag-5'>学习</b>驱动的超构表面设计进展及其在全息成像中的应用

    面向嵌入式部署的神经网络优化:模型压缩深度解析

    1.为什么需要神经网络模型压缩? 神经网络已经成为解决复杂机器学习问题的强大工具。然而,这种能力往往伴随着模型规模和计算复杂度的增加。当输入维度较大(例如长时序窗口、高分辨率特征空间)
    的头像 发表于 02-24 15:37 5505次阅读
    面向嵌入式部署的神经网络优化:<b class='flag-5'>模型</b><b class='flag-5'>压缩</b><b class='flag-5'>深度</b>解析

    机器学习深度学习中需避免的 7 个常见错误与局限性

    无论你是刚入门还是已经从事人工智能模型相关工作一段时间,机器学习深度学习中都存在一些我们需要时刻关注并铭记的常见错误。如果对这些错误置之不理,日后可能会引发诸多麻烦!只要我们密切关注
    的头像 发表于 01-07 15:37 371次阅读
    机器<b class='flag-5'>学习</b>和<b class='flag-5'>深度</b><b class='flag-5'>学习</b>中需避免的 7 个常见错误与局限性

    穿孔机顶头检测仪 机器视觉深度学习

    顶头状态。 检测顶头算法 引入人工智深度学习技术,通过Keras实现卷积神经网络(CNN),用Numpy实现采集数据的训练,得到符合现场需求的模型,进一步提升检测的准确性和现场的适应性。 应用范围
    发表于 12-22 14:33

    【团购】独家全套珍藏!龙哥LabVIEW视觉深度学习实战课(11大系列课程,共5000+分钟)

    、GPU加速训练(可选) 双轨教学:传统视觉算法+深度学习方案全覆盖 轻量化部署:8.6M超轻OCR模型,适合嵌入式设备集成 无监督学习:无
    发表于 12-04 09:28

    【团购】独家全套珍藏!龙哥LabVIEW视觉深度学习实战课程(11大系列课程,共5000+分钟)

    、GPU加速训练(可选) 双轨教学:传统视觉算法+深度学习方案全覆盖 轻量化部署:8.6M超轻OCR模型,适合嵌入式设备集成 无监督学习:无
    发表于 12-03 13:50

    如何利用NPU与模型压缩技术优化边缘AI

    ,AI 模型体积庞大,部署在 NPU上常常面临困难,这凸显了模型压缩技术的重要性。要实现高效的实时边缘 AI,需要深入探讨NPU 与模型压缩
    的头像 发表于 11-07 15:26 1456次阅读
    如何利用NPU与<b class='flag-5'>模型</b><b class='flag-5'>压缩</b>技术优化边缘AI

    【「AI芯片:科技探索与AGI愿景」阅读体验】+第二章 实现深度学习AI芯片的创新方法与架构

    、Transformer 模型的后继者 二、用创新方法实现深度学习AI芯片 1、基于开源RISC-V的AI加速器 RISC-V是一种开源、模块化的指令集架构(ISA)。优势如下: ①模
    发表于 09-12 17:30

    Andes晶心科技推出新一代深度学习加速

    高效能、低功耗 32/64 位 RISC-V 处理器核与 AI 加速解决方案的领导供货商—Andes晶心科技(Andes Technology)今日正式发表最新深度学习加速器 Ande
    的头像 发表于 08-20 17:43 3161次阅读

    自动驾驶中Transformer大模型会取代深度学习吗?

    [首发于智驾最前沿微信公众号]近年来,随着ChatGPT、Claude、文心一言等大语言模型在生成文本、对话交互等领域的惊艳表现,“Transformer架构是否正在取代传统深度学习”这一话题一直被
    的头像 发表于 08-13 09:15 4398次阅读
    自动驾驶中Transformer大<b class='flag-5'>模型</b>会取代<b class='flag-5'>深度</b><b class='flag-5'>学习</b>吗?

    基于FPGA的压缩算法加速实现

    本设计中,计划实现对文件的压缩及解压,同时优化压缩中所涉及的信号处理和计算密集型功能,实现对其的加速处理。本设计的最终目标是证明在充分并行化的硬件体系结构 FPGA 上实现该算法时,可以大大提高该算
    的头像 发表于 07-10 11:09 2626次阅读
    基于FPGA的<b class='flag-5'>压缩</b>算法<b class='flag-5'>加速</b>实现

    模型推理显存和计算量估计方法研究

    ,如乘法、加法等; (2)根据各层计算操作的类型和复杂度,确定每层所需的计算量; (3)将各层计算量相加,得到模型总的计算量。 基于硬件加速的算力估计 随着硬件加速技术的发展,许多深度
    发表于 07-03 19:43