CN115496210B - 网络模型的滤波剪枝方法、系统、电子设备及存储介质 - Google Patents
网络模型的滤波剪枝方法、系统、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115496210B CN115496210B CN202211453287.4A CN202211453287A CN115496210B CN 115496210 B CN115496210 B CN 115496210B CN 202211453287 A CN202211453287 A CN 202211453287A CN 115496210 B CN115496210 B CN 115496210B
- Authority
- CN
- China
- Prior art keywords
- pruning
- filter
- network model
- preset
- filtering
- 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.)
- Active
Links
- 238000013138 pruning Methods 0.000 title claims abstract description 198
- 238000000034 method Methods 0.000 title claims abstract description 75
- 238000001914 filtration Methods 0.000 title claims abstract description 59
- 239000011159 matrix material Substances 0.000 claims description 28
- 238000012549 training Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 14
- 238000012163 sequencing technique Methods 0.000 claims description 6
- 238000007781 pre-processing Methods 0.000 claims 1
- 238000004364 calculation method Methods 0.000 abstract description 13
- 238000005516 engineering process Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 10
- 230000001133 acceleration Effects 0.000 description 8
- 230000006835 compression Effects 0.000 description 8
- 238000007906 compression Methods 0.000 description 8
- 244000141353 Prunus domestica Species 0.000 description 6
- 238000013528 artificial neural network Methods 0.000 description 6
- 230000000875 corresponding effect Effects 0.000 description 6
- 238000000354 decomposition reaction Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 238000013140 knowledge distillation Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000003062 neural network model Methods 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 208000033830 Hot Flashes Diseases 0.000 description 1
- 206010060800 Hot flush Diseases 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000004821 distillation Methods 0.000 description 1
- 238000005315 distribution function Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 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/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
本申请涉及滤波剪枝技术领域,尤其涉及一种网络模型的滤波剪枝方法、系统、电子设备及存储介质。该网络模型的滤波剪枝方法包括以下步骤:根据默认的剪枝率,对滤波器进行剪枝,并分别基于范数标准对所述滤波器第一次置零、基于几何中心对所述滤波器第一次置零;获取各个第一次置零后的滤波器的范数值,按照预设顺序,并基于预设的剪枝率,将所述排序后的滤波器第二次置零;对第二次置零后的滤波器进行剪枝;本申请提供了基于范数‑几何中心混合标准的网络模型的滤波剪枝方法,能够起到模型压缩与加速计算的效果,从而降低模型的计算成本和存储成本。
Description
技术领域
本申请涉及滤波剪枝技术领域,尤其涉及一种网络模型的滤波剪枝方法、系统、电子设备及存储介质。
背景技术
随着深度学习和大数据技术的不断发展,深度神经网络已经能够解决很多复杂的现实问题,在金融业、服务业、生物医学等领域中都得到了很好的应用。
但是,在深度学习发展热潮的同时,由于其模型层数越来越深、模型结构越来越复杂,这就导致深度神经网络出现了一个重大的应用缺陷——高昂的计算成本和存储成本;并由此也制约了深度神经网络的各种模型的运行实时性,大大阻碍了深度神经网络的嵌入式应用和进一步的普及。
发明内容
本申请提供了一种网络模型的滤波剪枝方法、系统、电子设备及存储介质,以对提高网络模型的计算速度,并减少网络模型的占用空间。
第一方面,本申请的实施例提供了一种网络模型的滤波剪枝方法,所述方法包括:
获取网络模型的初始剪枝率,根据所述初始剪枝率,对网络模型的卷积层上的滤波器进行剪枝;
基于范数标准对剪枝后的所述滤波器第一次置零,以及基于几何中心标准对剪枝后的所述滤波器第一次置零;
获取各个第一次置零后的所述滤波器的范数值,根据所述范数值的大小,按照预设顺序对第一次置零后的所述滤波器进行排序;
根据预设的剪枝率,通过范数标准和/或几何中心标准的方式将排序后的所述滤波器第二次置零,以及对第二次置零后的所述滤波器进行剪枝。
第二方面,本申请还提供了一种电子设备,所述电子设备包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的计算机程序,其中所述计算机程序被所述处理器执行时,实现如上所述的网络模型的滤波剪枝方法的步骤。
第三方面,本申请还提供了一种滤波剪枝系统,所述系统包括一个或多个计算机和存储指令的一个或多个存储设备,当所述指令由所述一个或多个计算机执行时,使得所述一个或多个计算机执行如上所述的网络模型的滤波剪枝方法的步骤。
第四方面,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其中所述计算机程序被处理器执行时,实现如上所述的网络模型的滤波剪枝方法的步骤。
相比于现有技术,本申请实施例提供的网络模型的滤波剪枝方法中,根据初始剪枝率,对滤波器进行剪枝,并分别基于范数标准对所述滤波器第一次置零、基于几何中心对所述滤波器第一次置零;获取各个第一次置零后的滤波器的范数值,按照预设顺序对第一次置零后的滤波器进行排序,并基于预设的剪枝率,将所述排序后的滤波器第二次置零;对第二次置零后的滤波器进行剪枝;该方法设计了基于范数-几何中心混合标准的网络模型的滤波剪枝方法,能够起到模型压缩与加速计算的效果,从而降低模型的计算成本和存储成本。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为使用本申请提供的方法对网络模型剪枝后的结构示意图;
图2为本申请实施例提供的一种网络模型的滤波剪枝方法的流程示意图;
图3为本申请实施方式提供的网络模型的滤波剪枝方法的第一子步骤流程示意图;
图4为本申请实施方式提供的网络模型的滤波剪枝方法的第二子步骤流程示意图;
图5为本申请实施方式提供的网络模型的滤波剪枝方法的第三子步骤流程示意图;
图6为本申请实施方式提供的网络模型的滤波剪枝方法的第四子步骤流程示意图;
图7为本申请实施方式提供的另一种网络模型的滤波剪枝方法的流程示意图;
图8为本申请实施例提供的ResNet20网络进行剪枝后的准确率度;
图9为本申请实施例提供的ResNet20网络剪枝率最优分配比例图;
图10为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
应当理解,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。例如,第一凹槽和第二凹槽仅仅是为了区分不同的凹槽,并不对其先后顺序进行限定。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
随着社会的发展,人们越来越重视模型的计算速度与存储空间的大小。为了能够降低网络模型的计算成本和存储成本,现有技术一般采用了低秩分解、知识蒸馏等手段。
其中,低秩分解主要是压缩张量中的冗余。低秩分解的实现思想简单,许多研究人员都已经借助这一方法进行研究,并取得了显著的成果。如《Exploiting linearstructure within convolutional networks for efficient evaluation》中记载的:通过对卷积核的低秩逼近和聚类,实现了单个卷积层的2倍加速。又如《Speeding upconvolutional neural networks with low rank expansions》中记载的:通过使用不同的张量分解方法,在文本识别工作上实现了4.5倍的加速,准确率仅下降1%。此外,还有更多复杂的低秩分解变形方法,以及与其他方法相融合的模型压缩与加速的方案,都获得了令人惊喜的结果。
知识蒸馏的实质是把原复杂模型中的知识通过“蒸馏”提取出来得到一个新模型,使新模型与原模型的软最大函数(softmax)输出的分布函数充分接近。知识蒸馏是利用原模型重新部署一个结构精简的新模型。新模型模仿了原模型的功能,又比原模型简单,进而实现了模型压缩与加速。经典的知识蒸馏框架包括教师模型和学生模型,分别代表着已训练的复杂原模型和未完成训练的新模型。通过将教师模型的知识和数据通过知识蒸馏机制传给学生模型,实现学生模型的训练,使学生模型一方面与教师模型输出十分相近,一方面还要拥有良好的泛化能力。
如上所述,越来越多的学者研究深度神经网络的压缩方法,以提高深度神经网络模型的计算速度,并降低深度神经网络模型的存储空间。
有鉴于此,本申请的研究目标是从设计重要性衡量标准出发,提供了一种网络模型的滤波剪枝方法,包括:获取网络模型的初始剪枝率,根据所述初始剪枝率,对网络模型的卷积层上的滤波器进行剪枝;基于范数标准对剪枝后的所述滤波器第一次置零,以及基于几何中心标准对剪枝后的所述滤波器第一次置零;获取各个第一次置零后的所述滤波器的范数值,根据所述范数值的大小,按照预设顺序对第一次置零后的所述滤波器进行排序;根据预设的剪枝率,通过范数标准和/或几何中心标准的方式将排序后的所述滤波器第二次置零,以及对第二次置零后的所述滤波器进行剪枝。本申请可以为深度神经网络ResNet、VGGNet等实现一种滤波剪枝方法,能够实现可观的模型压缩与加速效果,与此同时做到模型性能并不会降低。
在介绍本申请方法之前,为方便理解,首先进行本申请相关的一些名词进行简单介绍。
范数标准,主要是指通过计算滤波器范数的方法,对滤波器进行剪枝。
几何中心标准,主要是指通过计算任意一个滤波器与其他滤波器的几何中心距离,对滤波器进行剪枝的方法。
此外,首先假设本申请的方法从当前卷积层进行剪枝,且当前卷积层为第i层,i为正整数,第i层的卷积层的输入通道数为ni,输入特征图长、宽分别为hi、wi,将应用在第i层卷积层上的滤波器设为Fi,j,卷积核大小为K*K,k可以为正整数,每个滤波器都是由ni个二维卷积核组成,剪枝率为P,下一层的卷积层也即第i+1层的卷积层,输入通道数为ni+1。
参见图1所示,图1为使用本申请提供的方法对网络模型剪枝后的结构示意图;当剪枝了第i层到第i+1层的某一个滤波器时,该滤波器生成的特征图xi+1,j也相应地被删除,这就减少了ni*k*k*hi+1*wi+1次运算。同时,在下一个卷积层中,本应作用于已被删除的特征图上的卷积核的计算也被减少,这又将再次节省ni+2 *k*k*hi+2*wi+2次运算。当以剪枝率P进行逐层滤波剪枝时,在第i层剪枝ni+1*P个滤波器,第i层的输出特征图就变为xi+1∈Rni +1 *(1-p)*hi+1*wi+1,第i+1层如果继续以剪枝率P进行滤波剪枝,那么截至第i+1层,整个模型的参数量就已经减少至原来模型的(1-P)2倍。以此类推,随着层数的加深,滤波剪枝将会减少更多的参数,也就节省了更多了运算次数。
参见图2所示,图2为本申请实施例提供的一种网络模型的滤波剪枝方法的流程示意图;该网络模型的滤波剪枝方法可以包括步骤S100-S400。
步骤S100、获取网络模型的初始剪枝率,根据所述初始剪枝率,对网络模型的卷积层上的滤波器进行剪枝。
其中,本申请实施例所使用的网络模型,可以为ResNet或VGGNet,当然也可以是其他神经网络模型。
此外,在该步骤之前,可以先进行训练数据集预处理,例如剔除训练数据集中不需要的数据,然后从自定义的模型库里调用所需要的模型,并进行初始化。
在步骤S100中,可以先定义掩码mask和码本codebook,方便范数、几何中心两种标准的同时工作。然后进行码本初始化,即定义一个与权重矩阵同规模大小的全1张量,代表着所有滤波器均没有被修剪。然后获取网络模型的初始剪枝率进行第一次剪枝。此外,第一次剪枝可以得到不训练直接剪枝的准确率。
其中,初始剪枝率可以是网络模型初始化前默认的剪枝率,不同的网络模型默认的剪枝率可能存在不同。
步骤S200、基于范数标准对剪枝后的所述滤波器第一次置零,以及基于几何中心标准对剪枝后的所述滤波器第一次置零。
在本申请实施例中,可以使网络模型进入训练周期,实现边训练边置零滤波器。这样可以确保在每一个训练周期里,本申请所提供的滤波剪枝方法在每一个卷积层内依次进行两种标准的滤波剪枝时,可以支持网络模型从头开始训练,边训练边剪枝,不需要预训练和微调,进而大大节省计算开支和时间成本。
步骤S300、获取各个第一次置零后的所述滤波器的范数值,根据所述范数值的大小,按照预设顺序对第一次置零后的所述滤波器进行排序。
当计算得到滤波器的范数值后,根据每个滤波器的数值大小,对第一次置零后的滤波器的索引进行排序。在本申请实施例中,预设顺序可以为由小到大,即根据每个滤波器的范数值,按照由小到大将每个滤波器进行排列。
范数值可以由公式(1)计算得到,公式(1)如下:
在第i层卷积层进行滤波剪枝,首先计算每个滤波器Fi,j的L1范数值Sj:
(1)
其中,Kl表示该滤波器中的卷积核,丨丨表示1范数;公式(1)表示由1到ni个范数求和。
步骤S400、根据预设的剪枝率,通过范数标准和/或几何中心标准的方式将排序后的所述滤波器第二次置零,以及对第二次置零后的所述滤波器进行剪枝。
通过范数标准和/或几何中心标准的方式进行第二次置零,然后对第二次置零后的所述滤波器进行剪枝,实现即可以单独使用范数标准对滤波器进行剪枝,又能够使用几何中心标准对滤波器进行剪枝。
在本申请一实施例中,参见图3所示,图3为本申请实施方式提供的网络模型的滤波剪枝方法的第一子步骤流程示意图;所述预设的剪枝率包括第一剪枝率,通过范数标准将排序后的所述滤波器第二次置零,包括:
步骤S401、在剪枝当前的卷积层时,获取范数值小于第一预设值的滤波器。步骤S402、按照预设顺序,从范数值小于第一预设值的滤波器中获取数量为前第一数量的滤波器,所述第一数量由所述第一剪枝率与下一层卷积层的输入通道数的乘积。步骤S403、将与数量为第一数量的滤波器对应的码本位置置零,得到第一矩阵。步骤S404、将第一矩阵与预设的第一模型参数矩阵点乘,实现范数标准的滤波器第二次置零。
具体的,上述方案中,可以在函数get_filter_codebook()里计算出第i层的滤波器权重矩阵范数,然后根据范数大小将滤波器索引排序,将范数最小的前ni+1*Pn个滤波器编号对应码本codebook上的位置置零,此时码本codebook变成一个包含0和1的矩阵,命名为norm_matrix。norm_matrix这个矩阵上,0元素代表当前位置的滤波器应当被修剪,1元素则意味着该位置的滤波器应当被保留。将norm_matrix传入函数do_mask(),do_mask()里将模型参数矩阵与norm_matrix相点乘。至此,在掩码上,就已经完成了范数标准的滤波器置零工作。
进一步地,参见图4所示,图4为本申请实施方式提供的网络模型的滤波剪枝方法的第二子步骤流程示意图;当使用范数标准对第二次置零后的所述滤波器进行剪枝时,还可以包括如下步骤:
步骤S405、基于所述第一剪枝率,对范数值小于第一预设阈值的第一数量的滤波器、与每个滤波器对应的特征图、下一层卷积层中的卷积核进行修剪。
采用上述滤波剪枝方法时,不需要定义剪枝阈值,但需要确定剪枝率。所以,可以先确定第一剪枝率,然后修剪范数值最小的前ni+1*p1个滤波器、相应的特征图以及下一卷积层中相应的卷积核。其中,ni+1为第i+1层(即下一层)卷积层的输入通道数;p1为第一剪枝率。
进一步地,参见图5所示,图5为本申请实施方式提供的网络模型的滤波剪枝方法的第三子步骤流程示意图;在本申请实施例中,所述预设的剪枝率包括第二剪枝率,通过几何中心标准将排序后的所述滤波器第二次置零,包括:
步骤S406、在剪枝当前的卷积层时,计算出每个滤波器与其他滤波器的距离之和;步骤S407、获取距离之和小于第二预设阈值的滤波器;步骤S408、按照预设顺序,从距离之和小于第二预设阈值的滤波器中获取数量为前第二数量的滤波器,所述第二数量由所述第二剪枝率与下一层卷积层的输入通道数的乘积;步骤S409、将与所述第二数量的滤波器对应的码本位置置零,得到第二矩阵;步骤S410、将所述第二矩阵,与预设的第二模型参数矩阵点乘,实现几何中心标准的滤波器第二次置零。
上述方案中,可以在函数get_filter_simila()里计算出每个滤波器与其他滤波器的距离之和,获取前ni+1*P2个距离和最小的滤波器,P2为第二剪枝率。将ni+1*P2个距离和最小滤波器的编号对应码本上的位置置零,此时码本codebook变成一个仅包含0和1的矩阵,命名为similar_matrix。similar_matrix这个矩阵上,0元素代表当前位置的滤波器应当被修剪,1元素则意味着该位置的滤波器应当被保留。将similar_matrix传入函数do_similar_mask(),do_similar_mask()里将模型参数矩阵与similar_matrix相点乘。至此,在掩码上,就已经完成了几何中心标准的滤波器的置零工作。
进一步地,参见图6所示,图6为本申请实施方式提供的网络模型的滤波剪枝方法的第四子步骤流程示意图;所述对第二次置零后的所述滤波器进行剪枝,包括:
步骤S411、获取符合预设条件的几何中心位置的滤波器;步骤S412、根据符合预设条件的几何中心位置的滤波器,计算出待删除的滤波器,实现对滤波器剪枝。
上述方案可以为基于L2距离度量方式(即2范数)时,寻找位于几何中心的理想的滤波器的方法,具体可以通过公式(2)计算得到。
(2)
公式(2)中,FGM是理想的几何中心位置的滤波器,Fi,j*现存的滤波器中最接近理想
几何中心的滤波器,也是最应该被删除的滤波器,为2范数,ni+1为下一层卷积层,i为当
前卷积层的层数,j为argmin求出的最小值满足的j,可以为正整数,j’为当前卷积层的第j’
个滤波器。
其中,得到应该被删除的滤波器后可以进行再删除,删除滤波器即是对网络模型的滤波剪枝。
进一步的,为了能够简化公式(2)的计算量,本申请实施例选择将其放松为修剪到其他所有滤波器距离和最小的滤波器,如以下公式(3)所示。
(3)
其中,Fi,j为当前卷积层上的滤波器,Fi,j*为待删除的滤波器,为2范数,ni+1为
下一层卷积层,i为当前卷积层的层数,j为argmin求出的最小值满足的j,j’为当前卷积层
的第j’个滤波器。
此外,参见图7所示,图7为本申请实施方式提供的另一种网络模型的滤波剪枝方法的流程示意图;在本申请实施例中,所述预设的剪枝率为第一剪枝率与第二剪枝率之和,所述方法还包括:
步骤S600、当需要进行范数标准的剪枝时,将所述第二剪枝率调整为第二预设阈值;步骤S700、当需要进行几何中心标准的剪枝时,将所述第一剪枝率调整为第二预设阈值;步骤S800、当需要混合使用范数标准的剪枝、几何中心标准的剪枝时,所述第一剪枝率、所述第一剪枝率均不为第二预设阈值。
其中,第二阈值可以为0。
综上,当仅需要使用范数标准进行滤波剪枝时,只需将第二剪枝率设置为0;反之,仅需要使用几何中心标准进行滤波剪枝时,就将第一剪枝率设置为0。当需要使用混合标准剪枝时,就直接设置对应的第一剪枝率和第二剪枝率即可。
在本申请实施例中,鉴于范数和几何中心这两种标准并不冲突,因此可以选择同时使用。可以首先定义第一剪枝率、第二剪枝率,分别为范数标准下的剪枝率P1,几何中心标准下的剪枝率P2,这样预设的剪枝率(即总的剪枝率)为第一剪枝率与第二剪枝率之和。这样,本申请的方案就与其他剪枝方法确定一种剪枝率不同,本申请所提供的混合标准的滤波剪枝方法能够同时确定两种剪枝率,所以只需要将总剪枝率进行合理分配即可。
在每一个训练周期里,本申请的滤波剪枝方法在每一个卷积层内依次进行两种标准的滤波剪枝,可以支持从头开始训练,边训练边剪枝,可以不需要预训练和微调,此外能够起到模型压缩与加速计算的效果,进而大大节省计算开支和时间成本。
为方便理解本申请的方案,下面以本申请的滤波剪枝方法对ResNet进行剪枝为例进行说明:
本方案使用的网络模型可以为:ResNet20,ResNet32,ResNet56,ResNet110和VGGNet中的一种。实际使用时,为了方便管理,可以通过ResNet和VGGNet构建一些基础模型,方便供各种场景使用。
其中,ResNet:多分枝网络ResNet最大的特点就是有“短路结构”,可以构成残差学习。
在预设的剪枝率且均为0.4时,通过本申请的滤波剪枝方法对不同网络深度ResNet进行剪枝,如表1所示;表1列举了两种剪枝率分配情况下的实验结果。每个实验数据均为三次重复试验后取均值的结果,一定程度上避免了实验偶然性。如下表1所示,表1为不同深度的ResNet在预设的剪枝率0.4的两种情况下的实验结果。
表1
由实验结果可以看出,基本所有剪枝情况下,都使得浮点数运算次数FLOPs(floating-point operations per second,每秒所执行的浮点运算次数”)下降了一半以上,而同时准确率不但没有显著下降,甚至还有部分情况下出现了准确率提升的现象,这充分证明了本申请的滤波剪枝算法的合理性、有效性和优越性。
值得注意的是,根据不同网络深度的准确率下降百分比可以基本判断:网络越深时,基于本方案滤波剪枝方法的效果越好。滤波剪枝后的模型准确率与网络深度成正相关,说明本方案滤波剪枝方法更适合于层次较深的ResNet网络。另外,在ResNet20,ResNet32,ResNet56时,设置P1=0.3,P2=0.1比设置P1=0,P2=0.4的性能都要更好。虽然在ResNet110模型中,这一情况发生反转,但此时,两种设置下的准确率都已经十分接近原模型,两种剪枝率分配设置的性能都十分的好。因此,有理由可以相信,在基于CIFAR-10数据集的ResNet网络中,使用本申请所提供的滤波剪枝方法不输于现有的滤波剪枝方法,甚至性能更好。
参见图8、图9所示,图8为本申请实施例提供的ResNet20网络进行剪枝后的准确率度;图9为本申请实施例提供的ResNet20网络剪枝率最优分配比例图;当使用L1作为距离度量时,其表现性能明显优于其他两种距离度量。
图8、图9中,Pn为第一剪枝率,Pg为第二剪枝率。图8中,下方的曲线为Pn=0,Pg=0.4的情况下剪枝的准确率;上方的曲线为Pn=0.3,Pg=0.1的情况下剪枝的准确率;
本申请的滤波剪枝方法来说,分配给这两种标准各自的剪枝率大小对整体滤波剪枝后的模型性能也有很大影响。
当总剪枝率为0.4时,以0.05为一个变化单位,可以得到图9的曲线图结果。从图中可以清晰地看出曲线两端均处于较低水平。本方案从滤波剪枝的标准设计出发,设计了基于范数-几何中心混合标准的滤波剪枝方法,并理论上分析了其可行性,能够起到模型压缩与加速的效果。
另一方面,本申请实施方式还提供了一种滤波剪枝系统,所述系统包括一个或多个计算机和存储指令的一个或多个存储设备,当所述指令由所述一个或多个计算机执行时,使得所述一个或多个计算机执行本申请实施例提供任一项所述的网络模型的滤波剪枝方法的步骤。
本申请还提供了一种电子设备,参见图10所示,图10为本申请实施例提供的一种电子设备的结构示意图。电子设备50可以包括处理器(CPU、GPU、FPGA等)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行上述附图所示的实施方式中的部分或全部处理。在RAM503中,还存储有系统操作所需的各种程序和数据。处理器501、ROM502以及RAM503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
特别地,根据本申请的实施方式,上文参考附图描述的方法可以被实现为计算机软件程序。例如,本申请的实施方式包括一种计算机程序产品,其包括有形地包含在及其可读介质上的计算机程序,计算机程序包含用于执行附图中的方法的程序代码。在这样的实施方式中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。
附图中的流程图和框图,图示了按照本申请各种实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,路程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施方式中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
作为另一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施方式中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,程序被一个或者一个以上的处理器用来执行描述于本申请的网络模型的滤波剪枝方法。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (8)
1.一种网络模型的滤波剪枝方法,其特征在于,所述方法包括:
获取图片训练数据集并进行预处理,通过预处理后的训练数据集对所需要的模型初始化,得到网络模型;所述训练数据集包括图片集;获取网络模型的初始剪枝率,根据所述初始剪枝率,对网络模型的卷积层上的滤波器进行剪枝;
基于范数标准对剪枝后的所述滤波器第一次置零,以及基于几何中心标准对剪枝后的所述滤波器第一次置零;
获取各个第一次置零后的所述滤波器的范数值,根据所述范数值的大小,按照预设顺序对第一次置零后的所述滤波器进行排序;
根据预设的剪枝率,通过范数标准和/或几何中心标准的方式将排序后的所述滤波器第二次置零,以及对第二次置零后的所述滤波器进行剪枝,以提高网络模型的识别性能;
其中,所述预设的剪枝率包括第一剪枝率,通过范数标准将排序后的所述滤波器第二次置零,包括:
在剪枝当前的卷积层时,获取范数值小于第一预设值的滤波器;
按照预设顺序,从范数值小于第一预设值的滤波器中获取数量为前第一数量的滤波器,所述第一数量由所述第一剪枝率与下一层卷积层的输入通道数的乘积;
将与数量为第一数量的滤波器对应的码本位置置零,得到第一矩阵;将第一矩阵与预设的第一模型参数矩阵点乘,实现范数标准的滤波器第二次置零。
2.根据权利要求1所述的网络模型的滤波剪枝方法,其特征在于,所述对第二次置零后的所述滤波器进行剪枝,包括:
基于所述第一剪枝率,对范数值小于第一预设阈值的第一数量的滤波器、与每个滤波器对应的特征图、下一层卷积层中的卷积核进行修剪。
3.根据权利要求1所述的网络模型的滤波剪枝方法,其特征在于,所述预设的剪枝率包括第二剪枝率,通过几何中心标准将排序后的所述滤波器第二次置零,包括:
在剪枝当前的卷积层时,计算出每个滤波器与其他滤波器的距离之和;获取距离之和小于第二预设阈值的滤波器;
按照预设顺序,从距离之和小于第二预设阈值的滤波器中获取数量为前第二数量的滤波器,所述第二数量由所述第二剪枝率与下一层卷积层的输入通道数的乘积;
将与所述第二数量的滤波器对应的码本位置置零,得到第二矩阵;将所述第二矩阵,与预设的第二模型参数矩阵点乘,以实现几何中心标准的滤波器第二次置零。
4.根据权利要求3所述的网络模型的滤波剪枝方法,其特征在于,所述对第二次置零后的所述滤波器进行剪枝,包括:
获取符合预设条件的几何中心位置的滤波器;
根据符合预设条件的几何中心位置的滤波器,计算出待删除的滤波器,实现对滤波器剪枝。
5.根据权利要求4所述的网络模型的滤波剪枝方法,其特征在于,所述对第二次置零后的所述滤波器进行剪枝,包括:通过如下公式获取待删除的滤波器,以实现对滤波器剪枝;
其中,Fi,j为当前卷积层上的滤波器,Fi,j*为待删除的滤波器,|| ||2为2范数,ni+1为下一层卷积层,i为当前卷积层的层数,j为argmin求出的最小值满足的j,j’为当前卷积层的第j’个滤波器。
6.根据权利要求1-5任一项所述的网络模型的滤波剪枝方法,其特征在于,所述预设的剪枝率为第一剪枝率与第二剪枝率之和,所述方法还包括:
当需要进行范数标准的剪枝时,将所述第二剪枝率调整为第二预设阈值;
当需要进行几何中心标准的剪枝时,将所述第一剪枝率调整为第二预设阈值;
当需要混合使用范数标准的剪枝、几何中心标准的剪枝时,所述第一剪枝率、所述第一剪枝率均不为第二预设阈值。
7.一种电子设备,其特征在于,所述电子设备包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的计算机程序,其中所述计算机程序被所述处理器执行时,实现如权利要求1至6中任一项所述的网络模型的滤波剪枝方法的步骤。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,其中所述计算机程序被处理器执行时,实现如权利要求1至6中任一项所述的网络模型的滤波剪枝方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211453287.4A CN115496210B (zh) | 2022-11-21 | 2022-11-21 | 网络模型的滤波剪枝方法、系统、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211453287.4A CN115496210B (zh) | 2022-11-21 | 2022-11-21 | 网络模型的滤波剪枝方法、系统、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115496210A CN115496210A (zh) | 2022-12-20 |
CN115496210B true CN115496210B (zh) | 2023-12-08 |
Family
ID=85116329
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211453287.4A Active CN115496210B (zh) | 2022-11-21 | 2022-11-21 | 网络模型的滤波剪枝方法、系统、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115496210B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110263841A (zh) * | 2019-06-14 | 2019-09-20 | 南京信息工程大学 | 一种基于滤波器注意力机制和bn层缩放系数的动态结构化网络剪枝方法 |
CN114037844A (zh) * | 2021-11-18 | 2022-02-11 | 西安电子科技大学 | 基于滤波器特征图的全局秩感知神经网络模型压缩方法 |
CN114492799A (zh) * | 2022-02-22 | 2022-05-13 | 平安科技(深圳)有限公司 | 卷积神经网络模型剪枝方法和装置、电子设备、存储介质 |
WO2022141754A1 (zh) * | 2020-12-31 | 2022-07-07 | 之江实验室 | 一种卷积神经网络通用压缩架构的自动剪枝方法及平台 |
-
2022
- 2022-11-21 CN CN202211453287.4A patent/CN115496210B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110263841A (zh) * | 2019-06-14 | 2019-09-20 | 南京信息工程大学 | 一种基于滤波器注意力机制和bn层缩放系数的动态结构化网络剪枝方法 |
WO2022141754A1 (zh) * | 2020-12-31 | 2022-07-07 | 之江实验室 | 一种卷积神经网络通用压缩架构的自动剪枝方法及平台 |
CN114037844A (zh) * | 2021-11-18 | 2022-02-11 | 西安电子科技大学 | 基于滤波器特征图的全局秩感知神经网络模型压缩方法 |
CN114492799A (zh) * | 2022-02-22 | 2022-05-13 | 平安科技(深圳)有限公司 | 卷积神经网络模型剪枝方法和装置、电子设备、存储介质 |
Non-Patent Citations (1)
Title |
---|
基于GoogLeNet模型的剪枝算法;彭冬亮 等;控制与决策(06);第141-146页 * |
Also Published As
Publication number | Publication date |
---|---|
CN115496210A (zh) | 2022-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108510067B (zh) | 基于工程化实现的卷积神经网络量化方法 | |
CN109087258B (zh) | 一种基于深度学习的图像去雨方法及装置 | |
CN111079781A (zh) | 基于低秩与稀疏分解的轻量化卷积神经网络图像识别方法 | |
CN109784420B (zh) | 一种图像处理方法及装置、计算机设备和存储介质 | |
CN111488985A (zh) | 深度神经网络模型压缩训练方法、装置、设备、介质 | |
CN112052951A (zh) | 一种剪枝神经网络方法、系统、设备及可读存储介质 | |
CN113011570A (zh) | 一种卷积神经网络模型的自适应高精度压缩方法及系统 | |
US20220319233A1 (en) | Expression recognition method and apparatus, electronic device, and storage medium | |
Hsieh et al. | Design of two-dimensional FIR digital filters by a two-dimensional WLS technique | |
Hastie et al. | Shrinking trees | |
CN112257753B (zh) | 基于偏微分算子的广义等变卷积网络模型的图像分类方法 | |
CN112288087A (zh) | 一种神经网络剪枝方法、装置、电子设备及存储介质 | |
US12046009B2 (en) | 3D point cloud encoding and decoding method, compression method and device based on graph dictionary learning | |
CN109344966A (zh) | 一种高效张量化全连接神经网络的方法 | |
CN114970853A (zh) | 一种跨范围量化的卷积神经网络压缩方法 | |
CN116188878A (zh) | 基于神经网络结构微调的图像分类方法、装置和存储介质 | |
CN114677548A (zh) | 基于阻变存储器的神经网络图像分类系统及方法 | |
Zhao et al. | Tinynerf: Towards 100 x compression of voxel radiance fields | |
CN115496210B (zh) | 网络模型的滤波剪枝方法、系统、电子设备及存储介质 | |
CN116301914A (zh) | 基于gap8微处理器的卷积神经网络部署方法 | |
CN112418388A (zh) | 一种实现深度卷积神经网络处理的方法及装置 | |
CN112200275B (zh) | 人工神经网络的量化方法及装置 | |
CN112613574B (zh) | 一种图像分类模型的训练方法、图像分类方法和装置 | |
CN115035408A (zh) | 基于迁移学习和注意力机制的无人机影像树种分类方法 | |
CN114092481A (zh) | 一种基于U-Net的红外图像语义分割方法 |
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 |