CN116402116B - 神经网络的剪枝方法、系统、设备、介质及图像处理方法 - Google Patents
神经网络的剪枝方法、系统、设备、介质及图像处理方法 Download PDFInfo
- Publication number
- CN116402116B CN116402116B CN202310652433.4A CN202310652433A CN116402116B CN 116402116 B CN116402116 B CN 116402116B CN 202310652433 A CN202310652433 A CN 202310652433A CN 116402116 B CN116402116 B CN 116402116B
- Authority
- CN
- China
- Prior art keywords
- neural network
- convolution
- network model
- convolutional neural
- 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.)
- Active
Links
- 238000013138 pruning Methods 0.000 title claims abstract description 128
- 238000000034 method Methods 0.000 title claims abstract description 73
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 50
- 238000003672 processing method Methods 0.000 title claims abstract description 10
- 238000013527 convolutional neural network Methods 0.000 claims abstract description 225
- 238000012549 training Methods 0.000 claims abstract description 69
- 238000012545 processing Methods 0.000 claims abstract description 45
- 238000003062 neural network model Methods 0.000 claims abstract description 44
- 239000006185 dispersion Substances 0.000 claims description 46
- 238000004422 calculation algorithm Methods 0.000 claims description 34
- 230000006870 function Effects 0.000 claims description 23
- 230000006835 compression Effects 0.000 claims description 19
- 238000007906 compression Methods 0.000 claims description 19
- 238000004364 calculation method Methods 0.000 claims description 18
- 238000004821 distillation Methods 0.000 claims description 17
- 238000011156 evaluation Methods 0.000 claims description 15
- 239000013598 vector Substances 0.000 claims description 15
- 238000007621 cluster analysis Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 9
- 230000001960 triggered effect Effects 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 13
- 238000010606 normalization Methods 0.000 description 5
- 238000001514 detection method Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000003709 image segmentation Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000011524 similarity measure 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
-
- 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/0464—Convolutional networks [CNN, ConvNet]
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
技术领域
本发明涉及图像处理技术领域,特别是涉及一种神经网络的剪枝方法、系统、设备、介质及图像处理方法。
背景技术
卷积神经网络在计算机视觉领域取得了巨大的成功,例如,通过卷积神经网络进行图像分类、目标检测、图像分割等。然而,随着卷积神经网络的发展,虽然准确率越来越高,但是计算量和参数量也越来越大,使得卷积神经网络很难应用在资源受限的设备中。因此,压缩卷积神经网络的参数量和计算量成为在资源受限和有实时性要求的边缘设备中部署人工智能的关键。为了解决卷积神经网络过于庞大的问题,一种方式是直接设计紧凑的神经网络,并从头开始训练,另一种方式是压缩现有的大型网络。压缩方式主要有3类,分别为剪枝、量化、低秩分解。其中,剪枝可以分为结构化剪枝和非结构化剪枝,非结构化剪枝主要通过裁剪卷积核中的权重来压缩模型,通常需要特别的硬件来支持计算裁剪后的网络,否则很难到达实际的加速效果。结构化剪枝则是通过裁剪整个卷积核或卷积层来压缩模型,裁剪后的模型容易被直接部署。
目前的剪枝方案中,基本方法是通过一套重要性标准来选择被裁剪的卷积核,例如通过分析BN(Batch Normalization,批量标准化)层参数来确定被裁剪的卷积核、使用第一梯度来评估卷积核重要性进而确定被裁剪的卷积核。也就是说,目前的剪枝方法是根据重要性评估结果,将不重要的卷积核裁剪,但是,目前的方案忽略了卷积核的重复性,即,被保留的卷积核可能存在功能上的重复,而被裁剪的卷积核在功能上可能还有一定的必要性,使得目前的剪枝方法在准确率提升方面以及降低网络复杂度方面均有提升空间。
综上所述,如何有效地进行卷积神经网络的剪枝,以有效地降低卷积神经网络的复杂度,并且保证剪枝后的模型进行图像数据处理的准确率,是目前本领域技术人员急需解决的技术问题。
发明内容
本发明的目的是提供一种神经网络的剪枝方法、系统、设备、介质及图像处理方法,以有效地进行神经网络的剪枝,降低卷积神经网络的复杂度,并且保证剪枝后的模型进行图像数据处理的准确率。
为解决上述技术问题,本发明提供如下技术方案:
一种神经网络的剪枝方法,包括:
获取经过了预训练的第一卷积神经网络模型;
确定出所述第一卷积神经网络模型各层卷积层各自的裁剪率;
基于各层所述卷积层各自的裁剪率,确定出各层所述卷积层各自的分组数量;
基于卷积核之间的相似度,按照相似度高的卷积核划分至同组的原则,对每一层的所述卷积层中的卷积核进行分组;
对各个所述卷积核进行重要性评估,保留各个分组中重要性最高的卷积核并对其余卷积核进行剪枝,得到剪枝之后的第二卷积神经网络模型;
其中,对于任意1层所述卷积层,对所述卷积层中的卷积核进行分组时采用的分组数量为基于所述卷积层的裁剪率所确定出的分组数量。
在一种实施方式中,还包括:
将剪枝之后得到的所述第二卷积神经网络模型中的参数作为所述第二卷积神经网络模型的初始参数,对所述第二卷积神经网络模型进行训练;
当触发了训练终止条件时,得到训练之后的目标卷积神经网络模型,以基于所述目标卷积神经网络模型进行图像数据处理。
在一种实施方式中,对所述第二卷积神经网络模型进行训练,包括:
基于集成高温知识蒸馏算法,对所述第二卷积神经网络模型进行训练。
在一种实施方式中,所述集成高温知识蒸馏算法所使用的损失函数Loss表示为:
;
其中,Z i 表示的是对所述第二卷积神经网络模型进行训练的过程中,将待识别图像输入至当前的所述第二卷积神经网络模型之后,当前的所述第二卷积神经网络模型输出向量的y个数值中的最大值,Z j 表示的是当前的所述第二卷积神经网络模型输出向量中的y个数值中的第j个数值,1≤j≤y,y表示的是总标签数量,T表示的是温度系数,exp表示的是以自然常数e为底的指数函数,S i 表示的是将所述待识别图像输入至所述第一卷积神经网络模型之后,所述第一卷积神经网络模型的识别结果;H i 表示的所述待识别图像的实际标签;表示的是权重参数。
在一种实施方式中,在基于集成高温知识蒸馏算法,对所述第二卷积神经网络模型进行训练的过程中,所述权重参数逐渐增大。
在一种实施方式中,所述训练终止条件包括:
训练次数达到设定次数阈值。
在一种实施方式中,在得到训练之后的目标卷积神经网络模型之后,还包括:
将设定数量的图像输入至目标卷积神经网络模型中,以基于所述目标卷积神经网络模型进行图像数据处理,并且对所述目标卷积神经网络模型的图像数据处理准确率进行统计。
在一种实施方式中,还包括:
判断所述目标卷积神经网络模型的图像数据处理准确率是否高于第一准确率阈值;
如果否,则输出第一提示信息。
在一种实施方式中,在得到训练之后的目标卷积神经网络模型之后,还包括:
对所述目标卷积神经网络模型的压缩率进行统计。
在一种实施方式中,还包括:
判断所述目标卷积神经网络模型的压缩率是否低于第一压缩率阈值;
如果是,则输出第二提示信息。
在一种实施方式中,所述确定出所述第一卷积神经网络模型各层卷积层各自的裁剪率,包括:
确定出所述第一卷积神经网络模型各层卷积层各自的相对离散度;
按照相对离散度与裁剪率呈负相关的原则,基于各层所述卷积层各自的相对离散度,确定出各层所述卷积层各自的裁剪率。
在一种实施方式中,所述确定出所述第一卷积神经网络模型各层卷积层各自的相对离散度,包括:
按照的计算方式,确定出所述第一卷积神经网络模型各层卷积层各自的相对离散度;
其中,KD i 表示的是所述第一卷积神经网络模型各层卷积层中的第i层卷积层的相对离散度,V i 表示的是所述第i层卷积层的离散度,表示的是所述第一卷积神经网络模型各层卷积层的离散度的最大值。
在一种实施方式中,V i 为通过的计算方式确定出的V i ;
其中,表示的是所述第i层卷积层的第r个卷积核与0之间的欧氏距离,n i 表示的是第i层卷积层的卷积核总数量,u i 表示的是所述第i层卷积层的n i 个卷积核的平均值距离。
在一种实施方式中,所述确定出所述第一卷积神经网络模型各层卷积层各自的裁剪率,包括:
将所述第一卷积神经网络模型各层卷积层各自的裁剪率均设置为预设的第一数值。
在一种实施方式中,所述对各个所述卷积核进行重要性评估,保留各个分组中重要性最高的卷积核并对其余卷积核进行剪枝,包括:
计算各个卷积核的L1范数,将各个分组中L1范数最大的卷积核保留并对其余卷积核进行剪枝。
在一种实施方式中,所述对各个所述卷积核进行重要性评估,保留各个分组中重要性最高的卷积核并对其余卷积核进行剪枝,包括:
计算各个卷积核的L2范数,将各个分组中L2范数最大的卷积核保留并对其余卷积核进行剪枝。
在一种实施方式中,所述基于卷积核之间的相似度,按照相似度高的卷积核划分至同组的原则,对每一层的所述卷积层中的卷积核进行分组,包括:
基于卷积核之间的相似度,按照相似度高的卷积核划分至同组的原则,通过聚类分析算法对每一层的所述卷积层中的卷积核进行分组。
在一种实施方式中,所述基于卷积核之间的相似度,按照相似度高的卷积核划分至同组的原则,通过聚类分析算法对每一层的所述卷积层中的卷积核进行分组,包括:
基于卷积核之间的余弦相似度,按照相似度高的卷积核划分至同组的原则,通过聚类分析算法对每一层的所述卷积层中的卷积核进行分组。
一种神经网络的剪枝系统,包括:
原始模型获取模块,用于获取经过了预训练的第一卷积神经网络模型;
裁剪率确定模块,用于确定出所述第一卷积神经网络模型各层卷积层各自的裁剪率;
分组数量确定模块,用于基于各层所述卷积层各自的裁剪率,确定出各层所述卷积层各自的分组数量;
聚类分组模块,用于基于卷积核之间的相似度,按照相似度高的卷积核划分至同组的原则,对每一层的所述卷积层中的卷积核进行分组;
剪枝模块,用于对各个所述卷积核进行重要性评估,保留各个分组中重要性最高的卷积核并对其余卷积核进行剪枝,得到剪枝之后的第二卷积神经网络模型;
其中,对于任意1层所述卷积层,对所述卷积层中的卷积核进行分组时采用的分组数量为基于所述卷积层的裁剪率所确定出的分组数量。
一种神经网络的剪枝设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如上述所述的神经网络的剪枝方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述的神经网络的剪枝方法的步骤。
一种图像数据处理方法,包括:
获取待处理的图像;
将所述图像输入至第二卷积神经网络模型中以基于所述第二卷积神经网络模型进行图像数据处理;
接收所述第二卷积神经网络模型输出的处理结果;
其中,所述第二卷积神经网络模型为如上述所述的神经网络的剪枝方法中所得到的第二卷积神经网络模型。
应用本发明实施例所提供的技术方案,有益效果在于:本申请的方案中,获取经过了预训练的第一卷积神经网络模型之后,可以确定出第一卷积神经网络模型各层卷积层各自的裁剪率。在进行各层卷积层的卷积核的裁剪时,本申请的方案中不是直接裁剪,而是先进行聚类分组,即,基于各层卷积层各自的裁剪率,确定出各层卷积层各自的分组数量,然后基于卷积核之间的相似度,按照相似度高的卷积核划分至同组的原则,对每一层的卷积层中的卷积核进行分组。也就是说,在每一层卷积层中,相似度高的卷积核的特征是相似的,即功能上是相近的,因此会被置入相同分组中。确定出了各个分组之后,再对各个卷积核进行重要性评估,仅保留各个分组中重要性最高的卷积核并对其余卷积核进行剪枝,便得到了剪枝之后的第二卷积神经网络模型。可以看出,由于相同分组中的卷积核功能相近,因此只需要保留分组中重要性最高的卷积核,从而有效地降低了卷积神经网络的复杂度,使得第二卷积神经网络模型可以部署在资源受限的设备中,即降低了对于设备的计算和存储资源的要求。并且由于不同分组中均有卷积核的保留,因此被保留的这些卷积核包含了更多不同的功能性,即保留了第一卷积神经网络模型中更多的有效信息,因此有效地保障了剪枝之后得到的第二卷积神经网络模型的准确性,也即使得使用本申请的第二卷积神经网络模型进行图像数据处理时,可以有效地保障图像数据处理的准确率。
综上所述,本申请的方案可以有效地进行神经网络的剪枝,并且有效地降低了卷积神经网络的复杂度,从而降低了对于设备的计算和存储资源的要求,并且保证了剪枝后的模型准确率,从而可以更准确地进行图像数据处理。
此外,按照相对离散度与裁剪率呈负相关的原则,确定出各层卷积层各自的裁剪率,既能够解决效率问题,又可以为不同层的卷积层配置不同的裁剪率,对此,该种实施方式中通过相对离散度来确定出各层卷积层各自的裁剪率。
而得到了第二卷积神经网络模型之后,可以对第二卷积神经网络模型进行参数微调,得到准确率更高的目标卷积神经网络模型,进而可以基于目标卷积神经网络模型进行图像数据处理,例如具体可以进行图像分类,目标检测,图像分割等等。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明中一种神经网络的剪枝方法的实施流程图;
图2为一种ResNet50的模型结构示意图;
图3为一种具体实施方式中的一层卷积层的剪枝流程示意图;
图4为一种具体实施方式中的第二卷积神经网络模型的训练过程示意图;
图5为本发明中一种神经网络的剪枝系统的结构示意图;
图6为本发明中一种神经网络的剪枝设备的结构示意图;
图7为本发明中一种计算机可读存储介质的结构示意图;
图8为本发明中一种图像处理方法的实施流程图;
图9为一种具体场合中传统剪枝方案与本申请方案的比较图。
具体实施方式
本发明的核心是提供一种神经网络的剪枝方法、系统、设备、介质及图像处理方法,有效地降低了卷积神经网络的复杂度,从而降低了对于设备的资源要求,并且保证了剪枝后的模型准确率,从而可以更准确地进行图像数据处理。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明中一种神经网络的剪枝方法的实施流程图,该神经网络的剪枝方法可以包括以下步骤:
步骤S101:获取经过了预训练的第一卷积神经网络模型。
第一卷积神经网络模型是预训练完毕的原始模型,预训练方式可以有多种,本申请对此不再展开说明,只要通过预训练,能够得到准确度较高的第一卷积神经网络模型即可。
第一卷积神经网络模型具体的模型类型也可以有多种,例如图2为一种ResNet50的模型结构示意图,图2的实施方式中,第一卷积神经网络模型具体采用的是ResNet50,ResNet50为一种残差网络。在图2的实施方式中,共包含49个卷积层,1个最大池化层和1个全局平均池化层,共有2.6×107个可训练参数,3.8×107个计算操作,采用的训练集有1281167张图片,标签共1000类,每类约有1300 张图片,测试集例如可以设置为100000张图片,每类包括100 张图片。在图2的实施方式中,ResNet50具有76.15%的图片分类准确率。
可以理解的是,上文中仅是以ResNet50为例,对经过了预训练的第一卷积神经网络模型进行了举例说明,在其他实施方式中,也可以采用其他类型的卷积神经网络模型,后续步骤中均可以利用本申请方案的原理实现有效的剪枝。
步骤S102:确定出第一卷积神经网络模型各层卷积层各自的裁剪率。
获取了经过了预训练的第一卷积神经网络模型之后,便需要确定出第一卷积神经网络模型各层卷积层各自的裁剪率,可以理解的是,卷积层的裁剪率表示的是该卷积层需要被裁剪的卷积核的比例,例如某一层卷积层中,原本有M个卷积核,该卷积层的裁剪率例如为p,则需要裁剪该卷积层的M*p个卷积核,保留该卷积层剩余的M*(1-p)个卷积核。
确定出各层卷积层各自的裁剪率的具体实现方式可以有多种,卷积层越重要,该卷积层的裁剪率应当越低,也即需要保留更多的特征。例如一种场合中,可以由工作人员基于理论分析以及数据测试,手动确定出各层卷积层各自的裁剪率。但是需要说明的是,工作人员手动测试每一层卷积层的裁剪率,效率较低,需要消耗大量的人力成本以及计算资源。
在本发明的一种具体实施方式中,步骤S102可以具体包括:
将第一卷积神经网络模型各层卷积层各自的裁剪率均设置为预设的第一数值。
该种实施方式中,考虑到在部分场合中,第一卷积神经网络模型各层卷积层的重要性大体一致,因此,可以将第一卷积神经网络模型各层卷积层各自的裁剪率均设置为预设的第一数值,相较于手动测试来得到每一层卷积层的裁剪率的方案,该种实施方式可以方便、高效地确定出所需要的各层卷积层各自的裁剪率。
进一步的,在本发明的一种具体实施方式中,步骤S102可以具体包括:
确定出第一卷积神经网络模型各层卷积层各自的相对离散度;
按照相对离散度与裁剪率呈负相关的原则,基于各层卷积层各自的相对离散度,确定出各层卷积层各自的裁剪率。
该种实施方式进一步地考虑到,如果手动测试出每一层卷积层所需要的裁剪率,效率较低,而前述实施方式中,将各层卷积层各自的裁剪率均设置为预设的第一数值,虽然解决了效率问题,但是在诸多场合中,不同层的卷积层的重要性可能存在较大差异,因此,需要为不同层的卷积层配置不同的裁剪率,对此,该种实施方式中通过相对离散度来确定出各层卷积层各自的裁剪率。
卷积层的相对离散度可以有效地反映出卷积层的信息量,也即反映出卷积层的重要程度,卷积层的相对离散度越高时,说明卷积层越重要,裁剪率就应当越低,从而会在裁剪之后保留更多的卷积核,反之,卷积层的相对离散度越低时,说明卷积层越不重要,裁剪率就应当越高,从而裁剪掉更多的卷积核来降低网络的复杂度。
在实际应用中,确定出第一卷积神经网络模型各层卷积层各自的相对离散度,可以具体包括:
按照的计算方式,确定出第一卷积神经网络模型各层卷积层各自的相对离散度;
其中,KD i 表示的是第一卷积神经网络模型各层卷积层中的第i层卷积层的相对离散度,V i 表示的是第i层卷积层的离散度,表示的是第一卷积神经网络模型各层卷积层的离散度的最大值。
该种实施方式中,会计算出第一卷积神经网络模型中的每一层卷积层的离散度,将其中的最大值作为分母,而各层卷积层各自的离散度则作为分子,卷积层的离散度越高,说明卷积层信息量越大,即该卷积层越重要,计算出的相对离散度也会越大,按照相对离散度与裁剪率呈负相关的原则,得到的该卷积层的裁剪率就会越低。
此外需要说明的是,计算卷积层的离散度的具体实施方式也有多种,例如一种实施方式中,可以基于欧氏距离实现计算,较为简单方便。即,第i层卷积层的离散度V i 可以为通过的计算方式确定出的V i 。
其中,表示的是第i层卷积层的第r个卷积核与0之间的欧氏距离,用公式可以表示为:/>。其中的f(,)表示的是进行欧式距离的计算,表示的是第i层卷积层的第r个卷积核的第s个输入通道,m则为输入通道总数量,表示0矩阵。
n i 表示的是第i层卷积层的卷积核总数量,u i 表示的是第i层卷积层的n i 个卷积核的平均值距离,用公式可以表示为:。
步骤S103:基于各层卷积层各自的裁剪率,确定出各层卷积层各自的分组数量。
确定出了第一卷积神经网络模型各层卷积层各自的裁剪率之后,便可以据此确定出各层卷积层各自的分组数量。
本申请的方案中,后续在进行裁剪时,每个分组中只会保留一个卷积核,因此,对于某一层卷积层而言,裁剪之后所保留的卷积核的数量,也就等于所确定出的该层卷积层的分组数量。
例如某一层卷积层中,原本有M个卷积核,确定该卷积层的裁剪率例如为p,则需要裁剪该卷积层的M*p个卷积核,保留M*(1-p)个卷积核,确定出的该层卷积层的分组数量也等于M*(1-p)。
可参阅图3,为一种具体实施方式中的一层卷积层的剪枝流程示意图,图3的例子中,该层卷积层在未剪枝之前包含7个卷积核,裁剪率为4/7,划分的分组数量为3,对于这3个分组,后续会保留各个分组中重要性最高的卷积核并对其余卷积核进行剪枝,因此,对于图3的这一层卷积层,在剪枝之后会剩余3个卷积核。
步骤S104:基于卷积核之间的相似度,按照相似度高的卷积核划分至同组的原则,对每一层的卷积层中的卷积核进行分组。
在对每一层的卷积层中的卷积核进行分组时,采用的分组原则是相似度高的卷积核应当划分至同组,即本申请实现的是聚类分组。相同分组中的所有卷积核具有相似的特征,即相同分组中的卷积核包含相似的同一类信息,换句话说,同一组卷积核中,仅需一个卷积核即可表达所有特征,因此后续步骤中会保留各个分组中重要性最高的卷积核并对其余卷积核进行剪枝。
对卷积层中的卷积核进行聚类分组时,具体实现方式可以有多种,只要能够将相似度高的卷积核划分至同组即可,当然,由上文的描述可知,对于任意1层卷积层,对该卷积层中的卷积核进行分组时采用的分组数量为基于该卷积层的裁剪率所确定出的分组数量。
在本发明的一种具体实施方式中,步骤S104可以具体包括:
基于卷积核之间的相似度,按照相似度高的卷积核划分至同组的原则,通过聚类分析算法对每一层的卷积层中的卷积核进行分组。
该种实施方式考虑到,在进行聚类分组时,可以通过聚类分析算法实现,计算上较为简单方便,使得分组效率较高,并且准确性也较高。
例如在一种具体实施方式中,具体采用的聚类分析算法为K-means算法,距离度量时可以采用欧氏距离,设置了分组数量之后,通过K-means算法,便可以将同一卷积层的各个卷积核划分至这些分组中,使得相同分组中的所有卷积核具有相似的特征,包含相似的同一类信息。
当然,其他实施方式中还可以使用其他算法实现分组,例如还可以采用k-means++、bi-kmeans、kernel k-means等算法来对每一层的卷积层中的卷积核进行分组。
此外还需要说明的是,在基于卷积核之间的相似度实现卷积核的分组时,具体采用的相似度指标可以有多种,例如通常具体为余弦相似度。例如在本发明的一种具体实施方式中,基于卷积核之间的相似度,按照相似度高的卷积核划分至同组的原则,通过聚类分析算法对每一层的卷积层中的卷积核进行分组,可以具体包括:
基于卷积核之间的余弦相似度,按照相似度高的卷积核划分至同组的原则,通过聚类分析算法对每一层的卷积层中的卷积核进行分组。
余弦相似度也是目前较为常用的相似度衡量方式。当然,其他具体实施方式中,也可以采用其他方式来计算卷积核之间的相似度,例如可以采用点乘相似度,皮尔逊相关系数,双线性相似度等方式。
步骤S105:对各个卷积核进行重要性评估,保留各个分组中重要性最高的卷积核并对其余卷积核进行剪枝,得到剪枝之后的第二卷积神经网络模型;
对同一层的卷积层中的卷积核进行分组之后,对于每个分组,仅需要保留分组中最重要的1个卷积核。因此,需要对各个卷积核进行重要性评估,从而实现保留各个分组中重要性最高的卷积核的目的。
在进行卷积核的重要性评估时,具体实现方式也有多种,例如在本发明的一种具体实施方式中,步骤S105中描述的对各个卷积核进行重要性评估,保留各个分组中重要性最高的卷积核并对其余卷积核进行剪枝,可以具体包括:
计算各个卷积核的L1范数,将各个分组中L1范数最大的卷积核保留并对其余卷积核进行剪枝。
该种实施方式中,通过计算各个卷积核的L1范数来确定各个卷积核的重要性,计算上较为简单方便。L1范数为卷积核中各个元素的绝对值之和,该数值越大,说明该卷积核重要性越高,图3的实施方式中便是通过各个卷积核的L1范数来确定重要性最高的卷积核。
又如,在本发明的一种具体实施方式中,步骤S105中描述的对各个卷积核进行重要性评估,保留各个分组中重要性最高的卷积核并对其余卷积核进行剪枝,可以具体包括:
计算各个卷积核的L2范数,将各个分组中L2范数最大的卷积核保留并对其余卷积核进行剪枝。
该种实施方式中,通过计算各个卷积核的L2范数,也可以确定各个卷积核的重要性,L2范数为卷积核中各个元素的平方和再计算平方根,该数值越大,说明该卷积核重要性越高。L2范数的计算量会略高于L1范数的计算量,但是在部分场合中,L2范数可以更好地反映出卷积核的重要性,因此,实际应用中,可以根据实际情况选择使用L1范数还是L2范数来评价卷积核的重要性。当然,除了L1范数和L2范数之外,也可以根据需要选择其他的实施方式,能够有效地实现卷积核的重要性评估即可。
对各个卷积核进行重要性评估,保留各个分组中重要性最高的卷积核并对其余卷积核进行剪枝之后,便可以得到剪枝之后的第二卷积神经网络模型,进而可以基于第二卷积神经网络模型进行图像数据处理。
可参阅图9,为一种具体场合中,传统剪枝方案与本申请方案的比较图,图9的左侧为剪枝之前的网络,例如第一卷积神经网络模型具体为ResNet50,且图9的左侧具体为ResNet50第二层卷积层的输出特征图。使用传统剪枝方案进行剪枝之后,可以得到图9右侧上部的输出特征图,可以看出存在重复特征,即从相似性考虑,这些相似的特征图是冗余的。图9右侧下部则是使用本申请的剪枝方案所得到的输出特征图,不存在重复特征,保障了信息的多样性。
在本发明的一种具体实施方式中,还可以包括:
将剪枝之后得到的第二卷积神经网络模型中的参数作为第二卷积神经网络模型的初始参数,对第二卷积神经网络模型进行训练;
当触发了训练终止条件时,得到训练之后的目标卷积神经网络模型,以基于目标卷积神经网络模型进行图像数据处理。
由上文的描述可知,第一卷积神经网络模型是预训练完毕的网络模型,可以用于实现图像数据处理,而对第一卷积神经网络模型进行剪枝之后,得到的第二卷积神经网络模型同样可以用于实现图像数据处理,即可以无需进行训练。
该种实施方式进一步地考虑到,虽然得到的第二卷积神经网络模型可以直接可以用于实现图像数据处理,但是在实际应用中,经过了剪枝之后,相较于第一卷积神经网络模型,第二卷积神经网络模型的准确率会不可避免地降低,因此,在得到的第二卷积神经网络模型之后,可以对第二卷积神经网络模型进行参数微调,从而有效地提高第二卷积神经网络模型的准确率。
对第二卷积神经网络模型进行参数微调,也就是对第二卷积神经网络模型进行训练,但可以理解的是,在对第二卷积神经网络模型进行训练时,是将剪枝之后得到的第二卷积神经网络模型中的参数作为第二卷积神经网络模型的初始参数,然后在此基础上,继续对第二卷积神经网络模型进行训练。
当触发了训练终止条件时,便可以得到训练之后的目标卷积神经网络模型,即得到了经过了参数微调的目标卷积神经网络模型,进而可以基于目标卷积神经网络模型进行图像数据处理,例如具体可以进行图像分类,目标检测,图像分割等等。
训练终止条件的具体规则可以有多种,例如在本发明的一种具体实施方式中,训练终止条件可以包括:训练次数达到设定次数阈值。即,对第二卷积神经网络模型进行一定轮次的训练之后,便可以确定训练完成。当然,其他实施方式中还可以设置有其他的训练终止条件,例如当模型的准确率达到要求时,便可以确定训练终止,并将当前的模型作为所需要的目标卷积神经网络模型。
对第二卷积神经网络模型进行训练时,即对第二卷积神经网络模型进行参数微调时,具体的实现方式也有多种,例如在本发明的一种具体实施方式中,对第二卷积神经网络模型进行训练,可以具体包括:
基于集成高温知识蒸馏算法,对第二卷积神经网络模型进行训练。
该种实施方式采用了集成高温知识蒸馏算法,这种带有温度系数的高温知识蒸馏算法,可以放大负标签携带的信息,使模型将更加关注负标签,从而进一步提高裁剪后的模型的泛化能力。
进一步的,在本发明的一种具体实施方式中,集成高温知识蒸馏算法所使用的损失函数Loss可以表示为:
;
其中,Z i 表示的是对第二卷积神经网络模型进行训练的过程中,将待识别图像输入至当前的第二卷积神经网络模型之后,当前的第二卷积神经网络模型输出向量的y个数值中的最大值,Z j 表示的是当前的第二卷积神经网络模型输出向量中的y个数值中的第j个数值,1≤j≤y,y表示的是总标签数量,T表示的是温度系数,exp表示的是以自然常数e为底的指数函数,S i 表示的是将待识别图像输入至第一卷积神经网络模型之后,第一卷积神经网络模型的识别结果;H i 表示的待识别图像的实际标签;表示的是权重参数。
可以看出,该种实施方式中,所采用的损失函数由两部分组成,加号左侧为裁剪模型输出与原始模型输出构成的软损失函数,即第二卷积神经网络模型的输出与第一卷积神经网络模型的输出构成的软损失函数。而加号右侧为裁剪模型输出与实际标签构成的硬损失函数,由于同时考虑了第一卷积神经网络模型以及实际标签,有利于进一步地提高训练出的目标卷积神经网络模型的准确性,即可以有效地进行第二卷积神经网络模型的性能恢复。
图4便是该种实施方式中的微调过程示意图,即第二卷积神经网络模型的训练过程示意图。将待识别图像输入至当前的第二卷积神经网络模型之后,可以得到第二卷积神经网络模型的输出向量,然后通过归一化函数对其进行归一化,对应的是上文公式中的这一计算过程,与此同时,对于第二卷积神经网络模型的输出向量,还需要通过带温度系数T的归一化函数对其进行归一化,对应的是上文公式中的这一计算过程。
将待识别图像输入至当前的第一卷积神经网络模型之后,可以得到第一卷积神经网络模型的输出向量,通过带温度系数T的归一化函数对其进行归一化,可以得到上述公式中的S i 。上述的各个归一化函数在公式中均采用的是softmax函数。
在对第二卷积神经网络模型进行参数微调的过程中,通过计算损失函数Loss,可以逆向更新第二卷积神经网络模型中的可调参数,图4中通过优化器来表示这一逆向更新参数的过程。
进一步的,在本发明的一种具体实施方式中,在基于集成高温知识蒸馏算法,对第二卷积神经网络模型进行训练的过程中,权重参数逐渐增大。
该种实施方式考虑到,权重参数可以设置为固定的数值,但是也可以设置为变化量。具体的,在微调前期,可以使得基于标签的损失占据损失函数的主要部分,即此时的权重参数/>较小,从而便于快速恢复性能,而在后期,则可以使得基于第一卷积神经网络模型输出的损失占据损失函数的主要部分,即此时的权重参数/>较大,从而保留更多的第一卷积神经网络模型中包含的知识,有利于提高泛化能力。也就是说,该种实施方式中,在对第二卷积神经网络模型进行训练的过程中,权重参/>数逐渐增大,例如可以从0逐渐增大至1。
在本发明的一种具体实施方式中,在得到训练之后的目标卷积神经网络模型之后,还可以包括:
将设定数量的图像输入至目标卷积神经网络模型中,以基于目标卷积神经网络模型进行图像数据处理,并且对目标卷积神经网络模型的图像数据处理准确率进行统计。
该种实施方式考虑到,对第一卷积神经网络模型进行剪枝之后,虽然通过本申请上文介绍的方案,可以有效地保障目标卷积神经网络模型的准确率,但是通常而言,目标卷积神经网络模型的准确率仍然会低于第一卷积神经网络模型,因此,该种实施方式中会将设定数量的图像输入至目标卷积神经网络模型中,以基于目标卷积神经网络模型进行图像数据处理,进而对目标卷积神经网络模型的图像数据处理准确率进行统计,以便于工作人员的后续分析处理。
进一步的,在本发明的一种具体实施方式中,还可以包括:
判断目标卷积神经网络模型的图像数据处理准确率是否高于第一准确率阈值;
如果否,则输出第一提示信息。
该种实施方式考虑到,当判断出目标卷积神经网络模型的图像数据处理准确率未高于第一准确率阈值时,说明剪枝效果较差或者微调效果较差,导致所得到的目标卷积神经网络模型不符合要求,因此可以输出第一提示信息以提醒工作人员,以便工作人员进行后续的处理,例如通过调整各层卷积层的裁剪率以重新进行剪枝,又如增加微调过程的训练轮次等等。
在本发明的一种具体实施方式中,在得到训练之后的目标卷积神经网络模型之后,还可以包括:
对目标卷积神经网络模型的压缩率进行统计。目标卷积神经网络模型的压缩率反映的是进行剪枝时,对于第一卷积神经网络模型整体的裁剪情况。也就是说,该种实施方式中通过压缩率的统计,可以方便工作人员能够更加明确、直观的确定出进行剪枝时的整体裁剪情况。
进一步的,还可以包括:判断目标卷积神经网络模型的压缩率是否低于第一压缩率阈值;如果是,说明进行剪枝时的整体裁剪率较低,则可以输出第二提示信息以提醒工作人员,以便工作人员进行后续的处理,例如通过手动调整各层卷积层的裁剪率以提高整体裁剪率,即,使得目标卷积神经网络模型的压缩率能够高于第一压缩率阈值,从而便于在一些资源受限的边缘设备中部署。
应用本发明实施例所提供的技术方案,有益效果在于,获取经过了预训练的第一卷积神经网络模型之后,可以确定出第一卷积神经网络模型各层卷积层各自的裁剪率。在进行各层卷积层的卷积核的裁剪时,本申请的方案中不是直接裁剪,而是先进行聚类分组,即,基于各层卷积层各自的裁剪率,确定出各层卷积层各自的分组数量,然后基于卷积核之间的相似度,按照相似度高的卷积核划分至同组的原则,对每一层的卷积层中的卷积核进行分组。也就是说,在每一层卷积层中,相似度高的卷积核的特征是相似的,即功能上是相近的,因此会被置入相同分组中。确定出了各个分组之后,再对各个卷积核进行重要性评估,仅保留各个分组中重要性最高的卷积核并对其余卷积核进行剪枝,便得到了剪枝之后的第二卷积神经网络模型。可以看出,由于相同分组中的卷积核功能相近,因此只需要保留分组中重要性最高的卷积核,从而有效地降低了卷积神经网络的复杂度,使得第二卷积神经网络模型可以部署在资源受限的设备中,即降低了资源需求。并且由于不同分组中均有卷积核的保留,因此被保留的这些卷积核包含了更多不同的功能性,即保留了第一卷积神经网络模型中更多的有效信息,因此有效地保障了剪枝之后得到的第二卷积神经网络模型的准确性。
综上所述,本申请的方案可以有效地进行神经网络的剪枝,并且有效地降低了卷积神经网络的复杂度,从而降低了对于设备的资源要求,并且保证了剪枝后的模型准确率,从而可以更准确地进行图像数据处理。
在一种场合中,经过测试,使用本申请的神经网络的剪枝方法,在裁剪了第一卷积神经网络模型46.75%的卷积核时,仅损失了1.16%的精度。当裁剪的卷积核数量超过50%时,精度损失也小于2%,而目前的大部分压缩方法的损失会超过4%。
相应于上面的方法实施例,本发明实施例还提供了一种神经网络的剪枝系统,可与上文相互对应参照。
参见图5所示,为本发明中一种神经网络的剪枝系统的结构示意图,包括:
原始模型获取模块501,用于获取经过了预训练的第一卷积神经网络模型;
裁剪率确定模块502,用于确定出第一卷积神经网络模型各层卷积层各自的裁剪率;
分组数量确定模块503,用于基于各层卷积层各自的裁剪率,确定出各层卷积层各自的分组数量;
聚类分组模块504,用于基于卷积核之间的相似度,按照相似度高的卷积核划分至同组的原则,对每一层的卷积层中的卷积核进行分组;
剪枝模块505,用于对各个卷积核进行重要性评估,保留各个分组中重要性最高的卷积核并对其余卷积核进行剪枝,得到剪枝之后的第二卷积神经网络模型;
其中,对于任意1层卷积层,对卷积层中的卷积核进行分组时采用的分组数量为基于卷积层的裁剪率所确定出的分组数量。
在本发明的一种具体实施方式中,还包括:
微调模块,用于将剪枝之后得到的第二卷积神经网络模型中的参数作为第二卷积神经网络模型的初始参数,对第二卷积神经网络模型进行训练;
训练终止模块,用于当触发了训练终止条件时,得到训练之后的目标卷积神经网络模型,以基于目标卷积神经网络模型进行图像数据处理。
在本发明的一种具体实施方式中,对第二卷积神经网络模型进行训练,包括:
基于集成高温知识蒸馏算法,对第二卷积神经网络模型进行训练。
在本发明的一种具体实施方式中,集成高温知识蒸馏算法所使用的损失函数Loss表示为:
;
其中,Z i 表示的是对第二卷积神经网络模型进行训练的过程中,将待识别图像输入至当前的第二卷积神经网络模型之后,当前的第二卷积神经网络模型输出向量的y个数值中的最大值,Z j 表示的是当前的第二卷积神经网络模型输出向量中的y个数值中的第j个数值,1≤j≤y,y表示的是总标签数量,T表示的是温度系数,exp表示的是以自然常数e为底的指数函数,S i 表示的是将待识别图像输入至第一卷积神经网络模型之后,第一卷积神经网络模型的识别结果;H i 表示的待识别图像的实际标签;表示的是权重参数。
在本发明的一种具体实施方式中,在基于集成高温知识蒸馏算法,对第二卷积神经网络模型进行训练的过程中,权重参数逐渐增大。
在本发明的一种具体实施方式中,训练终止条件包括:
训练次数达到设定次数阈值。
在本发明的一种具体实施方式中,在得到训练之后的目标卷积神经网络模型之后,还包括:
准确率统计模块,用于将设定数量的图像输入至目标卷积神经网络模型中,以基于目标卷积神经网络模型进行图像数据处理,并且对目标卷积神经网络模型的图像数据处理准确率进行统计。
在本发明的一种具体实施方式中,还包括第一提示信息输出模块,用于:
判断目标卷积神经网络模型的图像数据处理准确率是否高于第一准确率阈值;
如果否,则输出第一提示信息。
在本发明的一种具体实施方式中,在得到训练之后的目标卷积神经网络模型之后,还包括压缩率统计模块,用于:
对目标卷积神经网络模型的压缩率进行统计。
在本发明的一种具体实施方式中,还包括第二提示信息输出模块,用于:
判断目标卷积神经网络模型的压缩率是否低于第一压缩率阈值;
如果是,则输出第二提示信息。
在本发明的一种具体实施方式中,裁剪率确定模块502具体包括:
相对离散度计算单元,用于确定出第一卷积神经网络模型各层卷积层各自的相对离散度;
裁剪率确定单元,用于按照相对离散度与裁剪率呈负相关的原则,基于各层卷积层各自的相对离散度,确定出各层卷积层各自的裁剪率。
在本发明的一种具体实施方式中,相对离散度计算单元具体用于:
按照的计算方式,确定出第一卷积神经网络模型各层卷积层各自的相对离散度;
其中,KD i 表示的是第一卷积神经网络模型各层卷积层中的第i层卷积层的相对离散度,V i 表示的是第i层卷积层的离散度,表示的是第一卷积神经网络模型各层卷积层的离散度的最大值。
在本发明的一种具体实施方式中,V i 为通过的计算方式确定出的V i ;
其中,表示的是第i层卷积层的第r个卷积核与0之间的欧氏距离,n i 表示的是第i层卷积层的卷积核总数量,u i 表示的是第i层卷积层的n i 个卷积核的平均值距离。
在本发明的一种具体实施方式中,裁剪率确定模块502具体用于:
将第一卷积神经网络模型各层卷积层各自的裁剪率均设置为预设的第一数值。
在本发明的一种具体实施方式中,对各个卷积核进行重要性评估,保留各个分组中重要性最高的卷积核并对其余卷积核进行剪枝,包括:
计算各个卷积核的L1范数,将各个分组中L1范数最大的卷积核保留并对其余卷积核进行剪枝。
在本发明的一种具体实施方式中,对各个卷积核进行重要性评估,保留各个分组中重要性最高的卷积核并对其余卷积核进行剪枝,包括:
计算各个卷积核的L2范数,将各个分组中L2范数最大的卷积核保留并对其余卷积核进行剪枝。
在本发明的一种具体实施方式中,聚类分组模块504,具体用于:
基于卷积核之间的相似度,按照相似度高的卷积核划分至同组的原则,通过聚类分析算法对每一层的卷积层中的卷积核进行分组。
相应于上面的方法和系统实施例,本发明实施例还提供了一种神经网络的剪枝设备以及一种计算机可读存储介质,可与上文相互对应参照。
可参阅图6,该神经网络的剪枝设备可以包括:
存储器601,用于存储计算机程序;
处理器602,用于执行计算机程序以实现如上述任一实施例中的神经网络的剪枝方法的步骤。
可参阅图7,该计算机可读存储介质70上存储有计算机程序71,计算机程序71被处理器执行时实现如上述任一实施例中的神经网络的剪枝方法的步骤。这里所说的计算机可读存储介质70包括随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质。
可参阅图8,本申请还公开了一种图像处理方法,包括:
步骤S801:获取待处理的图像;
步骤S802:将图像输入至第二卷积神经网络模型中以基于第二卷积神经网络模型进行图像数据处理;
步骤S803:接收第二卷积神经网络模型输出的处理结果;
其中,第二卷积神经网络模型为如上述任一实施例中的神经网络的剪枝方法中所得到的第二卷积神经网络模型。
在基于第二卷积神经网络模型进行图像数据处理时,例如具体可以进行图像识别,图像分类,目标检测等等。并且需要说明的是,在上文的部分实施方式中,通过剪枝得到了第二卷积神经网络模型之后,还会进一步地进行模型的微调,即对第二卷积神经网络模型继续训练,从而得到目标卷积神经网络模型,则可以将获取的待处理的图像输入至目标卷积神经网络模型中,从而基于目标卷积神经网络模型进行图像数据处理,并接收目标卷积神经网络模型输出的处理结果。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明的保护范围内。
Claims (18)
1.一种神经网络的剪枝方法,其特征在于,包括:
获取经过了预训练的第一卷积神经网络模型;
确定出所述第一卷积神经网络模型各层卷积层各自的裁剪率;
基于各层所述卷积层各自的裁剪率,确定出各层所述卷积层各自的分组数量;
基于卷积核之间的相似度,按照相似度高的卷积核划分至同组的原则,对每一层的所述卷积层中的卷积核进行分组;
对各个所述卷积核进行重要性评估,保留各个分组中重要性最高的卷积核并对其余卷积核进行剪枝,得到剪枝之后的第二卷积神经网络模型;
其中,对于任意1层所述卷积层,对所述卷积层中的卷积核进行分组时采用的分组数量为基于所述卷积层的裁剪率所确定出的分组数量;
还包括:
将剪枝之后得到的所述第二卷积神经网络模型中的参数作为所述第二卷积神经网络模型的初始参数,对所述第二卷积神经网络模型进行训练;
当触发了训练终止条件时,得到训练之后的目标卷积神经网络模型,以基于所述目标卷积神经网络模型进行图像数据处理;
对所述第二卷积神经网络模型进行训练,包括:
基于集成高温知识蒸馏算法,对所述第二卷积神经网络模型进行训练;
所述集成高温知识蒸馏算法所使用的损失函数Loss表示为:
;
其中,Z i 表示的是对所述第二卷积神经网络模型进行训练的过程中,将待识别图像输入至当前的所述第二卷积神经网络模型之后,当前的所述第二卷积神经网络模型输出向量的y个数值中的最大值,Z j 表示的是当前的所述第二卷积神经网络模型输出向量中的y个数值中的第j个数值,1≤j≤y,y表示的是总标签数量,T表示的是温度系数,exp表示的是以自然常数e为底的指数函数,S i 表示的是将所述待识别图像输入至所述第一卷积神经网络模型之后,所述第一卷积神经网络模型的识别结果;H i 表示的所述待识别图像的实际标签;表示的是权重参数;
在基于集成高温知识蒸馏算法,对所述第二卷积神经网络模型进行训练的过程中,所述权重参数逐渐增大。
2.根据权利要求1所述的神经网络的剪枝方法,其特征在于,所述训练终止条件包括:
训练次数达到设定次数阈值。
3.根据权利要求1所述的神经网络的剪枝方法,其特征在于,在得到训练之后的目标卷积神经网络模型之后,还包括:
将设定数量的图像输入至目标卷积神经网络模型中,以基于所述目标卷积神经网络模型进行图像数据处理,并且对所述目标卷积神经网络模型的图像数据处理准确率进行统计。
4.根据权利要求3所述的神经网络的剪枝方法,其特征在于,还包括:
判断所述目标卷积神经网络模型的图像数据处理准确率是否高于第一准确率阈值;
如果否,则输出第一提示信息。
5.根据权利要求1所述的神经网络的剪枝方法,其特征在于,在得到训练之后的目标卷积神经网络模型之后,还包括:
对所述目标卷积神经网络模型的压缩率进行统计。
6.根据权利要求5所述的神经网络的剪枝方法,其特征在于,还包括:
判断所述目标卷积神经网络模型的压缩率是否低于第一压缩率阈值;
如果是,则输出第二提示信息。
7.根据权利要求1所述的神经网络的剪枝方法,其特征在于,所述确定出所述第一卷积神经网络模型各层卷积层各自的裁剪率,包括:
确定出所述第一卷积神经网络模型各层卷积层各自的相对离散度;
按照相对离散度与裁剪率呈负相关的原则,基于各层所述卷积层各自的相对离散度,确定出各层所述卷积层各自的裁剪率。
8.根据权利要求7所述的神经网络的剪枝方法,其特征在于,所述确定出所述第一卷积神经网络模型各层卷积层各自的相对离散度,包括:
按照的计算方式,确定出所述第一卷积神经网络模型各层卷积层各自的相对离散度;
其中,KD i 表示的是所述第一卷积神经网络模型各层卷积层中的第i层卷积层的相对离散度,V i 表示的是所述第i层卷积层的离散度,表示的是所述第一卷积神经网络模型各层卷积层的离散度的最大值。
9.根据权利要求8所述的神经网络的剪枝方法,其特征在于,V i 为通过的计算方式确定出的V i ;
其中,表示的是所述第i层卷积层的第r个卷积核与0之间的欧氏距离,n i 表示的是第i层卷积层的卷积核总数量,u i 表示的是所述第i层卷积层的n i 个卷积核的平均值距离。
10.根据权利要求1所述的神经网络的剪枝方法,其特征在于,所述确定出所述第一卷积神经网络模型各层卷积层各自的裁剪率,包括:
将所述第一卷积神经网络模型各层卷积层各自的裁剪率均设置为预设的第一数值。
11.根据权利要求1所述的神经网络的剪枝方法,其特征在于,所述对各个所述卷积核进行重要性评估,保留各个分组中重要性最高的卷积核并对其余卷积核进行剪枝,包括:
计算各个卷积核的L1范数,将各个分组中L1范数最大的卷积核保留并对其余卷积核进行剪枝。
12.根据权利要求1所述的神经网络的剪枝方法,其特征在于,所述对各个所述卷积核进行重要性评估,保留各个分组中重要性最高的卷积核并对其余卷积核进行剪枝,包括:
计算各个卷积核的L2范数,将各个分组中L2范数最大的卷积核保留并对其余卷积核进行剪枝。
13.根据权利要求1至12任一项所述的神经网络的剪枝方法,其特征在于,所述基于卷积核之间的相似度,按照相似度高的卷积核划分至同组的原则,对每一层的所述卷积层中的卷积核进行分组,包括:
基于卷积核之间的相似度,按照相似度高的卷积核划分至同组的原则,通过聚类分析算法对每一层的所述卷积层中的卷积核进行分组。
14.根据权利要求13所述的神经网络的剪枝方法,其特征在于,所述基于卷积核之间的相似度,按照相似度高的卷积核划分至同组的原则,通过聚类分析算法对每一层的所述卷积层中的卷积核进行分组,包括:
基于卷积核之间的余弦相似度,按照相似度高的卷积核划分至同组的原则,通过聚类分析算法对每一层的所述卷积层中的卷积核进行分组。
15.一种神经网络的剪枝系统,其特征在于,包括:
原始模型获取模块,用于获取经过了预训练的第一卷积神经网络模型;
裁剪率确定模块,用于确定出所述第一卷积神经网络模型各层卷积层各自的裁剪率;
分组数量确定模块,用于基于各层所述卷积层各自的裁剪率,确定出各层所述卷积层各自的分组数量;
聚类分组模块,用于基于卷积核之间的相似度,按照相似度高的卷积核划分至同组的原则,对每一层的所述卷积层中的卷积核进行分组;
剪枝模块,用于对各个所述卷积核进行重要性评估,保留各个分组中重要性最高的卷积核并对其余卷积核进行剪枝,得到剪枝之后的第二卷积神经网络模型;
其中,对于任意1层所述卷积层,对所述卷积层中的卷积核进行分组时采用的分组数量为基于所述卷积层的裁剪率所确定出的分组数量;
还包括:
微调模块,用于将剪枝之后得到的所述第二卷积神经网络模型中的参数作为所述第二卷积神经网络模型的初始参数,对所述第二卷积神经网络模型进行训练;
训练终止模块,用于当触发了训练终止条件时,得到训练之后的目标卷积神经网络模型,以基于所述目标卷积神经网络模型进行图像数据处理;
对所述第二卷积神经网络模型进行训练,包括:
基于集成高温知识蒸馏算法,对所述第二卷积神经网络模型进行训练;
所述集成高温知识蒸馏算法所使用的损失函数Loss表示为:
;
其中,Z i 表示的是对所述第二卷积神经网络模型进行训练的过程中,将待识别图像输入至当前的所述第二卷积神经网络模型之后,当前的所述第二卷积神经网络模型输出向量的y个数值中的最大值,Z j 表示的是当前的所述第二卷积神经网络模型输出向量中的y个数值中的第j个数值,1≤j≤y,y表示的是总标签数量,T表示的是温度系数,exp表示的是以自然常数e为底的指数函数,S i 表示的是将所述待识别图像输入至所述第一卷积神经网络模型之后,所述第一卷积神经网络模型的识别结果;H i 表示的所述待识别图像的实际标签;表示的是权重参数;
在基于集成高温知识蒸馏算法,对所述第二卷积神经网络模型进行训练的过程中,所述权重参数逐渐增大。
16.一种神经网络的剪枝设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如权利要求1至14任一项所述的神经网络的剪枝方法的步骤。
17.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至14任一项所述的神经网络的剪枝方法的步骤。
18.一种图像处理方法,其特征在于,包括:
获取待处理的图像;
将所述图像输入至第二卷积神经网络模型中以基于所述第二卷积神经网络模型进行图像数据处理;
接收所述第二卷积神经网络模型输出的处理结果;
其中,所述第二卷积神经网络模型为如权利要求1至14任一项所述的神经网络的剪枝方法中所得到的第二卷积神经网络模型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310652433.4A CN116402116B (zh) | 2023-06-05 | 2023-06-05 | 神经网络的剪枝方法、系统、设备、介质及图像处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310652433.4A CN116402116B (zh) | 2023-06-05 | 2023-06-05 | 神经网络的剪枝方法、系统、设备、介质及图像处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116402116A CN116402116A (zh) | 2023-07-07 |
CN116402116B true CN116402116B (zh) | 2023-09-05 |
Family
ID=87016354
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310652433.4A Active CN116402116B (zh) | 2023-06-05 | 2023-06-05 | 神经网络的剪枝方法、系统、设备、介质及图像处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116402116B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101880901B1 (ko) * | 2017-08-09 | 2018-07-23 | 펜타시큐리티시스템 주식회사 | 기계 학습 방법 및 장치 |
CN110298446A (zh) * | 2019-06-28 | 2019-10-01 | 济南大学 | 面向嵌入式系统的深度神经网络压缩和加速方法及系统 |
WO2021178981A1 (en) * | 2021-05-03 | 2021-09-10 | Innopeak Technology, Inc. | Hardware-friendly multi-model compression of neural networks |
CN113487012A (zh) * | 2021-06-24 | 2021-10-08 | 北京航空航天大学 | 一种面向fpga的深度卷积神经网络加速器及设计方法 |
CN113554716A (zh) * | 2021-07-28 | 2021-10-26 | 广东工业大学 | 基于知识蒸馏的瓷砖色差检测方法及装置 |
CN113657421A (zh) * | 2021-06-17 | 2021-11-16 | 中国科学院自动化研究所 | 卷积神经网络压缩方法和装置、图像分类方法和装置 |
CN114492798A (zh) * | 2022-02-16 | 2022-05-13 | 浙大城市学院 | 基于核相似度和非极大抑制算法的卷积神经网络剪枝方法 |
CN114758180A (zh) * | 2022-04-19 | 2022-07-15 | 电子科技大学 | 一种基于知识蒸馏的轻量化花卉识别方法 |
CN115544277A (zh) * | 2022-12-02 | 2022-12-30 | 东南大学 | 一种基于迭代蒸馏的快速知识图谱嵌入模型压缩方法 |
WO2023005085A1 (zh) * | 2021-07-29 | 2023-02-02 | 浪潮电子信息产业股份有限公司 | 一种神经网络的剪枝方法、装置、设备及存储介质 |
WO2023024407A1 (zh) * | 2021-08-24 | 2023-03-02 | 平安科技(深圳)有限公司 | 基于相邻卷积的模型剪枝方法、装置及存储介质 |
CN116090511A (zh) * | 2021-10-29 | 2023-05-09 | 联合微电子中心有限责任公司 | 卷积神经网络的预处理方法和加速方法、加速系统和介质 |
-
2023
- 2023-06-05 CN CN202310652433.4A patent/CN116402116B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101880901B1 (ko) * | 2017-08-09 | 2018-07-23 | 펜타시큐리티시스템 주식회사 | 기계 학습 방법 및 장치 |
CN110298446A (zh) * | 2019-06-28 | 2019-10-01 | 济南大学 | 面向嵌入式系统的深度神经网络压缩和加速方法及系统 |
WO2021178981A1 (en) * | 2021-05-03 | 2021-09-10 | Innopeak Technology, Inc. | Hardware-friendly multi-model compression of neural networks |
CN113657421A (zh) * | 2021-06-17 | 2021-11-16 | 中国科学院自动化研究所 | 卷积神经网络压缩方法和装置、图像分类方法和装置 |
CN113487012A (zh) * | 2021-06-24 | 2021-10-08 | 北京航空航天大学 | 一种面向fpga的深度卷积神经网络加速器及设计方法 |
CN113554716A (zh) * | 2021-07-28 | 2021-10-26 | 广东工业大学 | 基于知识蒸馏的瓷砖色差检测方法及装置 |
WO2023005085A1 (zh) * | 2021-07-29 | 2023-02-02 | 浪潮电子信息产业股份有限公司 | 一种神经网络的剪枝方法、装置、设备及存储介质 |
WO2023024407A1 (zh) * | 2021-08-24 | 2023-03-02 | 平安科技(深圳)有限公司 | 基于相邻卷积的模型剪枝方法、装置及存储介质 |
CN116090511A (zh) * | 2021-10-29 | 2023-05-09 | 联合微电子中心有限责任公司 | 卷积神经网络的预处理方法和加速方法、加速系统和介质 |
CN114492798A (zh) * | 2022-02-16 | 2022-05-13 | 浙大城市学院 | 基于核相似度和非极大抑制算法的卷积神经网络剪枝方法 |
CN114758180A (zh) * | 2022-04-19 | 2022-07-15 | 电子科技大学 | 一种基于知识蒸馏的轻量化花卉识别方法 |
CN115544277A (zh) * | 2022-12-02 | 2022-12-30 | 东南大学 | 一种基于迭代蒸馏的快速知识图谱嵌入模型压缩方法 |
Non-Patent Citations (1)
Title |
---|
CSHE: network pruning by using cluster similarity and matrix eigenvalues";Mingwen Shao 等,;《International Journal of Machine Learning and Cybernetics》;第2022年卷;第3-4节 * |
Also Published As
Publication number | Publication date |
---|---|
CN116402116A (zh) | 2023-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110619385B (zh) | 基于多级剪枝的结构化网络模型压缩加速方法 | |
WO2022042123A1 (zh) | 图像识别模型生成方法、装置、计算机设备和存储介质 | |
CN111353533B (zh) | 基于多任务学习的无参考图像质量评价方法及系统 | |
CN109783879B (zh) | 一种雷达辐射源信号识别效能评估方法及系统 | |
CN109635939B (zh) | 一种基于裁剪的卷积神经网络的确定方法及装置 | |
CN111832650B (zh) | 基于生成对抗网络局部聚合编码半监督的图像分类方法 | |
CN108960314B (zh) | 基于难样本的训练方法、装置及电子设备 | |
CN111428557A (zh) | 基于神经网络模型的手写签名的自动校验的方法和装置 | |
CN113066065B (zh) | 无参考图像质量检测方法、系统、终端及介质 | |
CN112116009A (zh) | 基于卷积神经网络的新冠肺炎x射线图像识别方法及系统 | |
CN115238804A (zh) | 基于生成对抗网络的点焊数据填补方法、装置及存储介质 | |
CN111860601B (zh) | 预测大型真菌种类的方法及装置 | |
CN116402116B (zh) | 神经网络的剪枝方法、系统、设备、介质及图像处理方法 | |
CN116127298B (zh) | 基于三元组损失的小样本射频指纹识别方法 | |
CN113033587A (zh) | 图像识别结果评估方法、装置、电子设备及存储介质 | |
CN110855474A (zh) | Kqi数据的网络特征提取方法、装置、设备及存储介质 | |
CN114758379A (zh) | 一种基于注意力卷积神经网络的菊头蝠识别方法 | |
CN114677545A (zh) | 一种基于相似性剪枝和高效模块的轻量化图像分类方法 | |
CN115457975A (zh) | 婴儿哭声和咳嗽声检测方法、装置、存储介质及终端设备 | |
CN116542311A (zh) | 神经网络模型压缩方法和系统 | |
CN113128525A (zh) | 一种荒漠草原种群斑块识别的控制装置及方法 | |
CN114531368A (zh) | 一种网络质量评价方法、装置和设备 | |
CN111160530A (zh) | 模型的压缩处理方法、装置及计算机设备 | |
CN117611580B (zh) | 瑕疵检测方法、装置、计算机设备和存储介质 | |
CN116992944B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |