CN112396179A - 一种基于通道梯度剪枝的柔性深度学习网络模型压缩方法 - Google Patents

一种基于通道梯度剪枝的柔性深度学习网络模型压缩方法 Download PDF

Info

Publication number
CN112396179A
CN112396179A CN202011308919.9A CN202011308919A CN112396179A CN 112396179 A CN112396179 A CN 112396179A CN 202011308919 A CN202011308919 A CN 202011308919A CN 112396179 A CN112396179 A CN 112396179A
Authority
CN
China
Prior art keywords
channel
model
mask
layer
training
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202011308919.9A
Other languages
English (en)
Inventor
禹鑫燚
戎锦涛
欧林林
张铭扬
林密
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang University of Technology ZJUT
Original Assignee
Zhejiang University of Technology ZJUT
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhejiang University of Technology ZJUT filed Critical Zhejiang University of Technology ZJUT
Priority to CN202011308919.9A priority Critical patent/CN112396179A/zh
Publication of CN112396179A publication Critical patent/CN112396179A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Image Analysis (AREA)

Abstract

一种基于通道梯度剪枝的柔性深度学习网络模型压缩方法,包括:步骤1、向原始网络添加遮掩层约束,获取待剪枝的深度卷积神经网络模型,步骤2、网络模型在数据集上训练,根据通道梯度和权值的乘积的绝对值作为重要性标准更新通道的遮掩层约束,得到掩码和稀疏模型,步骤3、基于掩码对稀疏模型做剪枝操作,步骤4、重训练紧凑的深度卷积神经网络模型。本发明还提供了基于通道梯度剪枝的柔性深度学习网络模型压缩方法在实际物体识别APP上的应用效果,剪枝后模型对物体的识别速度大幅提升,解决了深度神经网络模型因高存储空间占用,高内存占用,高计算资源占用导致无法部署到嵌入式、智能手机等设备上的技术问题,拓展了深度神经网络的应用范围。

Description

一种基于通道梯度剪枝的柔性深度学习网络模型压缩方法
技术领域
本发明涉及一种柔性深度学习网络模型压缩方法,具体涉及智能手机APP 上实现物体识别的实际应用。
背景技术
深度学习在图像识别、目标检测、图像分割、语音识别,QA问答等多个任 务中都得到了应用,并取得了相较传统方法更出色的效果。但深度神经网络出色 的性能与其复杂的结构和自身庞大的参数量密切相关。并且随着技术进步,深度 学习领域有着神经网络模型结构趋于复杂的发展趋势。因此,高性能的深度神经 网络模型对硬盘存储空间,内存带宽和平台计算资源的需求非常高。深度神经网 络模型的高资源需求和手机、手环、自动驾驶车辆等平台的有限资源间的矛盾限 制了其在此类平台的部署工作,降低神经网络的应用价值。为了将深度神经网络 模型部署到资源受限的平台,网络模型需要被进一步压缩来实现保证性能的同时 降低模型复杂度、模型计算量和提升推理速度的目标。
剪枝一些冗余的网络参数是压缩卷积神经网络模型进而加快模型推理的一 种普遍方法。根据修改的粒度不同以及剪枝后的网络结构是否发生变化,剪枝可 以分为非结构化剪枝和结构化剪枝。非结构化剪枝的目标是神经元(通道)内部权 重参数矩阵。在剪枝过程中,通道中的权重会根据一些规则被删除进而减少模型 参数量。在论文Learning bothweights and connections for efficient neural network (Han S,Pool J,Tran J,etal.Learning both weights and connections for efficient neural network[C].Advances in neural information processing systems.2015: 1135-1143.)中Has等将权重大小小于阈值的权重视为冗余参数并剪除得到稀疏 通道。但稀疏通道无法被通用硬件直接加速,使得实际剪枝后的网络依赖特殊设 计的软硬件才能进行推理。结构化剪枝的目标是神经元(通道)。在保证性能稳定 和结构规整前提下,结构化剪枝通过减少每一层的通道数来减少模型参数量和加 速通用硬件上网络推理。专利(郭烈,高建东,赵剑,刘蓬勃,石振周.一种基于网络 层剪枝的深度学习网络模型压缩方法[P].辽宁省:CN111401523A,2020-07-10) 中,郭烈等提出一种以批规范化(Batch Normalization,BN)层Gamma参数大小 作为判别标准的通道剪枝方法,将Gamma参数小于阈值的通道删除。但该方法 采用BN层Gamma参数作为反映实际通道对结果影响大小的标准是欠妥的。这 两者并非完全一致。在论文基于层融合特征系数的动态网络结构化剪枝(卢海伟, 袁晓彤.基于层融合特征系数的动态网络结构化剪枝[J].模式识别与人工智 能,2019,32(11):1051-1059)中,卢海伟等人提出一种基于层融合特征系数的动态 网络结构化剪枝方法,同时考虑BN层参数和Dropout操作对特征图的影响,利 用多动态参数寻找并删除冗余通道,获取最优网络结构。但是该方法将卷积层 +BN层的结构转化为全连接层结构后,引入超参数来控制压缩率不能直接反映 实际压缩率,即无法在剪枝结束前预测最终的每秒浮点运算次数(Floating-point Operations Per second,FLOPs)压缩率。此外,被剪后的通道不再提取特征意味 着剪枝后的模型不可避免出现一定程度的性能下降。
发明内容
本发明克服现有技术的上述缺点,提出一种基于通道梯度剪枝的柔性深度学 习网络模型压缩方法。
本发明在剪枝过程中考虑剪除神经元对损失函数变化的影响,基于一阶泰勒 展开式将损失函数的变化值与参数大小和参数梯度相关联,得到仅依赖参数值和 参数梯度的通道重要性评估标准。为每个卷积核设置一个遮掩层(Mask layer)张 量,其值由所述的通道重要性评估标准确定,使得参数可选择地参与到网络计算 中。同时,柔性剪枝使得包含被剪枝参数的通道可以在可能的需要时被重新激活 从而重新学习提取特征。整个网络修剪更为可控,并且可以比较每次剪枝后保存 通道数对应的FLOPs和目标FLOPs差异,自动地更新需要被剪枝的通道个数。 本发明还提供了经剪枝后的紧凑模型导入到智能设备中通过应用APP实现物体 识别,包括实时物体识别功能和对照片中物体识别功能。
一种基于通道梯度剪枝的柔性深度学习网络模型压缩方法,具体步骤如下:
步骤1:获取待剪枝的深度卷积神经网络初始模型,这一过程具体实现是在 卷积层输出后添加额外的遮掩层,上一层卷积层的输出即当前卷积层的输入,输 入可以记为zl-1,则对于当前卷积层操作可以记为f(zl-1),初始化一个权重为1, 维度与f(zl-1)的结果一致的遮掩层张量mmask作为遮掩层的权重,然后在对应的 卷积层后添加上遮掩层,得到受遮掩层约束的输出:
zl=f(zl-1)×mmask (1.1) 掩码为1的通道的输出是原始输出,而掩码为0的通道的输出为0(该通道的输 出对结果无影响并且通道权重无法被更新),当原始深度卷积神经网络模型中所 有考虑剪枝的卷积层都添加完约束后,就得到了掩码数组Mmask和待剪枝的深度 卷积神经网络;
步骤2:训练网络模型,更新模型掩码信息,设定模型的压缩率s(既可以 指网络剩余通道数占全部通道数的百分比,也可以表示剩余FLOPs占原FLOPs 的百分比),在压缩率的限制下,使用训练集训练待剪枝深度卷积神经网络模型;
步骤2-1:训练过程中,计算全局通道重要性指标:依据模型表现越好,损 失函数越低这一先验知识,冗余的通道对于模型变化的影响是相对较小的,以损 失函数值的变化幅度来体现当前通道的重要性程度,其数学表示式为:
Figure BDA0002789162700000031
Figure BDA0002789162700000032
表示第l层第i个通道的重要性指标,L(x,y),
Figure BDA0002789162700000033
分别表示剪枝第l层第i个通道的输出前后的损失函数,x表示数据,y表示数据x对应的标签,
Figure BDA0002789162700000034
越 小说明该通道对损失函数影响越小,在求取剪去单个通道后的损失函数变化值时, 本发明采用泰勒一阶展开式来逼近实际的损失函数变化幅度,以减少搜索的计算 量,单个通道的重要性指标为:
Figure BDA0002789162700000035
Figure BDA0002789162700000036
指第l层第i个通道输出值,
Figure BDA0002789162700000037
则表示第l层第i个通道的输出值的回传梯度,具体实现时,回传梯度和输出值的获取通过在网络前向通道中插入Hook获取, 然后对回传梯度和输出值相乘得到积的绝对值做层归一化处理,得到最终的通道 重要性指标
Figure BDA0002789162700000038
步骤2-2:训练过程中,网络的权重参数W通过随机梯度下降更新,掩码数 组M则通过迭代阈值选择方法更新,生成阈值和调整掩码过程是将考虑剪枝的 通道按照通道的重要性指标从小到大排序,生成一张表,包括index,key和value, index为序列下标,key为通道坐标(l,i)((l,i)表示第l层第i个通道),value为 通道重要性指标
Figure BDA0002789162700000039
三者一一对应,统计通道总数n,则阈值为
TI=Is×n (1.4) 对重要性指标小于阈值的通道,按照表内对应关系将对应坐标的通道的掩码置0, 其余的通道掩码置1;
步骤2-3:在训练过程,柔性迭代更新掩码信息,对于第m轮训练,重置掩 码全部为1,整个网络在数据集上被训练,按照步骤2-2,步骤2-3更新掩码信 息并保存,对于第m+1轮训练,依据上一轮的掩码信息,屏蔽对应通道,残余 网络在数据集上被训练,对于第m+2轮训练,按照第m轮训练过程,整个网络 在数据集上被训练,此时第m+1轮被剪枝的通道恢复,重复上述迭代过程,直 到跑完所有训练轮数后停止训练,保存最后得到稀疏模型和掩码信息;
步骤3:步骤2-3得到的掩码信息是一张表,包括key和value,key为通道 坐标(l,i)((l,i)表示第l层第i个通道),value为掩码值0或1。统计每一层掩码 值为1的通道的个数,按照每一层剩余通道数量重新构造一个新的规模更小的网 络,将新网络的通道坐标按顺序对应掩码信息中的通道坐标,再把稀疏模型中仍 然处于激活态的权重参数按照坐标对应关系一一保存到新网络中,得到紧凑的深 度卷积神经网络模型;
步骤4:完成紧凑的深度卷积神经网络模型重训练,在原数据集上重新训练 剪枝后的紧凑深度卷积神经网络模型,超参数设置为每次迭代的批次数量选取为 128,一共迭代50~100个epoch,优化方法选择带0.90~0.99动量的随机梯度下 降,权重衰减为0.0001~0.001,初始学习速率设置为0.01~0.1,然后在loss不发生 显著变化的3个epoch后将学习率除以10。输出性能良好且模型参数量少的最 终网络模型。
本发明还将通过基于通道梯度剪枝的柔性深度学习网络模型压缩方法压缩 的紧凑神经网络模型应用到智能手机的物体识别APP中,实现视频形式的实时 物体识别和对单张图片内物体的识别。模型导入APP实现物体识别步骤如下:
步骤1.加载并调用模型,在电脑端将剪枝好的模型转换为torchScript格式并 保存为后缀.pt的模型文件,并将其放在安卓项目的assets文件夹下,同时,在 安卓端的Android Studio中导入Pytorch1.4依赖包,并通过Module.load函数导 入assets路径下的模型文件,本发明将通过Ptorch自带的Pytorch Mobile移动端 框架运行模型文件;
步骤2.需要调用摄像头加载图像,导入androidx.camera的依赖包CameraX。 请求打开手机的相机权限,若允许,则可以使用相机,调用相机的预览图像在 UI界面上显示,若不允许,则提示信息,其次打开摄像头,注册ConnectionCallback 和OnImageAvailableListener,设置camera获取图片的一些输出参数,包括图片 预览大小和摄像头方向等,然后,调用相机,每隔0.5s取一张摄像头所拍到的 最近队列的图片,将获取到的图像调整为宽224,高224的图像,输入到神经神 经网络中进行处理,调用子线程进行图像格式转换并且实现模型计算以及UI界 面的更新,最后,当预处理结束,相机设备会回调之前注册到的 OnImageAvailableListener;
步骤3.获取模型结果,首先,通过imageYUV420CenterCropToFloatBuffer 函数将YUV420形式的Image类型图像转化成维度为(1,3,224,224)的Tensor 输入,对于输入数据按照ImageNet数据集的标准预处理方法做预处理,转换好 的图像以Tensor形式输入模型进行前向计算,将神经网络的输出节点和输出值 拷贝出来,得到概率最大的分类类别,最后,保存单帧图片的推理时间,FPS, 平均推理时间,以及最高概率的输出类别,将结果通过安卓提供的textview组件 显示在屏幕上面,从而实现实时物体识别,此外本发明还添加了导入单张图片进 行图像分类的功能,将图像以位图的形式从相册导入,后续同实时物体识别。
本发明的优点:相比传统的基于L1或L2范数的剪枝方法,目标压缩率与 实际压缩率直接相关,剪枝结果可预测性更强,更加快速方便地得到最优结构。 相比传统方法下权重接近0的通道对网络预测结果实际仍存在影响,基于梯度评 估标准和遮掩层约束得到的需要被剪枝通道直接不参与训练从而不干扰预测结 果。这意味着更加精确地区分通道的重要性差别,提升剪枝精度。迭代更新阈值 使得掩码数组是动态变化的,这意味着允许算法对“错剪”,“漏剪”等异常进行 修复,而传统方法不存在这一机制。本发明将剪枝后的神经网络模型实际应用到 物体识别的智能手机APP中,进一步证明了本发明的应用价值。
附图说明
图1是本发明的方法示意流程图。
图2是给考虑被剪枝的卷积层添加遮掩层约束示意图
图3a~图3c是本发明的网络训练过程中根据通道重要性指标更新掩码信息 的示意图,其中图3a是在第k个训练epoch时,根据通道重要性指标修改部分 掩码信息(将Valuemask从1置0),图3b是在第k+1个训练epoch时,由于通道输 出屏蔽,部分通道不再更新,重要性指标发生变化,图3c是在第k+n个训练epoch 时,重激活被屏蔽通道(将Valuemask从0置1),进行新一轮的掩码更新。
图4a~图4b是本发明具体实施中对物品识别的结果,图4a是原始模型识别 结果,图4b是紧凑模型识别结果。
具体实施方式
为了能够更清楚地理解本发明的目的、特征和优点,下面结合附图和具体实 施方式进一步对本发明的技术方案做详细描述。
本发明是一种基于通道梯度剪枝的柔性深度学习网络模型压缩方法,具体过 程如下:
步骤1:获取待剪枝的深度卷积神经网络模型
步骤1-1:对原始的深度卷积神经网络中需要考虑剪枝的卷积层添加遮掩层 约束。将从网络上获得预训练权重参数导入到已添加约束的原始深度卷积神经网 络,形成待剪枝的深度卷积神经网络模型。其中遮掩层的通道数对应考虑剪枝的 卷积层通道数,也对应掩码长度。掩码则表征对应通道的重要性。
具体地,如图2所示,考虑剪去ResNet的Bottleneck结构中第一层卷积层 和第二层卷积层,那么只需要在这两层后添加遮掩层。为了保证旁路连接的特征 图数量与第三层卷积层的输出特征图数量是相同的,第三层卷积层不被纳入考虑 被剪枝的网络层的范围。
步骤1-2:初始化遮掩张量mmask。假设考虑剪枝的层数量为N,遮掩张量 是一个同上一个卷积层在维度上一致的张量
Figure BDA0002789162700000061
其第一维的值取0或1。约 束输出的过程的数学表达式为
Figure BDA0002789162700000062
其中zl表示第l层输出,f(zl-1)表示第l层的卷积操作,第n层遮掩层的第i通道 对应第l层卷积层的第i通道。掩码为1的通道的输出是上个卷积层对应通道的输 出,而掩码为0的通道的输出为0。更新编码后,当前网络结构输出的特征图数 量发生变化。减少的部分,可以理解为该通道子集对预测结果贡献非常低甚至是 没有贡献,是冗余的。
步骤2:训练网络模型,更新模型掩码信息
步骤2-1:依据模型表现越好,损失函数越低这一先验知识,直觉上,冗余 的通道对于模型变化的影响是相对较小的。因此,如果以损失函数值的变化幅度 来体现当前通道的重要性程度,其数学表示式为:
Figure BDA0002789162700000071
Figure BDA0002789162700000072
表示第l层第i个通道的重要性指标,L(x,y),
Figure BDA0002789162700000073
分别表示剪枝第l层第i个通道的输出前后的损失函数,x表示数据,y表示数据x对应的标签。在求 取剪去单个通道后的损失函数变化值时,本发明采用泰勒一阶展开式来逼近实际 的损失函数变化幅度,以较少搜索需要被剪枝的通道的计算量。具体而言,损失 函数L(x,y)在
Figure BDA0002789162700000074
处泰勒展开,有:
Figure BDA0002789162700000075
其中
Figure BDA0002789162700000076
为泰勒展开式中的高阶项,结合式(2.2)和(2.3),以对回传梯度和 输出值相乘得到积的绝对值作为通道重要性指标,指标反映了参数对预测结果贡 献度指标,指标的数学表达式如下,
Figure BDA0002789162700000077
Figure BDA0002789162700000078
指第l层第i个通道输出值,
Figure BDA0002789162700000079
则表示第l层第i个通道的输出值的回传梯度,具体实现时,回传梯度和输出值的获取通过在网络前向通道中插入Hook获取, 考虑网络深度对通道梯度和通道参数的影响,引入归一化来消除深度影响,
Figure BDA00027891627000000710
Figure BDA00027891627000000711
表示归一化后的第l层第i个通道的重要性指标,第l层所有通道的
Figure BDA00027891627000000712
和为1。
步骤2-2:根据各个通道的重要性指标对各个卷积核做贡献度排序,依照压 缩率计算得到阈值,重要性值低于阈值的通道的对应掩码置0,同时通道输出将 被遮掩层屏蔽,如图3a所示,在第k个epoch结束时,遮掩层屏蔽对预测贡献 度低的通道,得到掩码数组以及结构稀疏的网络模型。
步骤2-3:如图3b所示,在第k+1至第k+n-1个epoch过程中,网络模型按 照冗余通道屏蔽后的网络结构在数据集上被训练。如图3c所示,在第k+n个epoch 时,遮掩层权重的第一维全部置1,此时所有被屏蔽通道被激活,通道参数被更 新。按照步骤2-2,迭代更新阈值,实现动态更新掩码数组以及结构稀疏的网络 模型。
步骤2-4:在步骤2-3结束时,会依照掩码信息预测剪枝模型的压缩程度是 否达到预期目标,如剩余计算量FLOPs,通道剩余数量。若是,结束步骤2;否 则调整压缩率,迭代步骤2-2,2-3。
步骤3:根据掩码信息,完成模型剪枝
依次判断掩码数组M中的各个掩码是否为0,根据掩码的层名重新组织掩 码数组得到一张掩码信息表,包括key和value,key为通道坐标(表示第层 第个通道),value为掩码值0或1。统计每一层掩码值为1的通道的个数,按 照每一层剩余通道数量重新构造一个新的规模更小的网络,将新网络的通道坐标 按顺序对应掩码信息中的通道坐标,再把稀疏模型中仍然处于激活态的权重参数 按照坐标对应关系一一保存到新网络中,得到紧凑的深度卷积神经网络模型。
步骤4:完成紧凑的深度卷积神经网络模型重训练
步骤4-1:在保留下来的网络权重参数和紧凑的深度卷积神经网络模型的基 础上,使用数据集重新训练网络模型。重训练与预训练的过程一致,但需要根据 紧凑的深度卷积神经网络模型调整超参数,使得模型收敛至最优解,即获得最终 的网络模型。
步骤4-2:实施条件与结果评估:在本发明实施例中,代码实现和深度学习 框架分别是Python和PyTorch。数据集为ImageNet-1k,其中包含128万张训练 图像和5万张验证图像,共1000类。图片的每个通道都经过归一化操作,在数 据增强中,将图片补零,做随机翻转,随机裁剪后得到长宽为224的图像块,在 训练过程中,每次迭代的批次数量选取为128,一共迭代100个epoch,优化方 法选择带0.90动量的随机梯度下降,权重衰减为0.0001,初始学习速率设置为0.01, 然后在loss不发生显著变化的3个epoch后将学习率除以10。
卷积神经网络模型剪枝的评价指标一般采用原网络在测试集上的精度,以反 映模型在剪枝前后性能表现的变化情况。同时,模型的FLOPs反映模型剪枝和 加速效果。
本发明实例与现有方法在ResNet-50模型和ImageNet-1k数据集上的效果对 比结果如表1所示,其中除原始模型外,所有方法的裁剪目标均设为剪掉50% 的通道数。
表1.各方法在ImageNet-1k数据集上压缩ResNet-50模型的结果
Figure BDA0002789162700000091
步骤5:如图4所示,紧凑的深度卷积神经网络能够被应用到智能手机上, 能够有效完成对照片内物体识别和实时物体识别等任务。实现视频形式的实时物 体识别和对单张图片内物体的识别。模型导入APP实现物体识别步骤如下:
步骤5-1.加载并调用模型,在电脑端将剪枝好的模型转换为torchScript格式 并保存为后缀.pt的模型文件,并将其放在安卓项目的assets文件夹下,同时, 在安卓端的Android Studio中导入Pytorch1.4依赖包,并通过Module.load函数 导入assets路径下的模型文件,本发明将通过Ptorch自带的Pytorch Mobile移动 端框架运行模型文件;
步骤5-2.需要调用摄像头加载图像,导入androidx.camera的依赖包CameraX。 请求打开手机的相机权限,若允许,则可以使用相机,调用相机的预览图像在 UI界面上显示,若不允许,则提示信息,其次打开摄像头,注册ConnectionCallback 和OnImageAvailableListener,设置camera获取图片的一些输出参数,包括图片 预览大小和摄像头方向等,然后,调用相机,每隔0.5s取一张摄像头所拍到的 最近队列的图片,将获取到的图像调整为宽224,高224的图像,输入到神经神 经网络中进行处理,调用子线程进行图像格式转换并且实现模型计算以及UI界 面的更新,最后,当预处理结束,相机设备会回调之前注册到的 OnImageAvailableListener;
步骤5-3.获取模型结果,首先,通过imageYUV420CenterCropToFloatBuffer 函数将YUV420形式的Image类型图像转化成维度为(1,3,224,224)的Tensor 输入,对于输入数据按照ImageNet数据集的标准预处理方法做预处理,转换好 的图像以Tensor形式输入模型进行前向计算,将神经网络的输出节点和输出值 拷贝出来,得到概率最大的分类类别,最后,保存单帧图片的推理时间,FPS, 平均推理时间,以及最高概率的输出类别,将结果通过安卓提供的textview组件 显示在屏幕上面,从而实现实时物体识别。实践证明本发明能保证网络性能的同 时大大减小网络模型的大小,并加速网络模型的运行,具备实际应用价值。
本发明还提供了基于通道梯度剪枝的柔性深度学习网络模型压缩方法在实 际物体识别APP上的应用效果,剪枝后模型对物体的识别速度大幅提升。通过 本发明中的技术方案,实现在保证维持原有网络精度的前提下,对现有主要深度 卷积神经网络模型进行有效压缩,解决了深度神经网络模型因高存储空间占用, 高内存占用,高计算资源占用导致无法部署到嵌入式、智能手机等设备上的技术 问题,拓展了深度神经网络的应用范围。
本说明书实施例所述的内容仅仅是对发明构思实现形式的例举,本发明的保 护范围不应当被视为仅限于实施例所陈述的具体形式,本发明的保护范围也及于 本领域技术人员根据本发明构思所能够想到的等同技术手段。

Claims (1)

1.一种基于通道梯度剪枝的柔性深度学习网络模型压缩方法,具体步骤如下:
步骤1:获取待剪枝的深度卷积神经网络初始模型,这一过程具体实现是在卷积层输出后添加额外的遮掩层,上一层卷积层的输出即当前卷积层的输入,输入可以记为zl-1,则对于当前卷积层操作可以记为f(zl-1),初始化一个权重为1,维度与f(zl-1)的结果一致的遮掩层张量mmask作为遮掩层的权重,然后在对应的卷积层后添加上遮掩层,得到受遮掩层约束的输出:
zl=f(zl-1)×mmask (1)
掩码为1的通道的输出是原始输出,而掩码为0的通道的输出为0(该通道的输出对结果无影响并且通道权重无法被更新),当原始深度卷积神经网络模型中所有考虑剪枝的卷积层都添加完约束后,就得到了掩码数组Mmask和待剪枝的深度卷积神经网络;
步骤2:训练网络模型,更新模型掩码信息,设定模型的压缩率s(既可以指网络剩余通道数占全部通道数的百分比,也可以表示剩余FLOPs占原FLOPs的百分比),在压缩率的限制下,使用训练集训练待剪枝深度卷积神经网络模型;
步骤2-1:训练过程中,计算全局通道重要性指标:依据模型表现越好,损失函数越低这一先验知识,冗余的通道对于模型变化的影响是相对较小的,,以损失函数值的变化幅度来体现当前通道的重要性程度,其数学表示式为:
Figure FDA0002789162690000011
Figure FDA0002789162690000012
表示第l层第i个通道的重要性指标,L(x,y),
Figure FDA0002789162690000013
分别表示剪枝第l层第i个通道的输出前后的损失函数,x表示数据,y表示数据x对应的标签,
Figure FDA0002789162690000014
越小说明该通道对损失函数影响越小,在求取剪去单个通道后的损失函数变化值时,本发明采用泰勒一阶展开式来逼近实际的损失函数变化幅度,以减少搜索的计算量,单个通道的重要性指标为:
Figure FDA0002789162690000015
Figure FDA0002789162690000016
指第l层第i个通道输出值,
Figure FDA0002789162690000017
则表示第l层第i个通道的输出值的回传梯度,具体实现时,回传梯度和输出值的获取通过在网络前向通道中插入Hook获取,然后对回传梯度和输出值相乘得到积的绝对值做层归一化处理,得到最终的通道重要性指标
Figure FDA0002789162690000021
步骤2-2:训练过程中,网络的权重参数W通过随机梯度下降更新,掩码数组M则通过迭代阈值选择方法更新,生成阈值和调整掩码过程是将考虑剪枝的通道按照通道的重要性指标从小到大排序,生成一张表,包括index,key和value,index为序列下标,key为通道坐标(l,i)((l,i)表示第l层第i个通道),value为通道重要性指标
Figure FDA0002789162690000022
三者一一对应,统计通道总数n,则阈值为
TI=Is×n (4)
对重要性指标小于阈值的通道,按照表内对应关系将对应坐标的通道的掩码置0,其余的通道掩码置1;
步骤2-3:在训练过程,柔性迭代更新掩码信息,对于第m轮训练,重置掩码全部为1,整个网络在数据集上被训练,按照步骤2-2,步骤2-3更新掩码信息并保存,对于第m+1轮训练,依据上一轮的掩码信息,屏蔽对应通道,残余网络在数据集上被训练,对于第m+2轮训练,按照第m轮训练过程,整个网络在数据集上被训练,此时第m+1轮被剪枝的通道恢复,重复上述迭代过程,直到跑完所有训练轮数后停止训练,保存最后得到稀疏模型和掩码信息;
步骤3:步骤2-3得到的掩码信息是一张表,包括key和value,key为通道坐标(l,i)((l,i)表示第l层第i个通道),value为掩码值0或1。统计每一层掩码值为1的通道的个数,按照每一层剩余通道数量重新构造一个新的规模更小的网络,将新网络的通道坐标按顺序对应掩码信息中的通道坐标,再把稀疏模型中仍然处于激活态的权重参数按照坐标对应关系一一保存到新网络中,得到紧凑的深度卷积神经网络模型;
步骤4:完成紧凑的深度卷积神经网络模型重训练,在原数据集上重新训练剪枝后的紧凑深度卷积神经网络模型,超参数设置为每次迭代的批次数量选取为128,一共迭代50~100个epoch,优化方法选择带0.90~0.99动量的随机梯度下降,权重衰减为0.0001~0.001,初始学习速率设置为0.01~0.1,然后在loss不发生显著变化的3个epoch后将学习率除以10。输出性能良好且模型参数量少的最终网络模型。
CN202011308919.9A 2020-11-20 2020-11-20 一种基于通道梯度剪枝的柔性深度学习网络模型压缩方法 Pending CN112396179A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011308919.9A CN112396179A (zh) 2020-11-20 2020-11-20 一种基于通道梯度剪枝的柔性深度学习网络模型压缩方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011308919.9A CN112396179A (zh) 2020-11-20 2020-11-20 一种基于通道梯度剪枝的柔性深度学习网络模型压缩方法

Publications (1)

Publication Number Publication Date
CN112396179A true CN112396179A (zh) 2021-02-23

Family

ID=74606879

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011308919.9A Pending CN112396179A (zh) 2020-11-20 2020-11-20 一种基于通道梯度剪枝的柔性深度学习网络模型压缩方法

Country Status (1)

Country Link
CN (1) CN112396179A (zh)

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112884149A (zh) * 2021-03-19 2021-06-01 华南理工大学 一种基于随机敏感度st-sm的深度神经网络剪枝方法及系统
CN113033804A (zh) * 2021-03-29 2021-06-25 北京理工大学重庆创新中心 一种面向遥感图像的卷积神经网络压缩方法
CN113077044A (zh) * 2021-03-18 2021-07-06 北京工业大学 一种通用的卷积神经网络无损压缩与加速方法
CN113469951A (zh) * 2021-06-08 2021-10-01 燕山大学 一种基于级联区域卷积神经网络的轮毂缺陷检测方法
CN113516163A (zh) * 2021-04-26 2021-10-19 合肥市正茂科技有限公司 基于网络剪枝的车辆分类模型压缩方法、装置及存储介质
CN113537490A (zh) * 2021-07-13 2021-10-22 广州虎牙科技有限公司 一种神经网络裁剪方法及电子设备
CN113554169A (zh) * 2021-07-28 2021-10-26 杭州海康威视数字技术股份有限公司 模型优化方法、装置、电子设备及可读存储介质
CN113610215A (zh) * 2021-07-09 2021-11-05 北京达佳互联信息技术有限公司 任务处理网络生成、任务处理方法、装置、电子设备及存储介质
CN113837377A (zh) * 2021-08-30 2021-12-24 厦门大学 基于类别掩码的神经网络剪枝方法
CN113947185A (zh) * 2021-09-30 2022-01-18 北京达佳互联信息技术有限公司 任务处理网络生成、任务处理方法、装置、电子设备及存储介质
CN114429197A (zh) * 2022-01-25 2022-05-03 西安交通大学 一种神经网络架构搜索方法、系统、设备及可读存储介质
CN114821717A (zh) * 2022-04-20 2022-07-29 北京百度网讯科技有限公司 目标对象融合方法、装置、电子设备及存储介质
CN115063673A (zh) * 2022-07-29 2022-09-16 阿里巴巴(中国)有限公司 模型压缩方法、图像处理方法、装置和云设备
CN115169556A (zh) * 2022-07-25 2022-10-11 美的集团(上海)有限公司 模型剪枝方法及装置
WO2023279975A1 (zh) * 2021-07-06 2023-01-12 华为技术有限公司 一种模型处理方法、联邦学习方法及相关设备
WO2023019899A1 (zh) * 2021-08-20 2023-02-23 中国科学院计算技术研究所 神经网络实时剪枝方法、系统及神经网络加速器
WO2023098544A1 (zh) * 2021-12-03 2023-06-08 中科视语(北京)科技有限公司 基于局部稀疏约束的结构化剪枝方法和装置
CN116306884A (zh) * 2023-03-03 2023-06-23 北京泰尔英福科技有限公司 联邦学习模型剪枝方法、装置及非易失性存储介质
WO2023134086A1 (zh) * 2022-01-11 2023-07-20 平安科技(深圳)有限公司 卷积神经网络模型剪枝方法和装置、电子设备、存储介质
CN116562655A (zh) * 2023-07-05 2023-08-08 北京理工大学 一种流程柔性稀疏结构设计方法、设备及存储介质
CN116776159A (zh) * 2023-08-23 2023-09-19 苏州浪潮智能科技有限公司 心电图标注方法、装置、设备和介质
WO2023185209A1 (zh) * 2022-03-31 2023-10-05 支付宝(杭州)信息技术有限公司 模型剪枝
CN112949840B (zh) * 2021-04-20 2024-02-02 中国人民解放军国防科技大学 通道注意力引导的卷积神经网络动态通道剪枝方法和装置

Cited By (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113077044A (zh) * 2021-03-18 2021-07-06 北京工业大学 一种通用的卷积神经网络无损压缩与加速方法
CN112884149B (zh) * 2021-03-19 2024-03-22 华南理工大学 一种基于随机敏感度st-sm的深度神经网络剪枝方法及系统
CN112884149A (zh) * 2021-03-19 2021-06-01 华南理工大学 一种基于随机敏感度st-sm的深度神经网络剪枝方法及系统
CN113033804A (zh) * 2021-03-29 2021-06-25 北京理工大学重庆创新中心 一种面向遥感图像的卷积神经网络压缩方法
CN113033804B (zh) * 2021-03-29 2022-07-01 北京理工大学重庆创新中心 一种面向遥感图像的卷积神经网络压缩方法
CN112949840B (zh) * 2021-04-20 2024-02-02 中国人民解放军国防科技大学 通道注意力引导的卷积神经网络动态通道剪枝方法和装置
CN113516163A (zh) * 2021-04-26 2021-10-19 合肥市正茂科技有限公司 基于网络剪枝的车辆分类模型压缩方法、装置及存储介质
CN113516163B (zh) * 2021-04-26 2024-03-12 合肥市正茂科技有限公司 基于网络剪枝的车辆分类模型压缩方法、装置及存储介质
CN113469951A (zh) * 2021-06-08 2021-10-01 燕山大学 一种基于级联区域卷积神经网络的轮毂缺陷检测方法
WO2023279975A1 (zh) * 2021-07-06 2023-01-12 华为技术有限公司 一种模型处理方法、联邦学习方法及相关设备
CN113610215A (zh) * 2021-07-09 2021-11-05 北京达佳互联信息技术有限公司 任务处理网络生成、任务处理方法、装置、电子设备及存储介质
CN113610215B (zh) * 2021-07-09 2022-09-09 北京达佳互联信息技术有限公司 任务处理网络生成、任务处理方法、装置及电子设备
CN113537490A (zh) * 2021-07-13 2021-10-22 广州虎牙科技有限公司 一种神经网络裁剪方法及电子设备
CN113554169A (zh) * 2021-07-28 2021-10-26 杭州海康威视数字技术股份有限公司 模型优化方法、装置、电子设备及可读存储介质
CN113554169B (zh) * 2021-07-28 2023-10-27 杭州海康威视数字技术股份有限公司 模型优化方法、装置、电子设备及可读存储介质
WO2023019899A1 (zh) * 2021-08-20 2023-02-23 中国科学院计算技术研究所 神经网络实时剪枝方法、系统及神经网络加速器
CN113837377A (zh) * 2021-08-30 2021-12-24 厦门大学 基于类别掩码的神经网络剪枝方法
CN113947185B (zh) * 2021-09-30 2022-11-18 北京达佳互联信息技术有限公司 任务处理网络生成、任务处理方法、装置、电子设备及存储介质
CN113947185A (zh) * 2021-09-30 2022-01-18 北京达佳互联信息技术有限公司 任务处理网络生成、任务处理方法、装置、电子设备及存储介质
WO2023098544A1 (zh) * 2021-12-03 2023-06-08 中科视语(北京)科技有限公司 基于局部稀疏约束的结构化剪枝方法和装置
WO2023134086A1 (zh) * 2022-01-11 2023-07-20 平安科技(深圳)有限公司 卷积神经网络模型剪枝方法和装置、电子设备、存储介质
CN114429197A (zh) * 2022-01-25 2022-05-03 西安交通大学 一种神经网络架构搜索方法、系统、设备及可读存储介质
WO2023185209A1 (zh) * 2022-03-31 2023-10-05 支付宝(杭州)信息技术有限公司 模型剪枝
CN114821717B (zh) * 2022-04-20 2024-03-12 北京百度网讯科技有限公司 目标对象融合方法、装置、电子设备及存储介质
CN114821717A (zh) * 2022-04-20 2022-07-29 北京百度网讯科技有限公司 目标对象融合方法、装置、电子设备及存储介质
CN115169556B (zh) * 2022-07-25 2023-08-04 美的集团(上海)有限公司 模型剪枝方法及装置
CN115169556A (zh) * 2022-07-25 2022-10-11 美的集团(上海)有限公司 模型剪枝方法及装置
CN115063673A (zh) * 2022-07-29 2022-09-16 阿里巴巴(中国)有限公司 模型压缩方法、图像处理方法、装置和云设备
CN116306884B (zh) * 2023-03-03 2024-02-06 北京泰尔英福科技有限公司 联邦学习模型剪枝方法、装置及非易失性存储介质
CN116306884A (zh) * 2023-03-03 2023-06-23 北京泰尔英福科技有限公司 联邦学习模型剪枝方法、装置及非易失性存储介质
CN116562655B (zh) * 2023-07-05 2023-09-15 北京理工大学 一种流程柔性稀疏结构设计方法、设备及存储介质
CN116562655A (zh) * 2023-07-05 2023-08-08 北京理工大学 一种流程柔性稀疏结构设计方法、设备及存储介质
CN116776159A (zh) * 2023-08-23 2023-09-19 苏州浪潮智能科技有限公司 心电图标注方法、装置、设备和介质
CN116776159B (zh) * 2023-08-23 2024-02-09 苏州浪潮智能科技有限公司 心电图标注方法、装置、设备和介质

Similar Documents

Publication Publication Date Title
CN112396179A (zh) 一种基于通道梯度剪枝的柔性深度学习网络模型压缩方法
CN112749626B (zh) 一种面向dsp平台的快速人脸检测与识别方法
CN113705775A (zh) 一种神经网络的剪枝方法、装置、设备及存储介质
CN112116001A (zh) 图像识别方法、装置及计算机可读存储介质
US20230230198A1 (en) Utilizing a generative neural network to interactively create and modify digital images based on natural language feedback
CN111369430A (zh) 基于移动深度学习引擎的移动端人像智能背景替换方法
CN115222042A (zh) 一种结构化剪枝的方法以及系统
CN114429208A (zh) 基于残差结构剪枝的模型压缩方法、装置、设备及介质
KR20210111677A (ko) 뉴럴 네트워크의 클리핑 방법, 뉴럴 네트워크의 컨벌루션 계산 방법 및 그 방법을 수행하기 위한 전자 장치
CN114155388B (zh) 一种图像识别方法、装置、计算机设备和存储介质
CN115495579A (zh) 5g通信助理文本分类的方法、装置、电子设备及存储介质
CN115115835A (zh) 图像的语义分割方法、装置、设备、存储介质及程序产品
WO2022104271A1 (en) Automatic early-exiting machine learning models
CN114819140A (zh) 模型剪枝方法、装置和计算机设备
CN115131646A (zh) 基于离散系数的深度网络模型压缩方法
CN117396892A (zh) 一种硬件感知神经网络设计
CN111368976B (zh) 基于神经网络特征识别的数据压缩方法
US11983240B2 (en) Meta few-shot class incremental learning
US20230153380A1 (en) Meta few-shot class incremental learning
EP3767548A1 (en) Delivery of compressed neural networks
CN113033212B (zh) 文本数据处理方法及装置
Endrawati et al. Weight-Based Convolutional Neural Network with Sparse Optimization
CN113570045A (zh) 模型压缩方法以及模型压缩系统
Zhan et al. Deep Model Compression via Deep Reinforcement Learning
CN116129178A (zh) 一种应用于终端设备的轻量化图像分类方法及终端设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination