CN113657594A - 一种软滤波器剪枝的方法、装置以及系统 - Google Patents
一种软滤波器剪枝的方法、装置以及系统 Download PDFInfo
- Publication number
- CN113657594A CN113657594A CN202110919658.2A CN202110919658A CN113657594A CN 113657594 A CN113657594 A CN 113657594A CN 202110919658 A CN202110919658 A CN 202110919658A CN 113657594 A CN113657594 A CN 113657594A
- Authority
- CN
- China
- Prior art keywords
- filter
- pruning
- neural network
- filters
- convolutional layer
- 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
Links
- 238000013138 pruning Methods 0.000 title claims abstract description 112
- 238000000034 method Methods 0.000 title claims abstract description 78
- 238000013528 artificial neural network Methods 0.000 claims abstract description 64
- 230000008569 process Effects 0.000 claims abstract description 17
- 238000013527 convolutional neural network Methods 0.000 claims abstract description 14
- 238000000354 decomposition reaction Methods 0.000 claims description 36
- 238000003062 neural network model Methods 0.000 claims description 8
- 230000009467 reduction Effects 0.000 claims description 3
- 230000006835 compression Effects 0.000 description 10
- 238000007906 compression Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 6
- 230000001133 acceleration Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 238000005054 agglomeration Methods 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
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/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic networks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Probability & Statistics with Applications (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Algebra (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供一种软滤波器剪枝的方法、装置以及系统,所述方法包括:利用数据集对卷积神经网络进行第i次训练,得到第i神经网络;根据所述第i神经网络的任一个卷积层包括的滤波器的绝对距离和分布信息,从所述任一卷积层包括的所有滤波器中选择目标剪枝滤波器;将所述多个目标剪枝滤波器设置为零;重复执行以上过程,直至训练次数达到设定数目;移除所述各卷积层中值为0的滤波器,得到第一剪枝神经网络。由于本申请的一些实施例在选取剪枝滤波器时既考虑了绝对距离也考虑了滤波器的分布情况,提升了卷积层的信息含量,当剪枝率较高时,提升模型的精度。
Description
技术领域
本申请涉及滤波器剪枝领域,具体而言本申请实施例涉及一种软滤波器剪枝的方法、装置以及系统。
背景技术
相关技术的软滤波器剪枝方法如图1所示,在图1中首先使用数据集训练卷积神经网络,在每一轮训练过后,对卷积神经网络的每一个卷积层中所有的滤波器计算L2范数,在每一个卷积层中,选择出一部分L2范数较低的滤波器并将这些滤波器的值设定为0,之后继续训练(对应于图1的迭代),重复这个过程,直到最后一轮训练结束,这时候将一部分L2范数较低的滤波器直接移除,就得到了剪枝后的模型(或称为剪枝后的稀疏模型)。
通过以上技术方案对滤波器剪枝后将带来以下问题:
第一,剪枝后的模型加速比和压缩率较低。在软滤波器剪枝方法中,剪枝后的模型仍然保留了较多完整的滤波器,滤波器内部仍包含较多的冗余信息,导致模型的加速比和压缩率较低。第二,当剪枝率较高时,模型精度损失较大。软滤波器剪枝方法在训练过程中会选择一部分范数较小的滤波器并将这些滤波器的输出置零,当训练完毕时,将会直接移除一部分范数较小的滤波器。但是范数指标仅仅考虑了滤波器的绝对距离,当模型剪枝率较高时,由于剩余的少数滤波器属性相同,导致整个模型信息含量不足,因此模型精度下降幅度较大。
因此如何提升软滤波器剪枝方法的剪枝效果成了亟待解决的技术问题。
发明内容
本申请实施例的目的在于提供一种软滤波器剪枝的方法、装置以及系统,通过本申请一些实施例的技术方案提升了模型的压缩率和加速比并提升了模型的准确率。
第一方面,本申请的一些实施例提供一种软滤波器剪枝的方法,所述方法包括:利用数据集对卷积神经网络进行第i次训练,得到第i神经网络;根据所述第i神经网络的任一个卷积层包括的滤波器的绝对距离和分布信息,从所述任一卷积层包括的所有滤波器中选择目标剪枝滤波器;将所述目标剪枝滤波器设置为零;重复执行以上过程,直至训练次数达到设定数目;移除所述各卷积层中值为0的滤波器,得到第一剪枝神经网络。
由于本申请的一些实施例在选取剪枝滤波器时既考虑了绝对距离也考虑了滤波器的分布情况,提升了卷积层的信息含量,当剪枝率较高时,提升模型的精度。
在一些实施例中,所述根据所述第i神经网络的任一个卷积层包括的滤波器的绝对距离和分布信息,从所述任一卷积层包括的所有滤波器中选择目标剪枝滤波器,包括:将所述任一卷积层包括的所有滤波器进行聚类得到多个类别;从所述多个类别中的各类别中选择一个或多个代表滤波器;将所述多个类别中各类别包括的除所述一个或多个代表滤波器外的剩余滤波器作为所述目标剪枝滤波器。
本申请一些实施例的软滤波器剪枝算法引入了代表性选举策略(即选取代表滤波器),用于选择除代表性滤波器外的冗余的滤波器,该模块首先将每一个卷积层进行聚类,并在每个类别中选择一个活多个最具有代表性的滤波器,之后移除剩余的滤波器。该模块不仅考虑了滤波器的绝对距离并且考虑了滤波器之间的分布信息,有效地提升了模型的准确率。
在一些实施例中,所述从所述多个类别中的各类别中选择一个或多个代表滤波器,包括:根据第一类别包括的各滤波器与所述第一类别对应的簇质心的距离确定所述代表滤波器,其中,所述第一类别为所述多个类别中的任一类别。
本申请的一些实施例选择与簇质心距离较小的滤波器作为重要滤波器。那么挑选的离簇质心距离较小的滤波器就利用了分布信息。在每一个聚类的类别中,离这个类别(簇)质心聚类的较小的滤波器可以作为重要滤波器被保留下来,其余滤波器将被剪枝。
在一些实施例中,所述根据第一类别包括的各滤波器与所述第一类别对应的簇质心的距离确定所述代表滤波器,包括:对所述各滤波器与所述第一类别对应的簇质心的距离按照从大到小的顺序进行排序,选择与排序队列中最后的一个或多个距离值对应的滤波器作为所述代表滤波器;或者,对所述各滤波器与所述第一类别对应的簇质心的距离按照从小到大的顺序进行排序,选择与排序队列中最前边的一个或多个距离值对应的滤波器作为所述代表滤波器。
本申请的一些实施例通过将多个距离排序的方式选择代表滤波器(即重要滤波器),提升了数据处理的速度。
在一些实施例中,所述将所述任一卷积层包括的所有滤波器进行聚类得到多个类别,包括:将第一卷积层的每个滤波器作为一个单独的簇,其中,所述第一卷积层是所述第i神经网络模型包括的任一卷积层;计算每一个簇与所有其它簇的距离,并找到所述距离最小的两个簇,将所述两个簇合并;重复执行上个过程直至聚类得到的簇的数目达到指定的聚类数目,其中,所述指定的聚类数目是根据任一卷积层包括的滤波器的总数目和设定的最小聚簇比例确定的;计算所述指定的聚类数目包括的每一个聚类数目对应的轮廓系数,得到与所述指定的聚类数目包括的聚类总数目相同的多个轮廓系数;从所述多个轮廓系数中选择最大轮廓系数对应的聚类数目所对应的多个簇作为所述多个类别。
本申请的一些实施例通过计算轮廓系数得到最佳的聚类数目。
在一些实施例中,所述滤波器的绝对距离是通过计算所述第一卷积层中每个滤波器的范数得到的。
本申请的一些实施例在选择目标剪枝滤波器时还需要考虑滤波器的范数。
在一些实施例中,所述移除所述各卷积层中值为0的滤波器,得到第一剪枝神经网络模型之后,所述方法还包括:对所述第一剪枝神经网络的每个卷积层进行低秩分解,得到第二剪枝神经网络。
本申请的一些实施例对剪枝后的模型使用低秩分解方法,将所有卷积层的滤波器进行Tucker分解,有效地减少了模型的参数和浮点操作数,提升了压缩率。
在一些实施例中,所述对所述第一剪枝神经网络的每个卷积层进行低秩分解,得到第二剪枝神经网络之后,所述方法还包括:使用所述数据集对所述第二剪枝神经网络进行训练得到目标卷积神经网络。
本申请的一些实施例在低秩分解后还用训练数据再训练模型对网络参数进行微调,减少低秩分解带来的精度损失,恢复模型精度。
在一些实施例中,所述对所述第一剪枝神经网络的每个卷积层进行低秩分解,包括:遍历所述第i神经网络的每一个卷积层;确定所述每一个卷积层的秩;根据确定的秩,将任一个卷积层Tucker分解为多个低秩卷积层;使用分解后的低秩卷积层代替原始卷积层。
在一些实施例中,所述对所述第一剪枝神经网络的每个卷积层进行低秩分解,还包括:设定全连接层的整体剪枝率;根据权值大小对全连接层中的所有权重排序;根据所述减值率移除相应数目权重。
第二方面,本申请的一些实施例提供一种软滤波器剪枝的装置,所述装置包括:训练模块,被配置为对待训练的神经网络模型进行训练,并将训练好的神经网络输出;代表性选取模块,被配置为接收由所述训练模块输出的所述训练好的神经网络,并从所述训练好的神经网络包括的各卷积层中根据滤波器的绝对距离和分布信息从任一卷积层包括的所有滤波器中选择目标剪枝滤波器;设置模块,被配置为将所述多个目标剪枝滤波器设置为零;剪枝模块,被配置为移除各卷积层中值为0的滤波器,得到第一剪枝神经网络。
在一些实施例中,所述装置还包括:低秩分解模块,被配置为对所述第一剪枝神经网络的各卷积层进行低秩分解操作,得到第二剪枝神经网络。
在一些实施例中,所述装置还包括:微调模块,被配置为对所述第二剪枝神经网络进行再训练得到目标神经网络。
第三方面,本申请的一些实施例提供一种软滤波器剪枝的系统,所述系统包括一个或多个计算机和存储指令的一个或多个存储设备,当所述指令由所述一个或多个计算机执行时,使得所述一个或多个计算机执行第一方面各实施例所述的相应方法的操作。
第四方面,本申请的一些实施例提供一种存储指令的一个或多个计算机存储介质,当所述指令由一个或多个计算机执行时,使得所述一个或多个计算机执行第一方面各实施例所述的相应方法的操作。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为相关技术提供的软滤波器剪枝方案的实现框图;
图2为本申请实施例提供的软滤波器剪枝方法的流程图;
图3为本申请实施例提供的软滤波器剪枝装置的组成框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
本申请的一些实施例在剪枝后增加了低秩分解和微调模块,该方法解决了剪枝后的模型加速比和压缩率较低的问题。低秩分解步骤将卷积神经网络的卷积层进行分解,不仅减少了剪枝后模型的参数,也减少了剪枝后模型的计算量,最后通过微调步骤重新训练数据集并提升模型的精度。本申请的一些实施例,利用代表滤波器选举方法选择重要滤波器并对应得到不重要滤波器的方法,解决了当剪枝率较高时,模型精度损失较大的问题。这是由于相关技术直接使用L2范数选择不重要的滤波器,但是L2范数仅仅考虑了滤波器的绝对距离。而本申请一些实施例提供的代表滤波器选举方法不仅考虑滤波器的绝对距离,也考虑了滤波器的分布信息,代表性选举方法提升了卷积层的信息含量,当剪枝率较高时,提升模型的精度。
本申请的一些实施例在选择各卷积层中不重要的需要裁减的滤波器时,不仅考虑了相应卷积层中滤波器的绝对距离,也考虑了相应卷积层中滤波器的分布信息。
如图2所示,本申请的一些实施例提供一种软滤波器剪枝的方法,所述方法包括:S101,i=i+1,其中,i为大于或等于0的整数;S102,利用数据集对卷积神经网络进行第i次训练,得到第i神经网络;S103,根据所述第i神经网络的任一个卷积层包括的滤波器的绝对距离和分布信息,从所述任一卷积层包括的所有滤波器中选择目标剪枝滤波器;S104,将所述多个目标剪枝滤波器设置为零;S105,判断i是否小于设定数目,即判断i是否小于预先设定的最大循环次数,如果小于则返回S101(即判断训练的次数未达到设定数目时,则重复执行以上S101-S104),直至训练次数达到设定数目。S106,移除各卷积层中值为0的滤波器,得到第一剪枝神经网络。由于本申请的一些实施例在选取剪枝滤波器时既考虑了绝对距离也考虑了滤波器的分布情况,提升了卷积层的信息含量,当剪枝率较高时,提升模型的精度。
需要说明的是,在本申请的一些实施例中,为了有效地减少了模型的参数和浮点操作数,提升了压缩率,在执行完S106之后,所述方法还包括:S107,对所述第一剪枝神经网络的每个卷积层进行低秩分解,得到第二剪枝神经网络。在本申请的一些实施例中,为了减少S106低秩分解带来的精度损失,恢复模型精度,在执行S107之后,所述方法还包括:S108,使用所述数据集对所述第二剪枝神经网络进行训练得到目标卷积神经网络。
下面示例性阐述上述各步骤。
在本申请的一些实施例中,S103包括:将所述任一卷积层包括的所有滤波器进行聚类得到多个类别;从所述多个类别中的各类别中选择一个或多个代表滤波器;将所述多个类别中各类别包括的除所述一个或多个代表滤波器外的剩余滤波器作为所述目标剪枝滤波器。
在本申请的一些实施例中,S103包括的从所述多个类别中的各类别中选择一个或多个代表滤波器的过程示例性包括:根据第一类别包括的各滤波器与所述第一类别对应的簇质心的距离确定所述代表滤波器,其中,所述第一类别为所述多个类别中的任一类别。
在本申请的一些实施例中,S103包括的根据第一类别包括的各滤波器与所述第一类别对应的簇质心的距离确定所述代表滤波器的过程示例性包括:对所述各滤波器与所述第一类别对应的簇质心的距离按照从大到小的顺序进行排序,选择与排序队列中最后的一个或多个距离值对应的滤波器作为所述代表滤波器;或者,对所述各滤波器与所述第一类别对应的簇质心的距离按照从小到大的顺序进行排序,选择与排序队列中最前边的一个或多个距离值对应的滤波器作为所述代表滤波器。
在一些实施例中,S103包括的将所述任一卷积层包括的所有滤波器进行聚类得到多个类别的过程示例性包括:将第一卷积层的每个滤波器作为一个单独的簇,其中,所述第一卷积层是所述第i神经网络模型包括的任一卷积层;计算每一个簇与所有其它簇的距离,并找到所述距离最小的两个簇,将所述两个簇合并;重复执行上个过程直至聚类得到的簇的数目达到指定的聚类数目,其中,所述指定的聚类数目是根据任一卷积层包括的滤波器的总数目和设定的最小聚簇比例确定的;计算所述指定的聚类数目包括的每一个聚类数目对应的轮廓系数,得到与所述指定的聚类数目包括的聚类总数目相同的多个轮廓系数;从所述多个轮廓系数中选择最大轮廓系数对应的聚类数目所对应的多个簇作为所述多个类别。
在本申请的一些实施例中,所述滤波器的绝对距离是通过计算所述第一卷积层中每个滤波器的范数得到的。
在本申请的一些实施例中,S107包括:遍历所述第i神经网络的每一个卷积层;确定所述每一个卷积层的秩;根据确定的秩,将任一个卷积层Tucker分解为多个低秩卷积层;使用分解后的低秩卷积层代替原始卷积层。在本申请的一些实施例中,S107还包括:设定全连接层的整体剪枝率;根据权值大小对全连接层中的所有权重排序;根据所述减值率移除相应数目权重。
可以理解的是,在本申请一些实施例的软滤波器剪枝装置的结果如图3所示,该装置包括训练模块、代表性选举模块、设置不重要的滤波器为0的模块、剪枝模块、低秩分解模块以及微调模块。
下面示例性介绍各模块的输入、输出以及工作过程。
图3的训练模块用于对神经网络模型进行训练训练,即使用数据集对卷积神经网络进行一次(或称为一轮)训练,输出经过本次训练的神经网络。
图3的代表性选取模块用于执行代表性选举(包括如下的步骤1-步骤4),即选举代表滤波器的方法,在本次训练得到的神经网络的每一个卷积层中选择出一些代表性滤波器,并将除代表性滤波器外的其它滤波器设置为相应卷积层中不重要的滤波器。
向图3的代表性选举模块输入本次训练后的神经网络,经过图3的代表性选取模块处理后输出的是每一个卷积层中不重要的滤波器,其中,选举的对象为每一个卷积层。
采用图3的代表性选举模块进行的选举过程包括:
指定最小聚簇比例:α,假设卷积层的滤波器个数为A,将范围[A-1,Aα]的数目作为凝聚聚类的指定数目,并计算每一个聚类数目的轮廓系数,轮廓系数最大的聚类数目为最佳聚类数目(具体包括如下步骤1和步骤2)。
步骤1,凝聚聚类,凝聚聚类的作用是将滤波器聚类成指定数目。
凝聚聚类包括:
步骤11,将每一个滤波器作为一个单独的簇。
步骤12,对于每一个簇,计算这个簇与所有其他簇的距离。
步骤13,找到当前距离最小的两个簇,将这两个簇进行合并。
步骤14,重复步骤11至步骤13直到簇的数目达到指定的聚类数目。
例如,步骤12的距离计算公式为:
步骤2,计算轮廓系数,其中,计算轮廓系数作用为:计算指定聚类数目的轮廓系数,并且通过轮廓系数计算最佳聚类数目。
步骤21,计算每个滤波器与相同簇内其他滤波器的平均距离a。
步骤22,计算每个滤波器与任何不同簇内所有滤波器的平均距离b。
步骤23,根据a和b计算滤波器的轮廓系数。
其中,步骤23的轮廓系数计算包括:
如果簇内滤波器的个数大于1,那么该滤波器的轮廓系数为:
如果簇内滤波器的个数等于1,那么该滤波器的轮廓系数为:
s=0
最佳聚类数目计算公式为:
其中,n代表该卷积层的滤波器个数,Si代表该卷积层的每一个滤波器。
步骤3,计算L2范数值
计算每个滤波器的L2范数值,并将范数值归一化。计算公式如下:
其中,Fi代表每一个滤波器,||Fi||代表滤波器的L2范数值,K代表滤波器中卷积核的维度,Ni代表滤波器中卷积核的个数。
归一化的计算公式如下:
其中,x代表原始数值,Xmin代表一组数中的最小的数,Xmax代表一组数中的最大的数。X’代表归一化后的数值。
步骤4,代表滤波器以目标剪枝滤波器(即会被剪枝的滤波器)选择过程包括:
步骤41,计算每个滤波器与它的簇质心的距离,并将距离值归一化,然后使用数值1减去归一化后的距离值。
步骤42,将归一化的范数值与处理后的距离值相加,最后利用它们的和值衡量滤波器的重要性。
步骤43,假设剪枝率为α,卷积层中滤波器的个数为A,那么根据第2个步骤的重要性对滤波器进行排序,选择前Aα个滤波器。
图3的设置不重要的滤波器为0的模块需要将代表性选取模块选出的不重要的滤波器置零,即将代表性选取模块选出的除代表性滤波器之外的剩余的滤波器的值设置为0。具体包括:将代表性选取模块选择出来的Aα个滤波器的值设置为0;如果训练模块中的训练轮次还没有结束,那么转到训练模块继续对神经网络进行训练、代表性选举以及设置不重要的滤波器为零,直到训练轮次结束;如果训练轮次结束,那么将得到的神经网络输入剪枝模块。
图3的剪枝模块用于剪枝,即直接移除设置不重要的滤波器为0的模块设置为0的滤波器,得到第一剪枝神经网络。
图3的低秩分解模块用于对第一剪枝神经网络进行低秩分解,即对卷积神经网络的每一个卷积层进行Tucker分解,得到第二剪枝神经网络。
输入图3的低秩分解模块的是经过剪枝模块处理后的剪枝后的模型,低秩分解模块输出的分解后的神经网络模型。
图3的低秩分解模块的低秩分解过程包括:
步骤51,遍历卷积神经网络的每个卷积层。
步骤52,采用变分贝叶斯矩阵分解方法确定卷积层的秩。
步骤53,根据确定的秩,将每一个卷积层Tucker分解成三个低秩卷积层。
步骤54,使用分解后的低秩卷积层代替原始卷积层。
步骤55,设定全连接层的整体剪枝率为x%。
步骤56,根据权值大小对全连接层中的所有权重排序。
步骤57,移除前x%小的所有权重,得到第二剪枝神经网络。
其中,Tucker分解的形式如下:
图3的微调模块用于对低秩分解模块输出的第二剪枝神经网络进行再训练,即使用数据集重新训练第二剪枝神经网络,得到目标神经网络。
图3的微调模块的输入是经低秩分解模块分解后的模型,输出是微调后的目标神经网络。图3的微调模块被配置为利用训练数据集重新训练分解后的模型。
综上,本申请的一些实施例在软滤波器剪枝方法中增加了低秩分解和微调模块,该方法解决了剪枝后的模型加速比和压缩率较低的问题。低秩分解步骤将卷积神经网络的卷积层进行分解,不仅减少了剪枝后模型的参数,也减少了剪枝后模型的计算量,最后通过微调步骤重新训练数据集并提升模型的精度。在本申请的一些实施例中,使用代表性选举方法选择不重要滤波器的方法,该方法解决了当剪枝率较高时,模型精度损失较大的问题。原来使用L2范数选择不重要的滤波器,但是L2范数仅仅考虑了滤波器的绝对距离。而代表性选举方法不仅考虑滤波器的绝对距离,也考虑了滤波器的分布信息,代表性选举方法提升了卷积层的信息含量,当剪枝率较高时,提升模型的精度。
可以理解的是,采用本申请的一些实施例至少可以达到如下目的:
第一,提升了模型的压缩率和加速比。原始的软滤波器剪枝方法在每一轮训练过程中都会将一部分滤波器的输出置零,最后移除一定比例L2范数较低的滤波器。剪枝后的模型每个卷积层仍然保留较多完整的滤波器,因此可以进一步提升压缩率。本申请一些实施例提供的软滤波器剪枝方法,首先对剪枝后的模型使用低秩分解方法,将所有卷积层的滤波器进行Tucker分解,有效地减少了模型的参数和浮点操作数,提升了压缩率,之后微调网络,减少低秩分解带来的精度损失,恢复模型精度。
第二,提升了模型的准确率。现有的软滤波器剪枝方法采用L2范数衡量滤波器的重要性,仅考虑了滤波器的绝对距离,当剪枝率增大时,剩下的滤波器均具有相同的属性,导致整个卷积层的信息含量较少,模型精度下降。本申请一些实施例提供的软滤波器剪枝算法不仅考虑了滤波器的绝对距离并且考虑了滤波器之间的分布信息,对于每一个卷积层,通过聚类的方法,在每个类别中选择一个最具有代表性的滤波器,有效地提升了卷积层的信息丰富程度,也因此提升了剪枝后模型的准确率。
本申请的一些实施例提供一种软滤波器剪枝的系统,所述系统包括一个或多个计算机和存储指令的一个或多个存储设备,当所述指令由所述一个或多个计算机执行时,使得所述一个或多个计算机执行图2各实施例所述的相应方法的操作。
本申请的一些实施例提供一种存储指令的一个或多个计算机存储介质,当所述指令由一个或多个计算机执行时,使得所述一个或多个计算机执行图2各实施例所述的相应方法的操作。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (15)
1.一种软滤波器剪枝的方法,其特征在于,所述方法包括:
利用数据集对卷积神经网络进行第i次训练,得到第i神经网络;
根据所述第i神经网络的任一个卷积层包括的滤波器的绝对距离和分布信息,从所述任一卷积层包括的所有滤波器中选择目标剪枝滤波器;
将所述目标剪枝滤波器设置为零;
重复执行以上过程,直至训练次数达到设定数目;
移除所述各卷积层中值为0的滤波器,得到第一剪枝神经网络。
2.如权利要求1所述的方法,其特征在于,所述根据所述第i神经网络的任一个卷积层包括的滤波器的绝对距离和分布信息,从所述任一卷积层包括的所有滤波器中选择目标剪枝滤波器,包括:
将所述任一卷积层包括的所有滤波器进行聚类得到多个类别;
从所述多个类别中的各类别中选择一个或多个代表滤波器;
将所述多个类别中各类别包括的除所述一个或多个代表滤波器外的剩余滤波器作为所述目标剪枝滤波器。
3.如权利要求2所述的方法,其特征在于,所述从所述多个类别中的各类别中选择一个或多个代表滤波器,包括:根据第一类别包括的各滤波器与所述第一类别对应的簇质心的距离确定所述代表滤波器,其中,所述第一类别为所述多个类别中的任一类别。
4.如权利要求3所述的方法,其特征在于,所述根据第一类别包括的各滤波器与所述第一类别对应的簇质心的距离确定所述代表滤波器,包括:
对所述各滤波器与所述第一类别对应的簇质心的距离按照从大到小的顺序进行排序,选择与排序队列中最后的一个或多个距离值对应的滤波器作为所述代表滤波器;或者,
对所述各滤波器与所述第一类别对应的簇质心的距离按照从小到大的顺序进行排序,选择与排序队列中最前边的一个或多个距离值对应的滤波器作为所述代表滤波器。
5.如权利要求2-4任一项所述的方法,其特征在于,所述将所述任一卷积层包括的所有滤波器进行聚类得到多个类别,包括:
将第一卷积层的每个滤波器作为一个单独的簇,其中,所述第一卷积层是所述第i神经网络的模型包括的任一卷积层;
计算每一个簇与所有其它簇的距离,并找到所述距离最小的两个簇,将所述两个簇合并;
重复执行上个过程直至聚类得到的簇的数目达到指定的聚类数目,其中,所述指定的聚类数目是根据任一卷积层包括的滤波器的总数目和设定的最小聚簇比例确定的;
计算所述指定的聚类数目包括的每一个聚类数目对应的轮廓系数,得到与所述指定的聚类数目包括的聚类总数目相同的多个轮廓系数;
从所述多个轮廓系数中选择最大轮廓系数对应的聚类数目所对应的多个簇作为所述多个类别。
6.如权利要求5所述的方法,其特征在于,所述滤波器的绝对距离是通过计算所述第一卷积层中每个滤波器的范数得到的。
7.如权利要求1-4任一项所述的方法,其特征在于,所述移除所述各卷积层中值为0的滤波器,得到第一剪枝神经网络模型之后,所述方法还包括:
对所述第一剪枝神经网络的每个卷积层进行低秩分解,得到第二剪枝神经网络。
8.如权利要求7所述的方法,其特征在于,所述对所述第一剪枝神经网络的每个卷积层进行低秩分解,得到第二剪枝神经网络之后,所述方法还包括:
使用所述数据集对所述第二剪枝神经网络进行训练得到目标卷积神经网络。
9.如权利要求7所述的方法,其特征在于,所述对所述第一剪枝神经网络的每个卷积层进行低秩分解,包括:
遍历所述第i神经网络的每一个卷积层;
确定所述每一个卷积层的秩;
根据确定的秩,将任一个卷积层塔克分解Tucker分解为多个低秩卷积层;
使用分解后的低秩卷积层代替原始卷积层。
10.如权利要求9所述的方法,其特征在于,所述对所述第一剪枝神经网络的每个卷积层进行低秩分解,还包括:
设定全连接层的整体剪枝率;
根据权值大小对全连接层中的所有权重排序;
根据所述减值率移除相应数目权重。
11.一种软滤波器剪枝的装置,其特征在于,所述装置包括:
训练模块,被配置为对待训练的神经网络模型进行训练,并将训练好的神经网络输出;
代表性选取模块,被配置为接收由所述训练模块输出的所述训练好的神经网络,并从所述训练好的神经网络包括的各卷积层中根据滤波器的绝对距离和分布信息从任一卷积层包括的所有滤波器中选择目标剪枝滤波器;
设置模块,被配置为将所述目标剪枝滤波器设置为零;
剪枝模块,被配置为移除各卷积层中值为0的滤波器,得到第一剪枝神经网络。
12.如权利要求11所述的装置,其特征在于,所述装置还包括:低秩分解模块,被配置为对所述第一剪枝神经网络的各卷积层进行低秩分解操作,得到第二剪枝神经网络。
13.如权利要求12所述的装置,其特征在于,所述装置还包括:微调模块,被配置为对所述第二剪枝神经网络进行再训练得到目标神经网络。
14.一种软滤波器剪枝的系统,其特征在于,所述系统包括一个或多个计算机和存储指令的一个或多个存储设备,当所述指令由所述一个或多个计算机执行时,使得所述一个或多个计算机执行根据权利要求1-10中任一项所述的相应方法的操作。
15.一种存储指令的一个或多个计算机存储介质,当所述指令由一个或多个计算机执行时,使得所述一个或多个计算机执行根据权利要求1-10中任一项所述的相应方法的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110919658.2A CN113657594A (zh) | 2021-08-11 | 2021-08-11 | 一种软滤波器剪枝的方法、装置以及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110919658.2A CN113657594A (zh) | 2021-08-11 | 2021-08-11 | 一种软滤波器剪枝的方法、装置以及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113657594A true CN113657594A (zh) | 2021-11-16 |
Family
ID=78491382
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110919658.2A Pending CN113657594A (zh) | 2021-08-11 | 2021-08-11 | 一种软滤波器剪枝的方法、装置以及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113657594A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114330714A (zh) * | 2022-03-08 | 2022-04-12 | 北京环境特性研究所 | 卷积神经网络剪枝优化方法、装置、电子设备及存储介质 |
CN116402117A (zh) * | 2023-06-07 | 2023-07-07 | 中诚华隆计算机技术有限公司 | 图像分类卷积神经网络剪枝方法及芯粒器件数据分配方法 |
-
2021
- 2021-08-11 CN CN202110919658.2A patent/CN113657594A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114330714A (zh) * | 2022-03-08 | 2022-04-12 | 北京环境特性研究所 | 卷积神经网络剪枝优化方法、装置、电子设备及存储介质 |
CN114330714B (zh) * | 2022-03-08 | 2022-06-14 | 北京环境特性研究所 | 卷积神经网络剪枝优化方法、装置、电子设备及存储介质 |
CN116402117A (zh) * | 2023-06-07 | 2023-07-07 | 中诚华隆计算机技术有限公司 | 图像分类卷积神经网络剪枝方法及芯粒器件数据分配方法 |
CN116402117B (zh) * | 2023-06-07 | 2023-08-18 | 中诚华隆计算机技术有限公司 | 图像分类卷积神经网络剪枝方法及芯粒器件数据分配方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105045812B (zh) | 文本主题的分类方法及系统 | |
CN112529153B (zh) | 基于卷积神经网络的bert模型的微调方法及装置 | |
CN110929029A (zh) | 一种基于图卷积神经网络的文本分类方法及系统 | |
CN110175628A (zh) | 一种基于自动搜索与知识蒸馏的神经网络剪枝的压缩算法 | |
CN113657594A (zh) | 一种软滤波器剪枝的方法、装置以及系统 | |
CN111723915B (zh) | 一种基于深度卷积神经网络的目标检测方法 | |
CN111079899A (zh) | 神经网络模型压缩方法、系统、设备及介质 | |
CN106096066A (zh) | 基于随机近邻嵌入的文本聚类方法 | |
CN110428045A (zh) | 基于Tucker算法的深度卷积神经网络压缩方法 | |
JP6950756B2 (ja) | ニューラルネットワークのランク最適化装置および最適化方法 | |
CN110674865A (zh) | 面向软件缺陷类分布不平衡的规则学习分类器集成方法 | |
CN112884149A (zh) | 一种基于随机敏感度st-sm的深度神经网络剪枝方法及系统 | |
CN114329233A (zh) | 一种跨区域跨评分协同过滤推荐方法及系统 | |
CN111967749A (zh) | 一种船员舒适度评价方法、终端设备及存储介质 | |
CN107704872A (zh) | 一种基于相对最离散维分割的K‑means聚类初始中心选取方法 | |
CN109325511B (zh) | 一种改进特征选择的方法 | |
CN108846128B (zh) | 一种基于自适应噪音降噪编码器的跨领域文本分类方法 | |
Farooq | Genetic algorithm technique in hybrid intelligent systems for pattern recognition | |
CN111680973B (zh) | 一种催收系统的催收任务优先级智能编排方法 | |
CN112380932A (zh) | 振动信号特征值选择方法及电梯健康状态评估或故障诊断方法 | |
CN111488903A (zh) | 基于特征权重的决策树特征选择方法 | |
JP7546630B2 (ja) | ニューラルネットワークの最適化方法及びコンピュータシステム、並びにコンピュータ可読記憶媒体 | |
CN109299260B (zh) | 数据分类方法、装置以及计算机可读存储介质 | |
CN113139089A (zh) | Sddne模型协同过滤模型的电影推荐方法、系统、介质及设备 | |
CN113780334A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20211116 |