CN110298446A - 面向嵌入式系统的深度神经网络压缩和加速方法及系统 - Google Patents
面向嵌入式系统的深度神经网络压缩和加速方法及系统 Download PDFInfo
- Publication number
- CN110298446A CN110298446A CN201910578644.1A CN201910578644A CN110298446A CN 110298446 A CN110298446 A CN 110298446A CN 201910578644 A CN201910578644 A CN 201910578644A CN 110298446 A CN110298446 A CN 110298446A
- Authority
- CN
- China
- Prior art keywords
- neural network
- layer
- model
- filter
- compressed
- 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.)
- Granted
Links
- 230000006835 compression Effects 0.000 title claims abstract description 56
- 238000007906 compression Methods 0.000 title claims abstract description 56
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 39
- 238000003062 neural network model Methods 0.000 claims abstract description 30
- 210000004205 output neuron Anatomy 0.000 claims abstract description 25
- 239000013598 vector Substances 0.000 claims description 32
- 230000001133 acceleration Effects 0.000 claims description 26
- 238000011156 evaluation Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 6
- 210000002364 input neuron Anatomy 0.000 claims description 5
- 238000010586 diagram Methods 0.000 claims description 3
- 230000008707 rearrangement Effects 0.000 claims 1
- 238000012549 training Methods 0.000 description 8
- 238000013461 design Methods 0.000 description 6
- 238000013459 approach Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000003064 k means clustering Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 235000003642 hunger Nutrition 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000037351 starvation Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/061—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using biological neurons, e.g. biological neurons connected to an integrated circuit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种面向嵌入式系统的深度神经网络压缩方法及系统,所述方法包括:获取待压缩的原始神经网络模型;对所述神经网络模型中各层的过滤器/输出神经元进行重要性评估;基于重要性评估结果,对所述神经网络模型中各层的过滤器/输出神经元采用聚类方法进行分组;根据预设的每层的压缩率,采用聚类中心确定弱连接并进行裁剪,得到压缩后的模型;将压缩后的模型通过局部和全局微调恢复它的识别性能;将所述压缩后的模型部署到嵌入式系统中,采用本发明的压缩方法,一方面降低网络的存储空间和加速网络的推断,另一方面保持网络的识别精度。
Description
技术领域
本发明涉及一种模型压缩和加速技术领域,具体涉及一种面向嵌入式系统的深度神经网络压缩和加速方法及系统。
背景技术
近来,深度神经网络本质上在各种计算机视觉任务中都取得了巨大的进步,例如图像分类、目标识别和语义分割等。深度逐渐增加的设计很大意义上提高了深度神经网络的识别性能,这需要依赖于大量的参数和繁重的计算。然而,对于大部分嵌入式系统和移动平台来说,由于有限的资源限制,他们几乎不能承担那样的资源需求。这就严重阻碍了深度神经网络的扩展应用。大量的证据已经证实深度神经网络是参数冗余的,能够被压缩并且精度损失很小,甚至没有损失精度。为了解决这个问题,大量的方法被提出压缩和加速深度神经网络,包括裁剪方法、量化方法、低秩分解以及紧致型网络的设计等。
既然组卷积存在一种有效紧致的结构特点,使得它尤其适合于移动和嵌入式应用用来压缩和加速深度神经网络,并且也受到了越来越多的关注。与正常卷积不同,组卷积把输入通道划分为多个不相交的过滤器组,因此卷积独立地在每个组中执行,以此减少参数数目和计算代价。尽管组卷积被首次用在AlexNet用于解决GPU存储不足的情况,但是它在ImageNet图像分类中取得了非凡的成绩。跟随这一思路,ResNetXt结合堆叠策略和多分枝组卷积结构构建了有效的框架,收获了比ResNet更好的识别性能。T.Zhang等人提出了一种新颖的模块化神经网络,它由交错的组卷积(Interleaved Group Convolution,IGC)模块构成,每个模块由主组卷积和辅组卷积组成。为了提高表达能力,IGC规律地交错主组卷积的输出通道,并把它们作为辅组卷积的输入通道。类似地,ShuffleNet也引入了一个有效的结构,在这个结构中采用了两个操作:点组卷积(point-wise group convolution)和通道洗牌(channel shuffle)用以减少计算复杂度,同时保持相当的识别率。基于类似的思路,H.Gao等人使用通道卷积(channel-wise convolution)为前面独立的组的输出特征图执行信息融合。这些方法交换了每个组的输出通道并且把它们推送至随后卷积层的所有组中,以至于不同组中的特征图通过预先的设计相互交互。最近,G.Huang等人提出了一个新颖的学习的组卷积(learned group convolution)来构建紧致型网络结构,称为CondenseNet。CondenseNet不同于上面提出的方法,它的每一个输入通道通过学习而不是预定义地包含入一个过滤器组,并且这个方法展现了比MobileNet和ShuffleNet更为有效的计算效率。
上面的这些方法目的在于为每个组谨慎选择输入通道来提高深度神经网络的性能,那样预定义地硬性划分过滤器到多个独立的组无助于探索网络的推断能力。首先,由于预定义的分组设计,初始化的过滤器分组是数据独立的。其次,由于这些方法设计单一,每个组中有同样数目的过滤器和输入通道,这非常不利于发挥它的表达潜力。我们认为过滤器分组不应该是单一的,而应该是多样化的,以至于多样化的组卷积结构更大程度上开发深度神经网络的表达潜力。
再者,尽管现在深度神经网络已经达到了最高水准的性能,但是由于嵌入式系统或者移动平台的有限的存储和计算资源的限制,以及深度神经网络的庞大的参数对存储的需求和大量卷积对运算的要求,这些神经网络模型无法直接部署在嵌入式系统和移动平台中。
发明内容
本发明的目的就是为了解决在嵌入式系统或者移动设备上,由于其有限的运算处理能力和内存资源,无法实现目前流行的深度学习模型的部署问题,本发明提供了一种面向嵌入式系统的自分组卷积深度神经网络压缩和加速方法及系统,通过基于重要性向量聚类的分组方法和基于聚类中心的裁剪方法来实现,一方面降低网络的存储空间和加速网络的推断,另一方面保持网络的识别精度。
为实现上述目的,本发明一个或多个实施例提供了如下技术方案:
一种面向嵌入式系统的深度神经网络压缩和加速方法,包括:
获取待压缩的原始神经网络模型;
对所述神经网络模型中各层的过滤器/输出神经元的每个输入通道进行重要性评估,获得每个过滤器的重要性向量;
基于重要性评估结果,对所述神经网络模型中各层的过滤器/输出神经元采用聚类方法进行分组;
根据预设的每层的压缩率,采用聚类中心确定弱连接并进行裁剪,得到压缩后的模型;
将压缩后的模型通过局部和全局微调恢复识别性能;
将所述压缩后的模型部署到嵌入式系统中。
一个或多个实施例提供了一种面向嵌入式系统的深度神经网络压缩和加速系统,包括:
待压缩模型获取模块,获取待压缩的原始神经网络模型;
自分组模块,对所述神经网络模型中各层的过滤器/输出神经元的每个输入通道进行重要性评估,获得每个过滤器的重要性向量;基于重要性评估结果,对所述神经网络模型中各层的过滤器/输出神经元采用聚类方法进行分组;
模型裁剪模块,根据预设的每层的压缩率,采用聚类中心确定弱连接并进行裁剪,得到压缩后的模型;
模型微调模块,将压缩后的模型通过局部和全局微调恢复识别性能;
模型嵌入模块,将所述压缩后的模型部署到嵌入式系统中。
一个或多个实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述的面向嵌入式系统的深度神经网络压缩和加速方法。
一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现所述的面向嵌入式系统的深度神经网络压缩和加速方法。
上述一个或多个技术方案具有以下有益效果:
本发明通过基于重要性向量的聚类方法和基于聚类中心的网络裁剪方法自动地将传统卷积转化为具有数据依赖和多样化结构的组卷积,实现深度神经网络的压缩与加速,能够满足在有限资源的设备上的部署条件;
本发明采用局部和全局相结合的方式微调裁剪过的网络,采用较少的训练即可加强网络剩余部分的表达能力,提高了压缩效率。
附图说明
构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。
图1为本发明一个或多个实施例中面向嵌入式系统的深度神经网络压缩和加速方法的流程图。
图2(a)为本发明一个或多个实施例中输入的预训练的模型;
图2(b)为本发明一个或多个实施例中基于重要性向量聚类过滤器分组;
图2(c)为本发明一个或多个实施例中通过基于中心的裁剪方案获得稀疏结构;
图2(d)为本发明一个或多个实施例中转换稀疏的卷积为多样化结构的组卷积。
具体实施方式
应该指出,以下详细说明都是示例性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
实施例一
本实施例公开了一种面向嵌入式系统的深度神经网络压缩和加速方法,包括以下步骤:
步骤1:获取待压缩的原始神经网络模型;
所述原始神经网络是预先训练好的深度网络模型。
给定一个L层深度卷积神经网络,我们用表示第l个卷积层的权重,其中Cout和Cin分别为输入通道和输出通道的数目,k是卷积核的大小。是一个输入张量,它是通过k×k的滑动窗口从层输入中获得的。这里,W和X可以分别被视为形如Cout×k·k·Cin的矩阵和k·k·Cin的向量,于是我们可以得到卷积的如下表示:
Y=WX (I)
其中,是相应的输出向量。Wij对应第j个输入通道和第i个输出通道之间的卷积核向量。为了简化,公式中省略了偏置项。在本文中,如没有特殊说明,所有符号均是指第l层相关参数符号。
然而,受限的空间操作制约了组卷积的表达能力,因此我们设法构建一个多样化的组卷积来放宽它的空间约束。下面我们详细介绍自分组卷积方法。
步骤2:为模型中的各层设置压缩率,得到压缩率集合S=[Si,S2,...,SL]。
第3步:根据公式(5)和(6),评估网络中各层的过滤器的每个输入通道的重要性,获得它们的重要性向量。
对于一个训练好的深度神经网络,如图2(a)所示,它的参数已被训练使得它达到局部或者全局最优。而且,由于训练神经网络有效激活重要的参数,同时抑制不重要的参数,因此这些参数的分布表示了它们的重要性知识。通常,低值参数趋向于产生弱的特征图,表示对神经网络贡献较小。然而,相反,高值参数倾向于更有意义的贡献。除此之外,考虑到组卷积与多个过滤器和输入通道紧密相关,我们引入一个新颖的概念,称为重要性向量,来评估一个过滤器的每个输入通道的重要性。
我们定义第i个过滤器的重要性向量为其中Vij表示第j个输入通道对第i个过滤器的重要性值。Vi的维度等于它相应输入通道的数目。我们用Wij的l1范数来评估第j个输入通道对第i个过滤器的重要性,如下所示:
Vij=||Wij||1 (5)
同样,对于全连接层,Vj f表示第i个输出神经元的重要性向量,那么第j个输入神经元对第i个输出神经元的重要性被评估如下:
作为一个向量,这个概念激发我们探索输入通道之间的关系和过滤器之间的关系。不同于之前的方法,它们把这些参数的重要性作为标量,而我们的方法视它们为向量,强调一个过滤器的输入通道的重要性分布。
第4步:基于第3步中计算的重要性向量,根据公式(7)和(8),通过聚类完成对过滤器的分组,获得每个层中过滤器分组结果G=[G1,G2,...,Gg]。
在这部分,我们给出如何通过基于相似的重要性向量的聚类方法对过滤器进行自动分组。对于一个卷积层,我们使用欧氏距离量化重要性向量之间的相似性。并且欧式距离越近,过滤器的行为越相似。另外,聚类是一个有效的方式生成多个过滤器组,在每个组内行为是相似的,而组间是不同的。因此,我们通过k均值聚类方法划分同一个层中的过滤器到g个组G=[G1,G2,...,Gg],以至于层内各组内欧式距离的和最小,如下:
其中,是Gi的中心向量,Cij对应Gi中的第j个输入通道。如图2(b)所示,过滤器被聚类到3个组,每个组有不同的组空间大小。
同样地,我们应用k均值聚类方法到全连接层,因此获得输出神经元的聚类结果并且满足如下条件:
其中,表示组的中心向量,因此并且对应组中的第j个输入神经元。
之前的方法已经探索了设计不同的组卷积,它们的过滤器被预定义地分配到不同的组,并且每个组中过滤器数目相同,因此这些设计都是数据独立的。相反,我们通过聚类方法自动地为每个组选定过滤器,每个组中过滤器的数目可能不同,这个设计是数据依赖的。因此,通过自分组方法有助于探索组卷积的表达潜力。
第5步:根据公式(9)和(10),基于聚类中心的裁剪方案裁剪不重要的连接。
由于组卷积极好的压缩和加速性能,吸引了越来越多的关注。裁剪连接能够通过删除不重要的连接生成那样稀疏的结构,这非常有利于减少参数和加速运算。而且,考虑到聚类中心代表了每个组的重要性,所以我们使用相应的聚类中心来为每个组确定它的输入通道。因此,我们提出了一个基于聚类中心的裁剪方案来构造自分组卷积。
具体地,我们用聚类中心替换掉组中每个过滤器的重要性向量,然后把它们合并成一个新的向量C,向量C中每个元素对应当前层内一个网络连接重要性值,根据这些元素的大小,按照升序排列C中的元素,得到如下表示:
其中,每个元素对应一个网络连接,并且,表示在C中第个网络连接的顺序是i。
相应地,对于全连接层,这个新的向量定义如下:
我们为每个层设置压缩率集合S=[s1,s2,...,sL],它意味着百分之si的连接将从第i层移除。为了简化,我们把第l层的压缩率sl简写为s。我们选择最弱的连接从C中删除,换句话说,我们删除C中最小的(也是最前面的)s·Cout·Cin个连接。因此,不同的组有不同数目的输入通道,而且,输入通道可能被多个组共享,也可能被所有的组忽略。到目前为止,一个带有多样化结构的自分组卷积形成了,它由剩余的稀疏连接构成。那样的多样化结构在每个被裁剪的层中保留了大部分的数据流,这非常有利于开发组卷积的表达潜力。我们在图2(c)展现了自分组卷积。
明显地,自分组卷积的连接模式被s、g、聚类算法和训练数据等控制。其中,g控制组数目,每个组中的过滤器依赖于聚类算法和训练数据,s则决定每个组中输入通道的数目。
尽管我们的自分组卷积依赖于连接的裁剪,但是与之前的裁剪方法存在很大的不同。第一,我们设计了一个基于聚类中心的裁剪方案。这个方案主要强调向量而不是标量,这有助于充分利用参数重要性的分布知识;第二,我们提出的方法尽力最小化因为裁剪对组的影响,同时保留大部分信息流,这非常有助于获得更好的识别性能;(3)我们提出的方法不仅适用于卷积层,也同样适用于全连接层,并且它们能够同时被裁减,提高网络压缩和加速的效率。
第6步:判断是否是最后一层,如果是,继续第7步;否则重复第3步。
第7步:用较少的训练局部微调被裁剪的网络,如果网络压缩率达到用户期望压缩率,继续第八步;否则重复第三步。
第8步:全局微调被裁剪的网络,获得压缩后的模型。既降低了参数数量,又降低了运算量。
尽管我们提出的方法通过基于聚类中心的裁剪方案对精度的衰减做了慎重地处理,但是累计的误差仍将破坏网络的整体性能。因此,微调可以用来弥补因为裁剪而带来的精度损失。
步骤9:将压缩后的深度神经网络模型部署到嵌入式平台。
当我们部署压缩后的模型到移动设备或者嵌入式平台时,我们转化它为整齐的组卷积模式。具体地,对每个过滤器组,我们复制被共享的特征图,删除被忽略的特征图。之后,我们重新排列这些特征图。因此,我们获得了一个带有多样化结构的整齐的组卷积。这不需要特殊的库或者硬件来完成加速,如图2(d)所示。这个转换过程通过置换矩阵来实现。
实施例二
本实施例的目的是提供一种面向嵌入式系统的深度神经网络压缩和加速系统。
为了实现上述目的,本实施例提供了一种面向嵌入式系统的深度神经网络压缩和加速系统,包括:
待压缩模型获取模块,获取待压缩的原始神经网络模型;
自分组模块,对所述神经网络模型中各层的过滤器/输出神经元的每个输入通道进行重要性评估;基于重要性评估结果,对所述神经网络模型中各层的过滤器/输出神经元采用聚类方法进行分组;
模型裁剪模块,根据预设的每层的压缩率,采用聚类中心确定弱连接并进行裁剪,得到压缩后的模型;
模型微调模块,将压缩后的模型通过局部和全局微调恢复它的识别性能。
模型嵌入模块,将所述压缩后的模型部署到嵌入式系统中。
实施例三
本实施例的目的是提供一种电子设备。
为了实现上述目的,本实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现:
获取待压缩的原始神经网络模型;
对所述神经网络模型中各层的过滤器/输出神经元的每个输入通道进行重要性评估;
基于重要性评估结果,对所述神经网络模型中各层的过滤器/输出神经元采用聚类方法进行分组;
根据预设的每层的压缩率,采用聚类中心确定弱连接并进行裁剪,得到压缩后的模型;
将压缩后的模型通过局部和全局微调恢复它的识别性能;
将所述压缩后的模型部署到嵌入式系统中。
实施例四
本实施例的目的是提供一种计算机可读存储介质。
为了实现上述目的,本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时执行以下步骤:
获取待压缩的原始神经网络模型;
对所述神经网络模型中各层的过滤器/输出神经元的每个输入通道进行重要性评估;
基于重要性评估结果,对所述神经网络模型中各层的过滤器/输出神经元采用聚类方法进行分组;
根据预设的每层的压缩率,采用聚类中心确定弱连接并进行裁剪,得到压缩后的模型;
将压缩后的模型通过局部和全局微调恢复它的识别性能。
将所述压缩后的模型部署到嵌入式系统中。
以上实施例二和三中涉及的各步骤与方法实施例一相对应,具体实施方式可参见实施例一的相关说明部分。术语“计算机可读存储介质”应该理解为包括一个或多个指令集的单个介质或多个介质;还应当被理解为包括任何介质,所述任何介质能够存储、编码或承载用于由处理器执行的指令集并使处理器执行本发明中的任一方法。
仿真实验
MNIST数据集:MNIST是一个非常受欢迎的并且广泛应用的图像数据集。它由训练集和测试集构成,分别包含60000和10000个28*28灰色图片。每一个样本代表一个手写数字0~9。我们通过在每个边上填充2个像素来增加每个样本的分辨率至32*32。
CIFAR-10/100数据集:这两个数据集都分别包含50000张用于训练的RGB图片和10000张用于测试的RGB图片,它们分别包含了10和100个分类。由于较少的训练样本,我们采取了随机裁剪和水平翻转的数据增强方法。
网络框架:对于MNIST,我们使用LeNet模型的修改版本作为我们的基线模型;对于CIFAR-10/100,我们使用DenseNet121作为我们的基线模型。
表1展示了我们的LeNet模型在MNIST上的压缩结果,以及与当前最为先进的模型进行对比结果。很明显,模型微调后的结果明显优于当前最为先进的模型,。当卷积层和全连接层压缩率为99%,压缩后的模型精度依然达到98.53%。
表2展示了我们的DenseNet121模型在CIFAR-10的压缩结果,以及与当前最为先进的模型进行对比结果。很明显,模型微调后的结果明显优于当前最为先进的模型。当卷积层和全连接层压缩率不大于85%,微调后的精度不仅没有损失,而且提高了精度。
表3展示了我们的DenseNet121模型在CIFAR-100上的压缩结果,以及与当前最为先进的模型进行对比结果。很明显,模型微调后的结果明显优于当前最为先进的模型。当卷积层和全连接层压缩率不大于70%,微调后的精度不仅没有损失,而且提高了精度。综合的实验证实了我们的自分组方法能够有效应用于各种先进的网络结构,包括LeNet和DenseNet,具有较高的压缩率,并且产生较小的精度损失,甚至没有精度损失。
表1 LeNet对于MNIST的压缩及对比结果
这里,“Conv-Num//FC-Num”分别表示在卷积层和全连接层上的压缩率,M/G意思分别是MILLION/BILLION(106/109)。
表2 DenseNet121对于CIFAR-10的压缩及对比结果
这里,“Conv-Num//FC-Num”分别表示在卷积层和全连接层上的压缩率,M/G意思分别是MILLION/BILLION(106/109)。
表3 DenseNet121对于CIFAR-100的压缩及对比结果
这里,“Conv-Num//FC-Num”分别表示在卷积层和全连接层上的压缩率,M/G意思分别是MILLION/BILLION(106/109)。
上述一个或多个技术方案具有以下技术效果:
本发明通过基于重要性向量的聚类方法和基于聚类中心的网络裁剪方法自动地将传统卷积转化为具有数据依赖和多样化结构的组卷积,实现深度神经网络的压缩与加速,能够满足在有限资源的设备上的部署条件;并且,对所述神经网络的自分组方法不仅适用于卷积层,同样适用于全连接层,并且它们同时的裁剪能够获得更小的网络模型和更快的计算加速。
本发明采用局部和全局相结合的方式微调裁剪过的网络,采用较少的训练即可加强网络剩余部分的表达能力,提高了压缩效率。
本领域技术人员应该明白,上述本发明的各模块或各步骤可以用通用的计算机装置来实现,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。本发明不限制于任何特定的硬件和软件的结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
Claims (9)
1.一种面向嵌入式系统的深度神经网络压缩和加速方法,其特征在于,包括:
获取待压缩的原始神经网络模型;
对所述神经网络模型中各层的过滤器/输出神经元的每个输入通道进行重要性评估;
基于重要性评估结果,对所述神经网络模型中各层的过滤器/输出神经元采用聚类方法进行分组;
根据预设的每层的压缩率,采用聚类中心确定弱连接并进行裁剪,得到压缩后的模型;
将压缩后的模型通过局部和全局微调恢复识别性能;
将所述压缩后的模型部署到嵌入式系统中。
2.如权利要求1所述的一种面向嵌入式系统的深度神经网络压缩和加速方法,其特征在于,获取待压缩的原始神经网络模型后,对所述神经网络模型的每个卷积层进行重新表示:
假设表示第l个卷积层/全连接层的权重,其中Cout和Cin分别为输入通道/输入神经元和输出通道/输出神经元的数目,k是卷积核的大小,是一个输入张量,第l个卷积层/全连接层表示为:
Y=WX
其中,是相应的输出向量,Wij对应第j个输入通道/输入神经元和第i个输出通道/输出神经元之间的卷积核向量。
3.如权利要求2所述的一种面向嵌入式系统的深度神经网络压缩和加速方法,其特征在于,所述重要性评估包括:
为每个过滤器/输出神经元构造重要性向量向量的元素Vij表示第j个输入通道/输入神经元对第i个过滤器/输出神经元的重要性值,通过Wij的l1范数来评估。
4.如权利要求3所述的一种面向嵌入式系统的深度神经网络压缩和加速方法,其特征在于,对所述神经网络模型中各层的过滤器/输出神经元采用聚类方法进行分组,包括:
对于每个卷积层/全连接层,采用欧式距离衡量过滤器/输出神经元重要性向量之间的相似性;
对每个层中的过滤器/输出神经元进行聚类分组,使得各组内欧式距离的和最小。
5.如权利要求1所述的一种面向嵌入式系统的深度神经网络压缩和加速方法,其特征在于,采用聚类中心确定弱连接并进行裁剪,包括:
对于每个卷积层/全连接层内的各分组,采用聚类中心的重要性向量替换组内各过滤器/输出神经元的重要性向量,构造新的向量,该向量的每个元素对应一个网络连接的重要性值;这些元素的值越小,其相应的连接越弱;
结合每个卷积层/全连接层的压缩率进行裁剪。
6.如权利要求1所述的一种面向嵌入式系统的深度神经网络压缩和加速方法,其特征在于,所述部署到嵌入式平台包括:
对每个过滤器组,复制被共享的特征图,删除被忽略的特征图,并进行重新排列。
7.一种面向嵌入式系统的深度神经网络压缩和加速系统,其特征在于,包括:
待压缩模型获取模块,获取待压缩的原始神经网络模型;
自分组模块,对所述神经网络模型中各层的过滤器/输出神经元的每个输入通道进行重要性评估;基于重要性评估结果,对所述神经网络模型中各层的过滤器/输出神经元采用聚类方法进行分组;
模型裁剪模块,根据预设的每层的压缩率,采用聚类中心确定弱连接并进行裁剪,得到压缩后的模型;
模型微调模块,将压缩后的模型通过局部和全局微调恢复识别性能;
模型嵌入模块,将所述压缩后的模型部署到嵌入式系统中。
8.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-6任一项所述的面向嵌入式系统的深度神经网络压缩和加速方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6任一项所述的面向嵌入式系统的深度神经网络压缩和加速方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910578644.1A CN110298446B (zh) | 2019-06-28 | 2019-06-28 | 面向嵌入式系统的深度神经网络压缩和加速方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910578644.1A CN110298446B (zh) | 2019-06-28 | 2019-06-28 | 面向嵌入式系统的深度神经网络压缩和加速方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110298446A true CN110298446A (zh) | 2019-10-01 |
CN110298446B CN110298446B (zh) | 2022-04-05 |
Family
ID=68029392
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910578644.1A Expired - Fee Related CN110298446B (zh) | 2019-06-28 | 2019-06-28 | 面向嵌入式系统的深度神经网络压缩和加速方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110298446B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111260049A (zh) * | 2020-01-15 | 2020-06-09 | 中山德著智能科技有限公司 | 一种基于国产嵌入式系统的神经网络实现方法 |
CN112149805A (zh) * | 2020-09-24 | 2020-12-29 | 济南大学 | 基于框架搜索的深度神经网络的加速与压缩方法及系统 |
CN112348176A (zh) * | 2020-12-04 | 2021-02-09 | 中信银行股份有限公司 | 深度学习模型训练方法、装置、设备及存储介质 |
CN112598110A (zh) * | 2020-12-04 | 2021-04-02 | 北京迈格威科技有限公司 | 神经网络构建方法、装置、设备及介质 |
CN113657421A (zh) * | 2021-06-17 | 2021-11-16 | 中国科学院自动化研究所 | 卷积神经网络压缩方法和装置、图像分类方法和装置 |
CN115329952A (zh) * | 2022-10-12 | 2022-11-11 | 深圳比特微电子科技有限公司 | 一种模型压缩方法、装置和可读存储介质 |
CN116402116A (zh) * | 2023-06-05 | 2023-07-07 | 山东云海国创云计算装备产业创新中心有限公司 | 神经网络的剪枝方法、系统、设备、介质及图像处理方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108304928A (zh) * | 2018-01-26 | 2018-07-20 | 西安理工大学 | 基于改进聚类的深度神经网络的压缩方法 |
US20180336454A1 (en) * | 2017-05-19 | 2018-11-22 | General Electric Company | Neural network systems |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4455614B2 (ja) * | 2007-06-13 | 2010-04-21 | 株式会社東芝 | 音響信号処理方法及び装置 |
CN104657424A (zh) * | 2015-01-21 | 2015-05-27 | 段炼 | 一种多时空特征融合下的兴趣点轨迹聚类方法 |
US20160379109A1 (en) * | 2015-06-29 | 2016-12-29 | Microsoft Technology Licensing, Llc | Convolutional neural networks on hardware accelerators |
CN108322221A (zh) * | 2017-01-18 | 2018-07-24 | 华南理工大学 | 一种用于深度卷积神经网络模型压缩的方法 |
CN109389210B (zh) * | 2017-08-09 | 2021-06-18 | 上海寒武纪信息科技有限公司 | 处理方法和处理装置 |
CN109697502A (zh) * | 2017-10-20 | 2019-04-30 | 富士通株式会社 | 信息处理方法和设备以及存储介质 |
CN109409514A (zh) * | 2018-11-02 | 2019-03-01 | 广州市百果园信息技术有限公司 | 卷积神经网络的定点运算方法、装置、设备和存储介质 |
CN109492754A (zh) * | 2018-11-06 | 2019-03-19 | 深圳市友杰智新科技有限公司 | 一种基于深度神经网络模型压缩和加速方法 |
CN109523017B (zh) * | 2018-11-27 | 2023-10-17 | 广州市百果园信息技术有限公司 | 姿态检测方法、装置、设备及存储介质 |
CN109635935B (zh) * | 2018-12-29 | 2022-10-14 | 北京航空航天大学 | 基于模长聚类的深度卷积神经网络模型自适应量化方法 |
CN109886397A (zh) * | 2019-03-21 | 2019-06-14 | 西安交通大学 | 一种针对卷积层的神经网络结构化剪枝压缩优化方法 |
-
2019
- 2019-06-28 CN CN201910578644.1A patent/CN110298446B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180336454A1 (en) * | 2017-05-19 | 2018-11-22 | General Electric Company | Neural network systems |
CN108304928A (zh) * | 2018-01-26 | 2018-07-20 | 西安理工大学 | 基于改进聚类的深度神经网络的压缩方法 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111260049A (zh) * | 2020-01-15 | 2020-06-09 | 中山德著智能科技有限公司 | 一种基于国产嵌入式系统的神经网络实现方法 |
CN112149805A (zh) * | 2020-09-24 | 2020-12-29 | 济南大学 | 基于框架搜索的深度神经网络的加速与压缩方法及系统 |
CN112149805B (zh) * | 2020-09-24 | 2023-08-22 | 法正互联(北京)科技有限公司 | 基于框架搜索的深度神经网络的加速与压缩方法及系统 |
CN112348176A (zh) * | 2020-12-04 | 2021-02-09 | 中信银行股份有限公司 | 深度学习模型训练方法、装置、设备及存储介质 |
CN112598110A (zh) * | 2020-12-04 | 2021-04-02 | 北京迈格威科技有限公司 | 神经网络构建方法、装置、设备及介质 |
CN112598110B (zh) * | 2020-12-04 | 2024-05-07 | 北京迈格威科技有限公司 | 神经网络构建方法、装置、设备及介质 |
CN113657421A (zh) * | 2021-06-17 | 2021-11-16 | 中国科学院自动化研究所 | 卷积神经网络压缩方法和装置、图像分类方法和装置 |
CN113657421B (zh) * | 2021-06-17 | 2024-05-28 | 中国科学院自动化研究所 | 卷积神经网络压缩方法和装置、图像分类方法和装置 |
CN115329952A (zh) * | 2022-10-12 | 2022-11-11 | 深圳比特微电子科技有限公司 | 一种模型压缩方法、装置和可读存储介质 |
CN115329952B (zh) * | 2022-10-12 | 2023-01-20 | 深圳比特微电子科技有限公司 | 一种模型压缩方法、装置和可读存储介质 |
CN116402116A (zh) * | 2023-06-05 | 2023-07-07 | 山东云海国创云计算装备产业创新中心有限公司 | 神经网络的剪枝方法、系统、设备、介质及图像处理方法 |
CN116402116B (zh) * | 2023-06-05 | 2023-09-05 | 山东云海国创云计算装备产业创新中心有限公司 | 神经网络的剪枝方法、系统、设备、介质及图像处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110298446B (zh) | 2022-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110298446B (zh) | 面向嵌入式系统的深度神经网络压缩和加速方法及系统 | |
CN109978142B (zh) | 神经网络模型的压缩方法和装置 | |
Aharon et al. | K-SVD and its non-negative variant for dictionary design | |
Yu et al. | On compressing deep models by low rank and sparse decomposition | |
Young et al. | Transform quantization for CNN compression | |
Sun et al. | Supervised deep sparse coding networks | |
CN110428045A (zh) | 基于Tucker算法的深度卷积神经网络压缩方法 | |
Szlam et al. | Fast approximations to structured sparse coding and applications to object classification | |
CN114357067A (zh) | 一种针对数据异构性的个性化联邦元学习方法 | |
CN112766467B (zh) | 基于卷积神经网络模型的图像识别方法 | |
Wei et al. | Compact MQDF classifiers using sparse coding for handwritten Chinese character recognition | |
CN114402596A (zh) | 神经网络模型压缩 | |
Wang et al. | Training compressed fully-connected networks with a density-diversity penalty | |
Kundu et al. | Ternary residual networks | |
Feng et al. | Sub clustering K-SVD: size variable dictionary learning for sparse representations | |
Ruffini | Models, networks and algorithmic complexity | |
Kawakami et al. | dsodenet: Neural ode and depthwise separable convolution for domain adaptation on fpgas | |
Lapshyna | Sparse artificial neural networks: Adaptive performance-based connectivity inspired by human-brain processes | |
Lindt et al. | Discrete denoising flows | |
WO2021179117A1 (zh) | 神经网络通道数搜索方法和装置 | |
Berthelier et al. | Learning sparse filters in deep convolutional neural networks with a l1/l2 pseudo-norm | |
Kamma et al. | Neural Behavior-Based Approach for Neural Network Pruning | |
CN106250926A (zh) | 一种二次判别函数分类器存储空间的压缩方法 | |
Chang et al. | Fingerprint image compression by a natural clustering neural network | |
Huang et al. | Deep anchored convolutional neural networks |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20220405 |
|
CF01 | Termination of patent right due to non-payment of annual fee |