CN113255910A - 卷积神经网络的剪枝方法、装置、电子设备和存储介质 - Google Patents
卷积神经网络的剪枝方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN113255910A CN113255910A CN202110598596.XA CN202110598596A CN113255910A CN 113255910 A CN113255910 A CN 113255910A CN 202110598596 A CN202110598596 A CN 202110598596A CN 113255910 A CN113255910 A CN 113255910A
- Authority
- CN
- China
- Prior art keywords
- pruning
- neural network
- parameters
- redundancy
- determining
- 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 133
- 238000013527 convolutional neural network Methods 0.000 title claims abstract description 96
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000009826 distribution Methods 0.000 claims abstract description 42
- 230000006870 function Effects 0.000 claims description 26
- 238000012549 training Methods 0.000 claims description 26
- 238000009827 uniform distribution Methods 0.000 claims description 10
- 230000001276 controlling effect Effects 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 6
- 230000002596 correlated effect Effects 0.000 claims description 2
- 238000004364 calculation method Methods 0.000 abstract description 10
- 230000000694 effects Effects 0.000 description 9
- 238000013139 quantization Methods 0.000 description 8
- 238000013507 mapping Methods 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000010606 normalization Methods 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000000875 corresponding effect Effects 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 230000004069 differentiation Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000011002 quantification Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000003709 image segmentation Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 239000004065 semiconductor Substances 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
- 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
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
本发明实施例公开了一种卷积神经网络的剪枝方法、装置、电子设备和存储介质。该卷积神经网络的剪枝方法包括:确定待剪枝的卷积神经网络模型中各滤波器的权重值,并根据所述权重值确定各滤波器的重要性参数;根据各卷积层中所有滤波器的重要性参数的分布情况分别确定各卷积层的冗余度;根据所述各卷积层的冗余度确定各卷积层的剪枝参数,并基于所述剪枝参数分别对各卷积层进行剪枝。本发明实施例在尽量保证模型的精度不受损失的同时,实现了有效降低网络模型的参数量和计算复杂度,提高剪枝准确度和效率。
Description
技术领域
本发明实施例涉及深度学习技术领域,尤其涉及一种卷积神经网络的剪枝方法、装置、电子设备和存储介质。
背景技术
大规模的卷积神经网络(CNN)是深度学习的代表性技术,效果出色,应用广泛。但是CNN模型参数量大,对硬件算力的要求高,限制其大规模的落地应用。针对该问题,网络剪枝方法是一种有效的模型压缩和加速手段,可以在维持模型精度尽量不损失的情况下,成倍地降低模型的参数量和计算复杂度,从而降低CNN模型的落地部署难度。
网络剪枝方法可分为结构化剪枝和非结构化剪枝两类:非结构化剪枝方法的剪枝粒度小,可实现对模型参数更精细的控制,因此剪枝效果较好,但硬件实现上难以保证,因此实用性差;结构化剪枝方法的剪枝粒度较大,硬件实现更容易,但剪枝效果严重依赖剪枝参数的设置。
关于结构化剪枝方法中剪枝参数的设置目前有两种解决方法,方法一,为CNN各卷积层设置相同的全局剪枝率,但是该方法忽视了不同卷积层的参数冗余度以及对模型精度的影响是不同的。方法二,通过对比分析CNN各卷积层的剪枝与否对模型最终精度的影响,来评估各卷积层的重要性,从而根据最终影响效果为各卷积层设置合理的剪枝参数,但是该方法需要多次设置各卷积层剪枝参数并重复训练模型以验证精度,带来的工作量巨大,剪枝效率低。
发明内容
本发明实施例提供一种卷积神经网络的剪枝方法、装置、电子设备和存储介质,在尽量保证模型的精度不受损失的同时,实现了有效降低网络模型的参数量和计算复杂度,提高剪枝准确度和效率。
第一方面,本发明实施例提供了一种卷积神经网络的剪枝方法,包括:
确定待剪枝的卷积神经网络模型中各滤波器的权重值,并根据所述权重值确定各滤波器的重要性参数;
根据各卷积层中所有滤波器的重要性参数的分布情况分别确定各卷积层的冗余度;
根据所述各卷积层的冗余度确定各卷积层的剪枝参数,并基于所述剪枝参数分别对各卷积层进行剪枝。
第二方面,本发明实施例还提供了一种卷积神经网络的剪枝装置,包括:
滤波器参数确定模块,用于确定待剪枝的卷积神经网络模型中各滤波器的权重值,并根据所述权重值确定各滤波器的重要性参数;
卷积层冗余度确定模块,用于根据各卷积层中所有滤波器的重要性参数的分布情况分别确定各卷积层的冗余度;
卷积层剪枝模块,用于根据所述各卷积层的冗余度确定各卷积层的剪枝参数,并基于所述剪枝参数分别对各卷积层进行剪枝。
第三方面,本发明实施例还提供了一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明任一实施例所述的卷积神经网络的剪枝方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任一实施例所述的卷积神经网络的剪枝方法。
本发明实施例确定待剪枝的卷积神经网络模型中各滤波器的权重值,并根据权重值确定各滤波器的重要性参数;根据各卷积层中所有滤波器的重要性参数的分布情况分别确定各卷积层的冗余度;根据各卷积层的冗余度确定各卷积层的剪枝参数,并基于剪枝参数分别对各卷积层进行剪枝。本发明实施例通过量化分析CNN中每个卷积层滤波器的重要性分布,以确定该卷积层的冗余度,根据冗余度自适应地确定各层的剪枝参数,避免了对模型的频繁训练和验证,且有效降低网络模型的参数量和计算复杂度,提高剪枝准确度和效率。
附图说明
图1是本发明实施例一中的卷积神经网络的剪枝方法的流程图;
图2是本发明实施例二中的卷积神经网络的剪枝方法的流程图;
图3是本发明实施例三中的卷积神经网络的剪枝装置的结构示意图;
图4是本发明实施例四中的电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1是本发明实施例一中的卷积神经网络的剪枝方法的流程图,本实施例可适用于对卷积神经网络进行剪枝以减少网络参数量的情况,经过剪枝后的卷积神经网络可以适用于常规卷积神经网络的使用场景,如图像分类场景、图像分割场景或者图像增强场景等。该方法可以由卷积神经网络的剪枝装置来执行,该装置可以采用软件和/或硬件的方式实现,并可配置在电子设备中,例如电子设备可以是后台服务器等具有通信和计算能力的设备。如图1所示,该方法具体包括:
步骤101、确定待剪枝的卷积神经网络模型中各滤波器的权重值,并根据权重值确定各滤波器的重要性参数。
其中,待剪枝的卷积神经网络模型是指经过预训练后的CNN模型,预训练是指采用常规训练方法对CNN模型进行训练并达到精度收敛。经过预训练后可以确定CNN模型中模型参数;其中,模型参数包括模型中各滤波器的权重参数和偏置参数。
具体的,对CNN模型进行预训练后,对预训练后的CNN模型进行剪枝操作。在进行剪枝操作时,首先确定预训练后的待剪枝CNN模型中各滤波器的权重参数值。由于模型中每个滤波器的权重值是一个多维张量,例如三维张量,若直接采用多维张量表示的权重值确定冗余度则会造成计算复杂,因此在本发明实施例中,根据多维张量表示的权重值确定一个重要性参数,用该重要性参数保证该滤波器的权重在整个网络中的影响程度。示例性的,在确定各滤波器的权重值后,采用L1/L2范数计算方法或者FPGM法(基于几何中心的滤波器评价指标)对多维张量表示的权重值分别进行计算,得到的计算结果即为对应该权重值的参数性参数,即可得到CNN模型中各滤波器的重要性参数。其中,L1/L2范数计算方法或者FPGM法属于本领域的常规技术,在此不再赘述。
步骤102、根据各卷积层中所有滤波器的重要性参数的分布情况分别确定各卷积层的冗余度。
由于模型中每个卷积层中包含了若干个滤波器权重,每个滤波器权重计算得到一个重要性参数后,每个卷积层中会包括若干个重要性参数。根据各卷积层中所有滤波器的重要性参数得到重要性参数的分布情况,通过量化该分布的峰化程度或者平坦程度,以确定各卷积层的冗余度。
具体的,对CNN模型中的每一个卷积层,统计其滤波器的重要性参数的分布,根据分布情况计算每一个卷积层的冗余度。在确定各卷积层中所有滤波器的重要性参数的分布情况时,若根据目标卷积层中重要性参数的分布情况确定该卷积层的分布出现峰化程度明显的现象,即在该卷积层中存在重要性参数值相差较大的滤波器,表明该卷积层的冗余度较大,不同滤波器对该卷积层的贡献度相差较多;若根据目标卷积层中重要性参数的分布情况确定该卷积层的分布未出现峰化程度明显的现象或者处于平坦分布状态,即在该卷积层中各滤波器的重要性参数值相差较小,表明该卷积层的冗余度较小,不同滤波器对该卷积层的贡献度相似。
基于每个卷积层内的滤波器的重要性分布的峰化(或平坦)程度量化各卷积层的冗余度,兼顾了剪枝效果和高效性,实现各卷积层的剪枝参数的自适应设置。
在一个可行的实施例中,步骤102,包括:
对各卷积层中所有滤波器的重要性参数进行归一化处理,分别得到各卷积层所有滤波器的归一化重要性参数;
确定目标卷积层所有滤波器的归一化重要性参数的标准差,作为目标卷积层的冗余度。
在量化各卷积层的重要性参数的分布情况,对各卷积层的冗余度进行确定时,由于不同卷积层中包括的滤波器数量存在差别,且不同滤波器的权重值也存在数量级上的差别,因此重要性参数值也会存在数量级上的差别,导致无法根据重要性参数对不同卷积层进行横向比较。若直接根据重要性参数值量化得到冗余度,则会造成不同卷积层之间的冗余度比较存在数量级上的偏差,给最终冗余度确定结果带来一定的偏差影响。所以在本发明实施例中,在确定冗余度之前,首先对各卷积层中所有滤波器的重要性参数进行归一化处理,使得各卷积层的各滤波器的重要性参数处于同一数量级上,便于后续冗余度的确定。
针对每个卷积层,统计该层内部所有滤波器的重要性参数的分布,并对该分布进行归一化处理,使得该层内所有滤波器的归一化重要性参数的累加和为1。基于归一化后滤波器的重要性参数的分布情况,量化其分布的峰化程度,得到目标卷积层的冗余度。在本发明实施例中,采用标准差量化方法对滤波器的重要性参数分布的峰化程度进行量化。具体的,标准差量化方法具体为计算目标卷积层中所有滤波器的归一化重要性参数的标准差,作为该目标卷积层的冗余度,按照该标准差量化方法依次确定每一个卷积层的冗余度。
其中,标准差量化方法通过如下公式进行确定:
Rl=std(Il);
其中,Rl表示第l个卷积层的冗余度;Il为由第l个卷积层中所有滤波器的归一化重要性参数构成的数组;std(·)表示标准差运算。
示例性的,在上述示例的基础上,滤波器的重要性参数采用滤波器权重的L2范数,其中,L2范数简单高效,具备较好的通用性,适用于各种类型的CNN网络架构。在确定目标卷积层的冗余度时,对目标卷积层中滤波器权重的L2范数进行归一化处理,得到归一化L2范数;其中,目标卷积层中所有滤波器权重的归一化L2范数之和为1。计算目标卷积层中所有滤波器权重的归一化L2范数的标准差,作为该卷积层的冗余度。
在一个可行的实施例中,步骤102,包括:
对各卷积层中所有滤波器的重要性参数进行归一化处理,分别得到各卷积层所有滤波器的归一化重要性参数;
确定目标卷积层所有滤波器的归一化重要性参数分布与均匀分布之间的KL散度,作为目标卷积层的冗余度。
在本发明实施例中,采用KL散度量化方法对滤波器的重要性参数分布的峰化程度进行量化。具体的,KL散度量化方法具体为计算目标卷积层中所有滤波器的归一化重要性参数分布与理想均匀分布之间的KL散度,作为该目标卷积层的冗余度,按照该KL散度量化方法依次确定每一个卷积层的冗余度。
其中,KL散度量化方法通过如下公式进行确定:
其中,Rl表示第l个卷积层的冗余度;i表示第l个卷积层中滤波器的序号;ul i表示第l个卷积层中序号为i的滤波器的理想均匀分布值;Il i表示第l个卷积层中序号为i的滤波器的归一化重要性参数。
理想均匀分布是指目标卷积层中各滤波器的重要性参数无差别,且为了便于归一化重要性参数处于同一数量级,目标卷积层所有滤波器的理想均匀分布累加和为1。示例性的,目标卷积层中共有四个滤波器,则该四个滤波器的理想均匀分布为[0.25、0.25、0.25、0.25]。
由于KL散度可以量化两个分布之间的差异性,当归一化重要性参数分布与理想均匀分布之间的KL散度越大,代表归一化重要性参数分布越偏离理想均匀分布,该分布的峰化程度越大,即该卷积层的冗余度越高。
步骤103、根据各卷积层的冗余度确定各卷积层的剪枝参数,并基于剪枝参数分别对各卷积层进行剪枝。
其中,剪枝参数用于对该卷积层需要裁剪的冗余参数量进行表征。示例性的,剪枝参数包括剪枝率,表示该卷积层需要裁剪的滤波器所占比例,例如剪枝率为20%,待剪枝的卷积层共有十个滤波器,表示该卷积层需要裁剪掉2个滤波器。具体数量的设置规则可以根据实际情况进行设置,在此不作限制。
具体的,基于预先确定的冗余度和剪枝参数之间的映射关系,根据CNN模型各卷积层的冗余度,设置各卷积层的剪枝参数。其中,预先确定的冗余度和剪枝率之间的映射关系冗余度越高的卷积层,剪枝率越大。在一个可行的实施例中,冗余度与剪枝参数呈正相关关系。
在确定CNN模型各卷积层的剪枝参数后,按照目标卷积层的剪枝参数完成对该目标卷积层中滤波器的裁剪,在对所有卷积层剪枝完成后,完成对CNN模型的剪枝。示例性的,确定目标卷积层的剪枝率为20%,目标卷积层共有十个滤波器,表示该卷积层需要裁剪掉2个滤波器,确定所有滤波器中重要性指标最低的两个滤波器为需要裁剪掉的滤波器,即冗余滤波器,由于冗余滤波器的重要性指标最低,表示其对该目标卷积层的影响最小,裁剪掉不会过多影响网络的整体效果。本示例仅仅是提供一种裁剪方式的示例,其他常规的网络剪枝手段也属于本发明的保护范围,在此不一一赘述。
在一个可行的实施例中,基于如下公式确定各卷积层的剪枝参数:
Pl=α(Rl)β;
其中,Pl表示第l个卷积层的剪枝参数,Rl表示第l个卷积层的冗余度,α用于控制整体剪枝参数,β用于控制各卷积层冗余度和剪枝参数之间的相关程度。
在确定CNN模型各卷积层的冗余度后,为了便于统一各层在冗余度上的数量级,对所有卷积层的冗余度进行归一化处理,使得各卷积层的冗余度取值在0和1之间。示例性的,将各卷积层中冗余度的最大值归一化为1,其他卷积层按照最大值归一化的比例进行等比例缩放。基于归一化后的各卷积层的冗余度,按照上述公式根据冗余度映射得到各卷积层的剪枝参数,如剪枝率。
其中,α的取值范围为0≤α≤1;β用于控制公式所表征的映射曲线的形状,满足β>0。基于该映射公式,可以严格保证各层冗余度与剪枝参数之间的正相关关系,同时具备较好的灵活性,便于根据实际剪枝效果或自定义需求,灵活调整从冗余度到剪枝参数的映射关系。示例性的,α取值为0.5,β取值为1,目标卷积层归一化后冗余度为0.5,则按照上述映射公式确定目标卷积层的剪枝率为0.5×0.5=0.25,表示该目标卷积层需要剪去25%比例的滤波器。
本发明实施例通过量化分析CNN中每个卷积层滤波器的重要性分布,以确定该卷积层的冗余度,根据冗余度自适应地确定各层的剪枝参数,避免了对模型的频繁训练和验证,且有效降低网络模型的参数量和计算复杂度,提高剪枝准确度和效率。
实施例二
图2是本发明实施例二中的卷积神经网络的剪枝方法的流程图,本发明实施例,在上述实施例的基础上进行进一步的优化。如图2所示,该方法具体包括:
步骤201、对待剪枝的卷积神经网络模型进行结构稀疏化调整训练,得到稀疏化后的卷积神经网络模型。
为了提高剪枝效果和准确度,在本发明实施例中对待剪枝的卷积神经网络进行结构稀疏化训练,使得调整训练后的卷积神经网络模型中滤波器的参数更稀疏,参数越稀疏,越有利于确定冗余滤波器,进而提高剪枝准确率。
具体的,在得到预训练后的卷积神经网络模型后,基于该模型进行新一轮的结构稀疏化调整训练,提升模型参数的结构稀疏化程度,进一步提升剪枝效果。
在一个可行的实施例中,对待剪枝的卷积神经网络模型进行结构稀疏化调整训练,包括:
在待剪枝的卷积神经网络模型原有损失函数的基础上,增加结构正则化项,得到调整损失函数;
基于调整损失函数以及调整学习率,对待剪枝的卷积神经网络模型进行结构稀疏化调整训练;
其中,调整学习率小于待剪枝的卷积神经网络模型的原有学习率;调整损失函数的表达式为:
Lnew=Lold+λRg;
其中,Lnew表示调整损失函数;Lold表示待剪枝的卷积神经网络模型原有损失函数;λ为超参数,用于平衡模型调整的稀疏化程度和精度;Rg表示结构正则化项,Wi表示所有滤波器中第i个滤波器的权重值,||Wi||p表示权重Wi的L-p范数,其中,p=1或p=2。
具体的,首先确定结构稀疏化调整训练时的调整损失函数,在本发明实施例中,调整损失函数为待剪枝的卷积神经网络模型在预训练时原有损失函数的基础上增加一个结构正则化项。其中,结构正则化项用于表征模型参数的整体稀疏水平,具体用模型中所有滤波器权重的L1范数或者L2范数的累加和进行表示,在调整损失函数中,λ可以根据经验进行设置,例如一般将λ设置为0.1。其次,确定调整学习率,将学习率调整为比待剪枝的卷积神经网络模型在预训练时设置的学习率更小。示例性的,调整学习率为原学习率的十分之一左右。基于调整损失函数和调整学习率对待剪枝的卷积神经网络模型进行结构稀疏化调整训练,得到结构稀疏化后的新模型。
与原来的预训练模型相比,结构稀疏化调整训练后的新模型的精度损失一般可忽略,而新模型参数的稀疏化程度却显著提升,更有利于模型的剪枝。
步骤202、确定稀疏化后的卷积神经网络模型中各滤波器的权重值,并根据权重值确定各滤波器的重要性参数。
确定稀疏化后新的卷积神经网络模型总各滤波器的权重值,由于新模型参数的稀疏化程度显著提升,则各滤波器的权重值的取值数量级将减小,有利于确定冗余滤波器。根据各滤波器新的权重值确定重要性参数,具体确定方法可以参照上述实施例,在此不再赘述。示例性的,采用L2范数计算方式,确定权重值的L2范数为与该权重值对应的重要性参数。
步骤203、根据各卷积层中所有滤波器的重要性参数的分布情况分别确定各卷积层的冗余度。
步骤204、根据各卷积层的冗余度确定各卷积层的剪枝参数,并基于剪枝参数分别对各卷积层进行剪枝。
本发明实施例通过对待剪枝的卷积神经网络进行结构稀疏化调整训练,以提高模型参数的稀疏化程度,基于稀疏化后的新模型进行剪枝,有利于提高剪枝准确度和效率。
实施例三
图3是本发明实施例三中的卷积神经网络的剪枝装置的结构示意图,本实施例可适用于对卷积神经网络进行剪枝以减少网络参数量的情况。如图3所示,该装置包括:
滤波器参数确定模块310,用于确定待剪枝的卷积神经网络模型中各滤波器的权重值,并根据所述权重值确定各滤波器的重要性参数;
卷积层冗余度确定模块320,用于根据各卷积层中所有滤波器的重要性参数的分布情况分别确定各卷积层的冗余度;
卷积层剪枝模块330,用于根据所述各卷积层的冗余度确定各卷积层的剪枝参数,并基于所述剪枝参数分别对各卷积层进行剪枝。
本发明实施例通过量化分析CNN中每个卷积层滤波器的重要性分布,以确定该卷积层的冗余度,根据冗余度自适应地确定各层的剪枝参数,避免了对模型的频繁训练和验证,且有效降低网络模型的参数量和计算复杂度,提高剪枝准确度和效率。
可选的,卷积层冗余度确定模块,具体用于:
对各卷积层中所有滤波器的重要性参数进行归一化处理,分别得到各卷积层所有滤波器的归一化重要性参数;
确定目标卷积层所有滤波器的归一化重要性参数的标准差,作为目标卷积层的冗余度。
可选的,卷积层冗余度确定模块,具体用于:
对各卷积层中所有滤波器的重要性参数进行归一化处理,分别得到各卷积层所有滤波器的归一化重要性参数;
确定目标卷积层所有滤波器的归一化重要性参数分布与均匀分布之间的KL散度,作为目标卷积层的冗余度。
可选的,所述冗余度与所述剪枝参数呈正相关关系。
可选的,基于如下公式确定各卷积层的剪枝参数:
Pl=α(Rl)β;
其中,Pl表示第l个卷积层的剪枝参数,Rl表示第l个卷积层的冗余度,α用于控制整体剪枝参数,β用于控制各卷积层冗余度和剪枝参数之间的相关程度。
可选的,滤波器参数确定模块,包括:
模型调整训练单元,用于对所述待剪枝的卷积神经网络模型进行结构稀疏化调整训练,得到稀疏化后的卷积神经网络模型;
权重值确定单元,用于确定所述稀疏化后的卷积神经网络模型中各滤波器的权重值。
可选的,模型调整训练单元,具体用于:
在所述待剪枝的卷积神经网络模型原有损失函数的基础上,增加结构正则化项,得到调整损失函数;
基于所述调整损失函数以及调整学习率,对所述待剪枝的卷积神经网络模型进行结构稀疏化调整训练;
其中,所述调整学习率小于所述待剪枝的卷积神经网络模型的原有学习率;所述调整损失函数的表达式为:Lnew=Lold+λRg;其中,Lnew表示调整损失函数;Lold表示所述待剪枝的卷积神经网络模型原有损失函数;λ为超参数,用于平衡模型调整的稀疏化程度和精度;Rg表示结构正则化项,Wi表示所有滤波器中第i个滤波器的权重值,||Wi||p表示权重Wi的L-p范数,其中,p=1或p=2。
本发明实施例所提供的卷积神经网络的剪枝装置可执行本发明任意实施例所提供的卷积神经网络的剪枝方法,具备执行卷积神经网络的剪枝方法相应的功能模块和有益效果。
实施例四
图4是本发明实施例四提供的一种电子设备的结构示意图。图4示出了适于用来实现本发明实施方式的示例性电子设备12的框图。图4显示的电子设备12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图4所示,电子设备12以通用计算设备的形式表现。电子设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储装置28,连接不同系统组件(包括系统存储装置28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储装置总线或者存储装置控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
电子设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储装置28可以包括易失性存储装置形式的计算机系统可读介质,例如随机存取存储装置(RAM)30和/或高速缓存存储装置32。电子设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图4未显示,通常称为“硬盘驱动器”)。尽管图4中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储装置28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储装置28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
电子设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该设备12交互的设备通信,和/或与使得该设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,电子设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图4所示,网络适配器20通过总线18与电子设备12的其它模块通信。应当明白,尽管图4中未示出,可以结合电子设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元16通过运行存储在系统存储装置28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的卷积神经网络的剪枝方法,包括:
确定待剪枝的卷积神经网络模型中各滤波器的权重值,并根据所述权重值确定各滤波器的重要性参数;
根据各卷积层中所有滤波器的重要性参数的分布情况分别确定各卷积层的冗余度;
根据所述各卷积层的冗余度确定各卷积层的剪枝参数,并基于所述剪枝参数分别对各卷积层进行剪枝。
实施例五
本发明实施例五还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例所提供的卷积神经网络的剪枝方法,包括:
确定待剪枝的卷积神经网络模型中各滤波器的权重值,并根据所述权重值确定各滤波器的重要性参数;
根据各卷积层中所有滤波器的重要性参数的分布情况分别确定各卷积层的冗余度;
根据所述各卷积层的冗余度确定各卷积层的剪枝参数,并基于所述剪枝参数分别对各卷积层进行剪枝。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络包括局域网(LAN)或广域网(WAN)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种卷积神经网络的剪枝方法,其特征在于,包括:
确定待剪枝的卷积神经网络模型中各滤波器的权重值,并根据所述权重值确定各滤波器的重要性参数;
根据各卷积层中所有滤波器的重要性参数的分布情况分别确定各卷积层的冗余度;
根据所述各卷积层的冗余度确定各卷积层的剪枝参数,并基于所述剪枝参数分别对各卷积层进行剪枝。
2.根据权利要求1所述的方法,其特征在于,根据各卷积层中所有滤波器的重要性参数的分布情况分别确定各卷积层的冗余度,包括:
对各卷积层中所有滤波器的重要性参数进行归一化处理,分别得到各卷积层所有滤波器的归一化重要性参数;
确定目标卷积层所有滤波器的归一化重要性参数的标准差,作为目标卷积层的冗余度。
3.根据权利要求1所述的方法,其特征在于,根据各卷积层中所有滤波器的重要性参数的分布情况分别确定各卷积层的冗余度,包括:
对各卷积层中所有滤波器的重要性参数进行归一化处理,分别得到各卷积层所有滤波器的归一化重要性参数;
确定目标卷积层所有滤波器的归一化重要性参数分布与均匀分布之间的KL散度,作为目标卷积层的冗余度。
4.根据权利要求1所述的方法,其特征在于,所述冗余度与所述剪枝参数呈正相关关系。
5.根据权利要求1所述的方法,其特征在于,基于如下公式确定各卷积层的剪枝参数:
Pl=α(Rl)β;
其中,Pl表示第l个卷积层的剪枝参数,Rl表示第l个卷积层的冗余度,α用于控制整体剪枝参数,β用于控制各卷积层冗余度和剪枝参数之间的相关程度。
6.根据权利要求1所述的方法,其特征在于,确定待剪枝的卷积神经网络模型中各滤波器的权重值,包括:
对所述待剪枝的卷积神经网络模型进行结构稀疏化调整训练,得到稀疏化后的卷积神经网络模型;
确定所述稀疏化后的卷积神经网络模型中各滤波器的权重值。
7.根据权利要求6所述的方法,其特征在于,对所述待剪枝的卷积神经网络模型进行结构稀疏化调整训练,包括:
在所述待剪枝的卷积神经网络模型原有损失函数的基础上,增加结构正则化项,得到调整损失函数;
基于所述调整损失函数以及调整学习率,对所述待剪枝的卷积神经网络模型进行结构稀疏化调整训练;
其中,所述调整学习率小于所述待剪枝的卷积神经网络模型的原有学习率;所述调整损失函数的表达式为:
Lnew=Lold+λRg;
8.一种卷积神经网络的剪枝装置,其特征在于,包括:
滤波器参数确定模块,用于确定待剪枝的卷积神经网络模型中各滤波器的权重值,并根据所述权重值确定各滤波器的重要性参数;
卷积层冗余度确定模块,用于根据各卷积层中所有滤波器的重要性参数的分布情况分别确定各卷积层的冗余度;
卷积层剪枝模块,用于根据所述各卷积层的冗余度确定各卷积层的剪枝参数,并基于所述剪枝参数分别对各卷积层进行剪枝。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的卷积神经网络的剪枝方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的卷积神经网络的剪枝方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110598596.XA CN113255910A (zh) | 2021-05-31 | 2021-05-31 | 卷积神经网络的剪枝方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110598596.XA CN113255910A (zh) | 2021-05-31 | 2021-05-31 | 卷积神经网络的剪枝方法、装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113255910A true CN113255910A (zh) | 2021-08-13 |
Family
ID=77183603
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110598596.XA Pending CN113255910A (zh) | 2021-05-31 | 2021-05-31 | 卷积神经网络的剪枝方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113255910A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114154626A (zh) * | 2021-12-14 | 2022-03-08 | 中国人民解放军国防科技大学 | 基于滤波器权重综合评估的深度神经网络滤波器剪枝方法 |
CN114330714A (zh) * | 2022-03-08 | 2022-04-12 | 北京环境特性研究所 | 卷积神经网络剪枝优化方法、装置、电子设备及存储介质 |
CN114358254A (zh) * | 2022-01-05 | 2022-04-15 | 腾讯科技(深圳)有限公司 | 模型处理方法以及相关产品 |
WO2023102844A1 (zh) * | 2021-12-09 | 2023-06-15 | 北京大学深圳研究生院 | 剪枝模块的确定方法、装置及计算机可读存储介质 |
CN116992945A (zh) * | 2023-09-27 | 2023-11-03 | 之江实验室 | 一种基于贪心策略反向通道剪枝的图像处理方法及装置 |
WO2023217263A1 (zh) * | 2022-05-13 | 2023-11-16 | 北京字跳网络技术有限公司 | 数据处理方法、装置、设备及介质 |
-
2021
- 2021-05-31 CN CN202110598596.XA patent/CN113255910A/zh active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023102844A1 (zh) * | 2021-12-09 | 2023-06-15 | 北京大学深圳研究生院 | 剪枝模块的确定方法、装置及计算机可读存储介质 |
CN114154626A (zh) * | 2021-12-14 | 2022-03-08 | 中国人民解放军国防科技大学 | 基于滤波器权重综合评估的深度神经网络滤波器剪枝方法 |
CN114154626B (zh) * | 2021-12-14 | 2022-08-16 | 中国人民解放军国防科技大学 | 一种用于图像分类任务的滤波器剪枝方法 |
CN114358254A (zh) * | 2022-01-05 | 2022-04-15 | 腾讯科技(深圳)有限公司 | 模型处理方法以及相关产品 |
CN114358254B (zh) * | 2022-01-05 | 2024-08-20 | 腾讯科技(深圳)有限公司 | 模型处理方法以及相关产品 |
CN114330714A (zh) * | 2022-03-08 | 2022-04-12 | 北京环境特性研究所 | 卷积神经网络剪枝优化方法、装置、电子设备及存储介质 |
WO2023217263A1 (zh) * | 2022-05-13 | 2023-11-16 | 北京字跳网络技术有限公司 | 数据处理方法、装置、设备及介质 |
CN116992945A (zh) * | 2023-09-27 | 2023-11-03 | 之江实验室 | 一种基于贪心策略反向通道剪枝的图像处理方法及装置 |
CN116992945B (zh) * | 2023-09-27 | 2024-02-13 | 之江实验室 | 一种基于贪心策略反向通道剪枝的图像处理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113255910A (zh) | 卷积神经网络的剪枝方法、装置、电子设备和存储介质 | |
Schorn et al. | An efficient bit-flip resilience optimization method for deep neural networks | |
WO2022042123A1 (zh) | 图像识别模型生成方法、装置、计算机设备和存储介质 | |
CN111062382A (zh) | 用于目标检测网络的通道剪枝方法 | |
WO2022078002A1 (zh) | 一种图像处理方法、装置、设备及可读存储介质 | |
CN110363297A (zh) | 神经网络训练及图像处理方法、装置、设备和介质 | |
US20200082213A1 (en) | Sample processing method and device | |
CN112465114A (zh) | 基于优化通道剪枝的快速目标检测方法及系统 | |
CN110874627B (zh) | 数据处理方法、数据处理装置及计算机可读介质 | |
US20230073835A1 (en) | Structured Pruning of Vision Transformer | |
CN114444668A (zh) | 网络量化方法及系统及装置及介质及图像处理方法 | |
CN114332500A (zh) | 图像处理模型训练方法、装置、计算机设备和存储介质 | |
CN114677548A (zh) | 基于阻变存储器的神经网络图像分类系统及方法 | |
CN113408070B (zh) | 发动机参数的确定方法、装置、设备及存储介质 | |
CN113240090B (zh) | 图像处理模型生成方法、图像处理方法、装置及电子设备 | |
CN113902114A (zh) | 神经网络模型的量化方法、装置和系统、电子设备和存储介质 | |
CN111126501B (zh) | 一种图像识别方法、终端设备及存储介质 | |
US11507782B2 (en) | Method, device, and program product for determining model compression rate | |
WO2023185209A1 (zh) | 模型剪枝 | |
JP7546630B2 (ja) | ニューラルネットワークの最適化方法及びコンピュータシステム、並びにコンピュータ可読記憶媒体 | |
CN116957007A (zh) | 神经网络训练时的特征量化方法、装置、介质及程序产品 | |
CN113033804B (zh) | 一种面向遥感图像的卷积神经网络压缩方法 | |
CN113065644B (zh) | 用于压缩神经网络模型的方法及装置、设备和介质 | |
CN116959489B (zh) | 语音模型的量化方法、装置、服务器及存储介质 | |
CN118381582B (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 |
Application publication date: 20210813 |
|
RJ01 | Rejection of invention patent application after publication |