CN115983367A - 模型剪枝方法、装置、电子设备及存储介质 - Google Patents
模型剪枝方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115983367A CN115983367A CN202211644018.6A CN202211644018A CN115983367A CN 115983367 A CN115983367 A CN 115983367A CN 202211644018 A CN202211644018 A CN 202211644018A CN 115983367 A CN115983367 A CN 115983367A
- Authority
- CN
- China
- Prior art keywords
- network layer
- model
- widened
- pruned
- network
- 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 96
- 238000000034 method Methods 0.000 title claims abstract description 72
- 238000012163 sequencing technique Methods 0.000 claims description 6
- 238000005259 measurement Methods 0.000 claims description 4
- 238000012549 training Methods 0.000 description 26
- 230000006870 function Effects 0.000 description 16
- 238000012545 processing Methods 0.000 description 13
- 238000004364 calculation method Methods 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000003062 neural network model Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 238000011002 quantification Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000004821 distillation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000004804 winding Methods 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例公开了一种模型剪枝方法、装置、电子设备及存储介质。所述方法包括:获取待剪枝模型的多个网络层各自对应的重要性;基于所述多个网络层各自对应的重要性,确定所述待剪枝模型的待加宽网络层和参考网络层,所述参考网络层为所述多个网络层中除所述待加宽网络层以外的网络层;对所述待剪枝模型的待加宽网络层进行加宽处理,得到包括加宽网络层和参考网络层的加宽待剪枝模型;基于预设稀疏度对所述加宽待剪枝模型进行剪枝处理,得到目标模型。通过上述方法,按照模型的每一网络层对应的重要性,确定待加宽网络层,从而对确定的重要性高的待加宽网络层进行加宽处理得到加宽模型,再对加宽模型进行剪枝处理,可以得到精度更高的目标模型。
Description
技术领域
本申请属于电子技术领域,具体涉及一种模型剪枝方法、装置、电子设备及存储介质。
背景技术
剪枝算法可分为结构化剪枝(structured pruning)和非结构化剪枝(unstructured pruning)。结构化剪枝,就是针对网络的某一层,删除一些冗余的输出通道,以实现参数量的减少;而非结构化剪枝,则并不是将某个输出通道完整删除,而是将其中一些元素置零。相比之下,虽然非结构化剪枝可以更精准地定位冗余参数,但结构化剪枝能够得到硬件更好的支持,更容易在硬件设备上实现,因此结构化剪枝在实际任务中有更广泛的应用。相关的模型剪枝算法,剪枝后得到的模型的精度还有待提高。
发明内容
鉴于上述问题,本申请提出了一种模型剪枝方法、装置、电子设备以及存储介质,以实现改善上述问题。
第一方面,本申请实施例提供了一种模型剪枝方法,所述方法包括:获取待剪枝模型的多个网络层各自对应的重要性;基于所述多个网络层各自对应的重要性,确定所述待剪枝模型的待加宽网络层和参考网络层,所述参考网络层为所述多个网络层中除所述待加宽网络层以外的网络层;对所述待剪枝模型的待加宽网络层进行加宽处理,得到包括加宽网络层和参考网络层的加宽待剪枝模型;基于预设稀疏度对所述加宽待剪枝模型进行剪枝处理,得到目标模型。
第二方面,本申请实施例提供了一种模型剪枝装置,所述装置包括:重要性获取单元,用于获取待剪枝模型的多个网络层各自对应的重要性;网络层确定单元,用于基于所述多个网络层各自对应的重要性,确定所述待剪枝模型的待加宽网络层和参考网络层,所述参考网络层为所述多个网络层中除所述待加宽网络层以外的网络层;加宽单元,用于对所述待剪枝模型的待加宽网络层进行加宽处理,得到包括加宽网络层和参考网络层的加宽待剪枝模型;剪枝单元,用于基于预设稀疏度对所述加宽待剪枝模型进行剪枝处理,得到目标模型。
第三方面,本申请实施例提供了一种电子设备,包括一个或多个处理器以及存储器;一个或多个程序,其中所述一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行上述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有程序代码,其中,在所述程序代码运行时执行上述的方法。
本申请实施例提供了一种模型剪枝方法、装置、电子设备及存储介质。首先获取待剪枝模型的所有网络层各自对应的重要性,然后基于所有网络层各自对应的重要性,确定待剪枝模型的待加宽网络层和参考网络层,所述参考网络层为所述多个网络层中除所述待加宽网络层以外的网络层,再对待剪枝模型的待加宽网络层进行加宽处理,得到包括加宽网络层和参考网络层的加宽待剪枝模型,最后基于预设稀疏度对加宽待剪枝模型进行剪枝处理,得到目标模型。通过上述方法,按照模型的每一网络层对应的重要性,确定待加宽网络层,从而对确定的重要性高的待加宽网络层进行加宽处理得到加宽模型,再对加宽模型进行剪枝处理,可以得到精度更高的目标模型。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请一实施例提出的一种模型剪枝方法的应用场景示意图;
图2示出了本申请一实施例提出的一种模型剪枝方法的应用场景示意图;
图3示出了本申请一实施例提出的一种模型剪枝方法的流程图;
图4示出了本申请另一实施例提出的一种模型剪枝方法的流程图;
图5示出了本申请再一实施例提出的一种模型剪枝方法的流程图;
图6示出了本申请实施例提出的一种模型剪枝装置的结构框图;
图7示出了本申请实施例中的用于执行根据本申请实施例的模型剪枝方法的电子设备或服务器的结构框图;
图8示出了本申请实施例中的用于保存或者携带实现根据本申请实施例的模型剪枝方法的程序代码的存储单元。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
基于卷积神经网络的深度学习技术近年来蓬勃发展,在很多视觉、语言的相关领域任务上都取得了较好的成果,有一些甚至超过了人类本身。但是这种优异的成绩,很大程度上依赖于网络结构的复杂程度和庞大的参数量,而这又对计算机的算力和内存提出了更高的要求。对于一些边缘设备(例如手机、摄像头等),其算力和内存是严重受限的,这就限制了深度卷积神经网络在这些设备上的部署和应用。
为解决上述问题,学界和工业界提出了一系列模型压缩的方法,例如量化(quantization)、剪枝(pruning)、蒸馏(distillation)等。其中剪枝算法通过从原网络中删除一些冗余的参数,能够大幅降低网络的参数量,实现深度神经网络的“瘦身”,使其能够部署在资源受限的边缘设备上。
剪枝算法可分为结构化剪枝(structured pruning)和非结构化剪枝(unstructured pruning)。结构化剪枝,就是针对网络的某一层,删除一些冗余的输出通道,以实现参数量的减少;而非结构化剪枝,则并不是将某个输出通道完整删除,而是将其中一些元素置零。相比之下,虽然非结构化剪枝可以更精准地定位冗余参数,但结构化剪枝能够得到硬件更好的支持,更容易在硬件设备上实现,因此结构化剪枝在实际任务中有更广泛的应用。
但是,发明人在对相关的模型剪枝方法的研究中发现,现有的结构化剪枝方法,一般会设定一个测度(metric),也就是一种评价指标,用来判断网络中通道的重要性。一般通道的测度越大,说明该通道越重要;测度越小,说明该通道越不重要。然后将通道重要性排序,再根据用户需要的稀疏度(sparsity),计算删除通道测度的阈值(threshold)。测度小于该阈值的通道就会被删除,也就完成了剪枝。现有的基于测度的结构化剪枝方法,剪枝后得到的小模型,一般精度不高,即使通过一定数量的优化训练(finetuning),仍然与剪枝前的大模型的精度存在一定差距。导致在实际应用中,部署小模型通常是以牺牲一部分精度为代价的。
因此,发明人提出了本申请中的模型剪枝方法、装置、电子设备及存储介质。首先获取待剪枝模型的所有网络层各自对应的重要性,然后基于所有网络层各自对应的重要性,确定待剪枝模型的待加宽网络层和参考网络层,所述参考网络层为所述多个网络层中除所述待加宽网络层以外的网络层,再对待剪枝模型的待加宽网络层进行加宽处理,得到包括加宽网络层和参考网络层的加宽待剪枝模型,最后基于预设稀疏度对加宽待剪枝模型进行剪枝处理,得到目标模型。通过上述方法,按照模型的每一网络层对应的重要性,确定待加宽网络层,从而对确定的重要性高的待加宽网络层进行加宽处理得到加宽模型,再对加宽模型进行剪枝处理,可以得到精度更高的目标模型。
在本申请实施例中,所提供的模型剪枝方法可以由电子设备执行。在由电子设备执行的这种方式中,本申请实施例提供的模型剪枝方法中所有步骤可以均由电子设备执行。例如,如图1所示,通过电子设备100的处理器可以实时获取待剪枝模型的多个网络层各自对应的重要性;基于所述多个网络层各自对应的重要性,确定所述待剪枝模型的待加宽网络层和参考网络层,所述参考网络层为所述多个网络层中除所述待加宽网络层以外的网络层;对所述待剪枝模型的待加宽网络层进行加宽处理,得到包括加宽网络层和参考网络层的加宽待剪枝模型;基于预设稀疏度对所述加宽待剪枝模型进行剪枝处理,得到目标模型。
再者,本申请实施例提供的模型剪枝方法也可以由服务器(云端)进行执行。对应的,在由服务器执行的这种方式中,可以由服务器实时的获取待剪枝模型的多个网络层各自对应的重要性;基于所述多个网络层各自对应的重要性,确定所述待剪枝模型的待加宽网络层和参考网络层,所述参考网络层为所述多个网络层中除所述待加宽网络层以外的网络层;对所述待剪枝模型的待加宽网络层进行加宽处理,得到包括加宽网络层和参考网络层的加宽待剪枝模型;基于预设稀疏度对所述加宽待剪枝模型进行剪枝处理,得到目标模型。
另外,还可以由电子设备和服务器协同执行。在由电子设备和服务器协同执行的这种方式中,本申请实施例提供的模型剪枝方法中的部分步骤由电子设备执行,而另外部分的步骤则由服务器来执行。
示例性的,如图2所示,电子设备100可以执行模型剪枝方法包括的:获取待剪枝模型的多个网络层各自对应的重要性;基于所述多个网络层各自对应的重要性,确定所述待剪枝模型的待加宽网络层和参考网络层,所述参考网络层为所述多个网络层中除所述待加宽网络层以外的网络层;然后由服务器200来执行对所述待剪枝模型的待加宽网络层进行加宽处理,得到包括加宽网络层和参考网络层的加宽待剪枝模型;基于预设稀疏度对所述加宽待剪枝模型进行剪枝处理,得到目标模型。
需要说明的是,在由电子设备和服务器协同执行的这种方式中,电子设备和服务器分别执行的步骤不限于上述示例中所介绍的方式,在实际应用中,可以根据实际情况动态的调整电子设备和服务器分别执行的步骤。
需要说明的是,该电子设备100除了可以为图1和图2中所示的智能手机外,还可以为车机设备、可穿戴设备、平板电脑、笔记本电脑、智能音箱等。服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统。
下面将结合附图具体描述本申请的各实施例。
请参阅图3,本申请实施例提供的一种模型剪枝方法,应用于如图1或图2所示的电子设备或服务器,所述方法包括:
步骤S110:获取待剪枝模型的多个网络层各自对应的重要性。
在本申请实施例中,待剪枝模型可以为预先基于训练数据训练好的神经网络模型,比如卷积神经网络模型、全连接神经网络模型、残差神经网络模型以及生成对抗神经网络模型等,在此不做具体限定。其中,待剪枝模型中可以包括有多个网络层,网络层的类型可以有输入层、卷积层、池化层、循环层、全连接层以及输出层等,在此不做具体限定。示例性的,待剪枝模型的多个网络层可以包括输入层、多个卷积层、池化层、多个循环层、全连接层以及输出层等。
作为一种方式,基于训练数据训练得到待剪枝模型的过程包括:获取训练数据;基于所述训练数据对待训练模型进行迭代训练,直至满足训练结束条件,得到所述待剪枝模型。
其中,训练数据可以定义为D={x={x0,x1,...,xN},y={y0,y1,...,yN}},其中,x和y分别表示输入数据和对应的输出数据。在本申请实施例中,可以根据模型的作用来确定训练数据,比如,若模型是用来识别图像中的物体的,那么训练数据就可以为包括目标物的图像;若模型是用来预测人体关键点的,那么训练数据就可以为包括人体关键点的图像等。
训练结束条件可以为预先设置的表征训练结束的条件,比如训练结束条件可以设置为训练迭代次数满足预设次数;或者训练结束条件可以为损失函数值满足预设损失函数值;又或者训练结束条件还可以为待训练模型的网络参数满足预设网络参数。其中,待训练模型的网络参数可以包括每一网络层中的每个通道对应的权重、偏置等,在此不做具体限定。
在本申请实施例中,若待训练模型可以包括有L层网络层,其中待训练模型的网络参数可以定义为其中,L表示待训练模型的网络层数,Cl表示第l层网络层的输出通道数量,1≤l≤L,CL表示第L层网络层的输出通道数量,表示第1层网络层的第Cl个输出通道的参数,表示第L层网络层的第CL个输出通道的参数。一般地,又可以将通道数量Cl定义为第l层网络层的宽度,Cl越大,就表征第l层网络层越宽。
进一步的,可以损失函数定义为C(D|W),用于计算输入数据和输出数据的损失函数值。定义待训练模型的网络输入的批大小(batch size)为1,设第l层网络层输出的特征图(feature map)为其中,Hl表征特征图的高,Wl表征特征图的宽。
那么对于第l层网络层的第k通道,将权重通过卷积(*)作用于上一层输出zl-1,可以得到第k通道的特征图即其中,p为卷积核尺寸(kernel size),R(*)为激活函数,例如线性整流函数。其中,表示第l层网络层的第k个输出通道的参数。
在通过训练数据对待训练模型进行迭代训练,可以在检测到待训练模型的网络参数满足预设网络参数时,结束训练,或者可以在检测到通过损失函数C(D|W)计算得到的损失函数值满足预设损失函数值时,结束训练,在此不做具体限定。
在本申请实施例中,待剪枝模型的多个网络层可以为从待剪枝模型的所有网络层中筛选出的一些网络层,也可以为待剪枝模型的所有网络层。
其中,每个网络层的重要性用于表征该层对于待剪枝模型的重要程度。可选的,每个网络层的重要性可以基于每个网络层中的每个输出通道的测度计算得到,其中,测度用于表征每个输出通道对于该网络层的重要程度。作为一种方式,每个网络层对应的重要性可以预先计算,并进行存储,当需要获取待剪枝模型的多个网络层各自对应的重要性时,可以从存储区域进行获取。作为另一种方式,待剪枝模型的多个网络层各自对应的重要性也可以实时计算得到。
步骤S120:基于所述多个网络层各自对应的重要性,确定所述待剪枝模型的待加宽网络层和参考网络层,所述参考网络层为所述多个网络层中除所述待加宽网络层以外的网络层。
在本申请实施例中,待加宽网络层为从待剪枝模型的多个网络层中确定的需要进行加宽处理的网络层;参考网络层为从待剪枝模型的多个网络层中的确定的不需要进行加宽处理的网络层。待加宽网络层和参考网络层构成待剪枝模型的多个网络层。其中,加宽处理可以理解为增加待剪枝模型中的某些网络层的宽度,即增加某些网络层的输出通道数量,或者可以理解为对原模型的某些网络层的权重进行修改。
作为一种方式,在获取到待剪枝模型的每个网络层的重要性后,可以按照每个网络层的重要性对待剪枝模型的多个网络层进行重要性排序,得到排序后的多个网络层。其中,排序的顺序可以为按照重要性从高到低的顺序进行排序,或者排序的顺序可以为按照重要性从低到高的顺序进行排序,在此不做具体限定。
在得到排序后的多个网络层后,可以从排序后的多个网络层中获取预设数量或者获取指定排序位置的网络层作为需要进行加宽处理的网络层,即确定待加宽网络层。将待剪枝模型的多个网络层中除确定的待加宽网络层以外的网络层作为参考网络层。
步骤S130:对所述待剪枝模型的待加宽网络层进行加宽处理,得到包括加宽网络层和参考网络层的加宽待剪枝模型。
在本申请实施例中,在通过上述方式确定了待加宽网络层后,对确定的待加宽网络层进行加宽处理,得到加宽后的网络层,即得到加宽网络层。
在对待剪枝模型的待加宽网络层进行加宽处理时,可以对不同的待加宽网络层进行不同程度的加宽处理,即对不同的待加宽网络层增加不同数量的输出通道。作为一种方式,在对不同的待加宽网络层增加不同数量的输出通道时,可以根据每个待加宽网络层的重要性来确定每个待加宽网络层对应的增加的输出通道数量。具体的,比如若待加宽网络层的重要性越高,则对该网络层增加的输出通道的数量越多;反之,若待加宽网络层的重要性越低,则对该网络层增加的输出通道的数量越少。当然,也可以不按照待加宽网络层的重要性对待加宽网络层进行加宽处理,作为另一种方式,也可以按照预设加宽比例对待加宽网络层进行加宽处理。其中,预设加宽比例用于表征对每个待加宽网络层增加的输出通道的数量。
步骤S140:基于预设稀疏度对所述加宽待剪枝模型进行剪枝处理,得到目标模型。
在本申请实施例中,预设稀疏度为预先设置的对加宽待剪枝模型的网络层中的输出通道进行删除的比例。比如可以将预设稀疏度设置为0.2,即表征对每一网络层所包括的输出通道中的20%的输出通道进行删除。
作为一种方式,预设稀疏度可以包括不止一个稀疏度。具体的,为了可以更精确的对加宽待剪枝模型进行剪枝处理,可以为加宽待剪枝模型中的加宽网络层和参考网络层设置不同的稀疏度,进而可以基于不同的稀疏度对加宽网络层和参考网络层进行不同程度的剪枝。
在按照预设稀疏度对加宽待剪枝模型进行剪枝处理时,可以基于加宽待剪枝模型中的每一网络层所包括的通道各自对应的测度的大小,对每一网络层进行剪枝处理。具体的,在基于加宽待剪枝模型中的每一网络层所包括的通道各自对应的测度的大小,对每一网络层进行剪枝处理时,可以获取预设的测度阈值,然后从对应的测度小于测度阈值的输出通道中选择预设稀疏度对应的数量的输出通道进行删除,或者,可以直接按照每个输出通道的测度的大小对每个输出通道进行排序,按照预设稀疏度删除排序后最后的通道数量,在此不做具体限定。其中,对输出通道进行删除也可以理解为将输出通道对应的权重设置为0。
本申请提供的一种模型剪枝方法,首先获取待剪枝模型的所有网络层各自对应的重要性,然后基于所有网络层各自对应的重要性,确定待剪枝模型的待加宽网络层和参考网络层,所述参考网络层为所述多个网络层中除所述待加宽网络层以外的网络层,再对待剪枝模型的待加宽网络层进行加宽处理,得到包括加宽网络层和参考网络层的加宽待剪枝模型,最后基于预设稀疏度对加宽待剪枝模型进行剪枝处理,得到目标模型。通过上述方法,按照模型的每一网络层对应的重要性,确定待加宽网络层,从而对确定的重要性高的待加宽网络层进行加宽处理得到加宽模型,再对加宽模型进行剪枝处理,可以得到精度更高的目标模型。
请参阅图4,本申请实施例提供的一种模型剪枝方法,应用于如图1或图2所示的电子设备或服务器,所述方法包括:
步骤S210:获取待剪枝模型的多个网络层各自对应的重要性。
步骤S220:基于所述多个网络层各自对应的重要性,确定所述待剪枝模型的待加宽网络层和参考网络层。
步骤S230:获取预设加宽层数和预设加宽比例。
在本申请实施例中,预设加宽层数表征需要将待剪枝模型中的多少网络层进行加宽处理,预设加宽比例表征每一个需要进行加宽处理的网络层对应增加的输出通道比例。示例性的,可以将预设加宽层数定义为Nw(number of layers to be widened),将预设加宽比例定义为rw(ratio of widening)。其中, 表征第nw个加宽网络层的预设加宽比例,nw表示加宽网络层的索引。
步骤S240:基于所述预设加宽层数和所述预设加宽比例,对所述待加宽模型的待加宽网络层进行加宽处理,得到所述包括加宽网络层和参考网络层的加宽待剪枝模型。
在本申请实施例中,基于预设加宽层数确定待剪枝模型中需要进行加宽处理的网络层,基于预设加宽比例确定每个需要进行加宽处理的网络层需要增加的输出通道的数量。
其中,在基于预设加宽层数确定待剪枝模型中需要进行加宽处理的网络层时,可以基于每个网络层对应的重要性以及预设加宽层数来确定待剪枝模型中需要进行加宽处理的网络层;然后基于每个网络层的每个输出通道的测度以及预设加宽比例,确定每个需要进行加宽处理的网络层需要增加的输出通道的数量。示例性的,将待剪枝模型的多个网络层按照重要性从大到小的顺序进行排序,则前Nw层需要进行加宽处理(即增加输出通道),加宽后得到其中,表征待加宽网络层中的每个输出通道的参数,表征加宽网络层中的每个输出通道的参数。表征每个加宽网络层的输出通道数量,表示待加宽网络层的输出通道数量。
步骤S250:对所述加宽待剪枝模型进行重训练,得到训练后的加宽待剪枝模型。
在本申请实施例中,重训练指的是利用前述训练数据对加宽待剪枝模型重新进行训练,直至满足训练结束条件,得到训练后的加宽待剪枝模型。经过重训练后得到的加宽待剪枝模型的Nw层中新加入的输出通道的测度可能会大于原输出通道,因此再进行剪枝,就可以保留更加重要的输出通道。
在本申请实施例中,加宽待剪枝模型经过重训练后,新增加的输出通道的重要程度可能会超过原本的输出通道,因而剪枝时能够保留更重要的通道。
其中,在步骤S250之前还可以包括:
步骤S251:获取所述待剪枝模型的每一网络层各自对应的总通道数量。
在本申请实施例中,待剪枝模型的每一网络层各自对应的总通道数量指的是未进行加宽处理之前每一网络层原本的输出通道数量。
步骤S252:基于所述第一稀疏度确定所述待剪枝模型的每一待加宽网络层和每一参考网络层各自对应的第一通道数量,所述第一通道数量为每一待加宽网络层和每一参考网络层各自对应的需要删除的通道数量。
在本申请实施例中,在剪枝前,用户会为待剪枝模型的每个网络层设定目标稀疏度sl∈[0,1),并且一般地,会为待剪枝模型的所有网络层设置相同的稀疏度,即{sl=s,l∈[1,L]}。但经过加宽处理,待剪枝模型中有Nw层增加了输出通道数量,因此为了能够达到原有的压缩程度,需要重新计算需要删除的通道数量。对于未进行加宽处理的网络层(即参考网络层),需要删除的输出通道的数量不变,即同样的每一待加宽网络层原本需要删除的通道数量为
步骤S253:基于所述待剪枝模型的每一网络层各自对应的所述总通道数量和所述第一通道数量,确定每一网络层各自对应的第二通道数量,所述第二通道数量为每一网络层各自对应的剩余通道数量。
在本申请实施例中,待剪枝模型的网络层包括待加宽网络层和参考网络层。其中,基于待剪枝模型的每一网络层各自对应的总通道数量和第一通道数量,确定每一网络层各自对应的第二通道数量,即基于待剪枝模型的每一待加宽网络层各自对应的总通道数量和第一通道数量,确定每一待加宽网络层对应的第二通道数量;基于每一参考网络层对应的总通道数量和第二通道数量,确定每一参考网络层对应的第二通道数量。
步骤S254:获取所述加宽待剪枝模型的每一加宽网络层各自对应的总通道数量。
在本申请实施例中,每一加宽网络层对应的总通道数量可以理解为进行加宽处理后的每一网络层对应的输出通道数量。
步骤S255:基于每一加宽网络层各自对应的总通道数量和每一待加宽网络层对应的第二通道数量,确定所述加宽待剪枝模型的每一加宽网络层各自对应的第一通道数量。
步骤S256:基于所述加宽待剪枝模型的每一加宽网络层各自对应的所述总通道数量和所述第二通道数量,确定所述第二稀疏度。
在本申请实施例中,基于所述加宽待剪枝模型的每一加宽网络层各自对应的所述总通道数量和所述第一通道数量,确定每一加宽网络层对应的第二稀疏度。其中,每一加宽网络层各自对应的第二稀疏度为不同的加宽网络层可以对应不同的第二稀疏度。
步骤S260:基于第一稀疏度对所述训练后的加宽待剪枝模型的参考网络层进行剪枝处理,基于第二稀疏度对所述训练后的加宽待剪枝模型的加宽网络层进行剪枝处理,得到所述目标模型,所述第一稀疏度为预设稀疏度,所述第二稀疏度基于加宽后的网络层的通道数量确定。
在本申请实施例中,对于训练后的加宽待剪枝模型中的参考网络层,通过第一稀疏度对其进行剪枝处理,对于训练后的加宽待剪枝模型中的加宽网络层,通过计算得到的第二稀疏度对其进行剪枝处理。
本申请提供的一种模型剪枝方法,按照模型的每一网络层对应的重要性,确定待加宽网络层,从而对确定的重要性高的待加宽网络层进行加宽处理得到加宽模型,再对加宽模型进行剪枝处理,可以得到精度更高的目标模型。
请参阅图5,本申请实施例提供的一种模型剪枝方法,应用于如图1或图2所示的电子设备或服务器,所述方法包括:
步骤S310:获取所述待剪枝模型的每一网络层包括的通道各自对应的测度,所述测度用于表征对应的通道的重要程度。
在本申请实施例中,待剪枝模型的每一网络层中每个输出通道对应的测度可以通过预设计算方式,以及基于每个输出通道对应的权重计算得到。其中,预设计算方式可以包括基于连接敏感度的方法SNIP或者基于泰勒一阶展开式的方法TaylorFO。
步骤S320:基于每一网络层包括的通道各自对应的测度,确定每一网络层对应的重要性,以得到所述待剪枝模型的多个网络层各自对应的重要性。
作为一种方式,基于每一网络层包括的通道各自对应的测度,确定每一网络层对应的重要性,以得到所述待剪枝模型的多个网络层各自对应的重要性,包括:基于每一网络层包括的通道各自对应的测度,确定每一网络层各自对应的平均测度,将所述平均测度作为每一网络层对应的重要性,以得到所述待剪枝模型的多个网络层各自对应的重要性。
在本申请实施例中,基于每一网络层的每个输出通道的测度,可以定义每个网络层的测度,即定义每个网络层的重要性。具体的,对于第l层网络层,其对应的重要性Il定义为:即第l层网络层的重要性由其Cl个输出通道测度的平均值决定。
步骤S330:基于所述多个网络层各自对应的重要性,对所述待剪枝模型的多个网络层按照重要性从大到小的顺序进行排序,得到排序后的多个网络层。
在本申请实施例中,在得到多个网络层各自对应的重要性后,按照重要性从大到小的顺序对多个网络层进行降序排列,以便可以更快的从多个网络层中确定待加宽网络层。
步骤S340:从所述排序后的多个网络层中,获取指定排序位置的网络层作为所述待剪枝模型的待加宽网络层。
在本申请实施例中,指定排序位置可以为排列在前指定排序位置的网络层,比如可以从排序后的多个网络层中,获取排在前5的5个网络层作为待加宽网络层。
步骤S350:将所述排序后的多个网络层中除所述待加宽网络层以外的网络层作为所述待剪枝模型的参考网络层。
步骤S360:对所述待剪枝模型的待加宽网络层进行加宽处理,得到包括加宽网络层和参考网络层的加宽待剪枝模型。
步骤S370:基于预设稀疏度对所述加宽待剪枝模型进行剪枝处理,得到目标模型。
在本申请实施例中,在得到目标模型后,还可以根据需求,对剪枝后的模型进行一定次数的优化训练,使得训练后得到的目标模型的精度更高。
本申请提供的一种模型剪枝方法,按照模型的每一网络层对应的重要性,确定待加宽网络层,从而对确定的重要性高的待加宽网络层进行加宽处理得到加宽模型,再对加宽模型进行剪枝处理,可以得到精度更高的目标模型。
请参阅图6,本申请实施例提供的一种模型剪枝装置400,所述装置400包括:
重要性获取单元410,用于获取待剪枝模型的多个网络层各自对应的重要性。
作为一种方式,重要性获取单元410具体用于获取所述待剪枝模型的每一网络层包括的通道各自对应的测度,所述测度用于表征对应的通道的重要程度;基于每一网络层包括的通道各自对应的测度,确定每一网络层对应的重要性,以得到所述待剪枝模型的多个网络层各自对应的重要性。
其中,重要性获取单元410具体用于基于每一网络层包括的通道各自对应的测度,确定每一网络层各自对应的平均测度,将所述平均测度作为每一网络层对应的重要性,以得到所述待剪枝模型的多个网络层各自对应的重要性。
网络层确定单元420,用于基于所述多个网络层各自对应的重要性,确定所述待剪枝模型的待加宽网络层和参考网络层,所述参考网络层为所述多个网络层中除所述待加宽网络层以外的网络层。
作为一种方式,网络层确定单元420具体用于基于所述多个网络层各自对应的重要性,对所述待剪枝模型的多个网络层按照重要性从大到小的顺序进行排序,得到排序后的多个网络层;从所述排序后的多个网络层中,获取指定排序位置的网络层作为所述待剪枝模型的待加宽网络层;将所述排序后的多个网络层中除所述待加宽网络层以外的网络层作为所述待剪枝模型的参考网络层。
加宽单元430,用于对所述待剪枝模型的待加宽网络层进行加宽处理,得到包括加宽网络层和参考网络层的加宽待剪枝模型。
作为一种方式,加宽单元430具体用于获取预设加宽层数和预设加宽比例;基于所述预设加宽层数和所述预设加宽比例,对所述待加宽模型的待加宽网络层进行加宽处理,得到所述包括加宽网络层和参考网络层的加宽待剪枝模型。
剪枝单元440,用于基于预设稀疏度对所述加宽待剪枝模型进行剪枝处理,得到目标模型。
作为一种方式,剪枝单元440具体用于对所述加宽待剪枝模型进行重训练,得到训练后的加宽待剪枝模型;基于第一稀疏度对所述训练后的加宽待剪枝模型的参考网络层进行剪枝处理,基于第二稀疏度对所述训练后的加宽待剪枝模型的加宽网络层进行剪枝处理,得到所述目标模型,所述第一稀疏度为预设稀疏度,所述第二稀疏度基于加宽后的网络层的通道数量确定。
进一步的,剪枝单元440还用于获取所述待剪枝模型的每一网络层各自对应的总通道数量;基于所述第一稀疏度确定所述待剪枝模型的每一待加宽网络层和每一参考网络层各自对应的第一通道数量,所述第一通道数量为每一待加宽网络层和每一参考网络层各自对应的需要删除的通道数量;基于所述待剪枝模型的每一网络层各自对应的所述总通道数量和所述第一通道数量,确定每一网络层各自对应的第二通道数量,所述第二通道数量为每一网络层各自对应的剩余通道数量;获取所述加宽待剪枝模型的每一加宽网络层各自对应的总通道数量;基于每一加宽网络层各自对应的总通道数量和每一待加宽网络层对应的第二通道数量,确定所述加宽待剪枝模型的每一加宽网络层各自对应的第一通道数量;基于所述加宽待剪枝模型的每一加宽网络层各自对应的所述总通道数量和所述第一通道数量,确定所述第二稀疏度。
需要说明的是,本申请中装置实施例与前述方法实施例是相互对应的,装置实施例中具体的原理可以参见前述方法实施例中的内容,此处不再赘述。
下面将结合图7对本申请提供的一种电子设备或服务器进行说明。
请参阅图7,基于上述的模型剪枝方法、装置,本申请实施例还提供的另一种可以执行前述模型剪枝方法的电子设备或服务器800。电子设备或服务器800包括相互耦合的一个或多个(图中仅示出一个)处理器802、存储器804以及网络模块806。其中,该存储器804中存储有可以执行前述实施例中内容的程序,而处理器802可以执行该存储器804中存储的程序。
其中,处理器802可以包括一个或者多个处理核。处理器802利用各种接口和线路连接整个电子设备或服务器800内的各个部分,通过运行或执行存储在存储器804内的指令、程序、代码集或指令集,以及调用存储在存储器804内的数据,执行电子设备或服务器800的各种功能和处理数据。可选地,处理器802可以采用数字信号处理(Digital SignalProcessing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器802可集成中央处理器(Central Processing Unit,CPU)、图像处理器(Graphics ProcessingUnit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器802中,单独通过一块通信芯片进行实现。
存储器804可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器804可用于存储指令、程序、代码、代码集或指令集。存储器804可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储电子设备或服务器800在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。
所述网络模块806用于接收以及发送电磁波,实现电磁波与电信号的相互转换,从而与通讯网络或者其他设备进行通讯,例如和音频播放设备进行通讯。所述网络模块806可包括各种现有的用于执行这些功能的电路元件,例如,天线、射频收发器、数字信号处理器、加密/解密芯片、用户身份模块(SIM)卡、存储器等等。所述网络模块806可与各种网络如互联网、企业内部网、无线网络进行通讯或者通过无线网络与其他设备进行通讯。上述的无线网络可包括蜂窝式电话网、无线局域网或者城域网。例如,网络模块806可以与基站进行信息交互。
请参考图8,其示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读存储介质900中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读存储介质900可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质900包括非易失性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质900具有执行上述方法中的任何方法步骤的程序代码910的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码910可以例如以适当形式进行压缩。
本申请提供的一种模型剪枝方法、装置、电子设备以及存储介质,首先获取待剪枝模型的所有网络层各自对应的重要性,然后基于所有网络层各自对应的重要性,确定待剪枝模型的待加宽网络层和参考网络层,所述参考网络层为所述多个网络层中除所述待加宽网络层以外的网络层,再对待剪枝模型的待加宽网络层进行加宽处理,得到包括加宽网络层和参考网络层的加宽待剪枝模型,最后基于预设稀疏度对加宽待剪枝模型进行剪枝处理,得到目标模型。通过上述方法,按照模型的每一网络层对应的重要性,确定待加宽网络层,从而对确定的重要性高的待加宽网络层进行加宽处理得到加宽模型,再对加宽模型进行剪枝处理,可以得到精度更高的目标模型。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。
Claims (10)
1.一种模型剪枝方法,其特征在于,所述方法包括:
获取待剪枝模型的多个网络层各自对应的重要性;
基于所述多个网络层各自对应的重要性,确定所述待剪枝模型的待加宽网络层和参考网络层,所述参考网络层为所述多个网络层中除所述待加宽网络层以外的网络层;
对所述待剪枝模型的待加宽网络层进行加宽处理,得到包括加宽网络层和参考网络层的加宽待剪枝模型;
基于预设稀疏度对所述加宽待剪枝模型进行剪枝处理,得到目标模型。
2.根据权利要求1所述的方法,其特征在于,所述对所述待加宽模型的待加宽网络层进行加宽处理,得到包括加宽网络层和参考网络层的加宽待剪枝模型,包括:
获取预设加宽层数和预设加宽比例;
基于所述预设加宽层数和所述预设加宽比例,对所述待加宽模型的待加宽网络层进行加宽处理,得到所述包括加宽网络层和参考网络层的加宽待剪枝模型。
3.根据权利要求2所述的方法,其特征在于,所述基于预设稀疏度对所述加宽待剪枝模型进行剪枝处理,得到目标模型,包括:
对所述加宽待剪枝模型进行重训练,得到训练后的加宽待剪枝模型;
基于第一稀疏度对所述训练后的加宽待剪枝模型的参考网络层进行剪枝处理,基于第二稀疏度对所述训练后的加宽待剪枝模型的加宽网络层进行剪枝处理,得到所述目标模型,所述第一稀疏度为预设稀疏度,所述第二稀疏度基于加宽后的网络层的通道数量确定。
4.根据权利要求3所述的方法,其特征在于,所述对所述加宽待剪枝模型进行重训练,得到训练后的加宽待剪枝模型之前还包括:
获取所述待剪枝模型的每一网络层各自对应的总通道数量;
基于所述第一稀疏度确定所述待剪枝模型的每一待加宽网络层和每一参考网络层各自对应的第一通道数量,所述第一通道数量为每一待加宽网络层和每一参考网络层各自对应的需要删除的通道数量;
基于所述待剪枝模型的每一网络层各自对应的所述总通道数量和所述第一通道数量,确定每一网络层各自对应的第二通道数量,所述第二通道数量为每一网络层各自对应的剩余通道数量;
获取所述加宽待剪枝模型的每一加宽网络层各自对应的总通道数量;
基于每一加宽网络层各自对应的总通道数量和每一待加宽网络层对应的第二通道数量,确定所述加宽待剪枝模型的每一加宽网络层各自对应的第一通道数量;
基于所述加宽待剪枝模型的每一加宽网络层各自对应的所述总通道数量和所述第一通道数量,确定所述第二稀疏度。
5.根据权利要求1所述的方法,其特征在于,所述获取待剪枝模型的多个网络层各自对应的重要性,包括:
获取所述待剪枝模型的每一网络层包括的通道各自对应的测度,所述测度用于表征对应的通道的重要程度;
基于每一网络层包括的通道各自对应的测度,确定每一网络层对应的重要性,以得到所述待剪枝模型的多个网络层各自对应的重要性。
6.根据权利要求5所述的方法,其特征在于,所述基于每一网络层包括的通道各自对应的测度,确定每一网络层对应的重要性,以得到所述待剪枝模型的多个网络层各自对应的重要性,包括:
基于每一网络层包括的通道各自对应的测度,确定每一网络层各自对应的平均测度,将所述平均测度作为每一网络层对应的重要性,以得到所述待剪枝模型的多个网络层各自对应的重要性。
7.根据权利要求1所述的方法,其特征在于,基于所述多个网络层各自对应的重要性,确定所述待剪枝模型的待加宽网络层和参考网络层,包括:
基于所述多个网络层各自对应的重要性,对所述待剪枝模型的多个网络层按照重要性从大到小的顺序进行排序,得到排序后的多个网络层;
从所述排序后的多个网络层中,获取指定排序位置的网络层作为所述待剪枝模型的待加宽网络层;
将所述排序后的多个网络层中除所述待加宽网络层以外的网络层作为所述待剪枝模型的参考网络层。
8.一种模型剪枝装置,其特征在于,所述装置包括:
重要性获取单元,用于获取待剪枝模型的多个网络层各自对应的重要性;
网络层确定单元,用于基于所述多个网络层各自对应的重要性,确定所述待剪枝模型的待加宽网络层和参考网络层,所述参考网络层为所述多个网络层中除所述待加宽网络层以外的网络层;
加宽单元,用于对所述待剪枝模型的待加宽网络层进行加宽处理,得到包括加宽网络层和参考网络层的加宽待剪枝模型;
剪枝单元,用于基于预设稀疏度对所述加宽待剪枝模型进行剪枝处理,得到目标模型。
9.一种电子设备,其特征在于,包括一个或多个处理器;一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行权利要求1-7任一所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有程序代码,其中,在所述程序代码被处理器运行时执行权利要求1-7任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211644018.6A CN115983367A (zh) | 2022-12-20 | 2022-12-20 | 模型剪枝方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211644018.6A CN115983367A (zh) | 2022-12-20 | 2022-12-20 | 模型剪枝方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115983367A true CN115983367A (zh) | 2023-04-18 |
Family
ID=85965957
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211644018.6A Pending CN115983367A (zh) | 2022-12-20 | 2022-12-20 | 模型剪枝方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115983367A (zh) |
-
2022
- 2022-12-20 CN CN202211644018.6A patent/CN115983367A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111488985B (zh) | 深度神经网络模型压缩训练方法、装置、设备、介质 | |
CN111401516B (zh) | 一种神经网络通道参数的搜索方法及相关设备 | |
CN109840589B (zh) | 一种在fpga上运行卷积神经网络的方法和装置 | |
CN112801164A (zh) | 目标检测模型的训练方法、装置、设备及存储介质 | |
CN110287775B (zh) | 手掌图像裁剪方法、装置、计算机设备及存储介质 | |
KR20210129031A (ko) | 모델 압축 방법, 이미지 처리 방법 및 장치 | |
CN111382863A (zh) | 一种神经网络压缩方法及装置 | |
CN112434188B (zh) | 一种异构数据库的数据集成方法、装置及存储介质 | |
CN111553215A (zh) | 人员关联方法及其装置、图卷积网络训练方法及其装置 | |
CN111784699B (zh) | 一种对三维点云数据进行目标分割方法、装置及终端设备 | |
CN116596095B (zh) | 基于机器学习的碳排放量预测模型的训练方法及装置 | |
CN113065593A (zh) | 模型训练方法、装置、计算机设备和存储介质 | |
CN112819157A (zh) | 神经网络训练的方法及装置、智能行驶控制的方法及装置 | |
CN112149708A (zh) | 数据模型选择优化方法、装置、计算机装置及存储介质 | |
US11507782B2 (en) | Method, device, and program product for determining model compression rate | |
CN115797726A (zh) | 模型获得方法、装置、电子设备及存储介质 | |
CN116992946A (zh) | 模型压缩方法、装置、存储介质和程序产品 | |
CN115983367A (zh) | 模型剪枝方法、装置、电子设备及存储介质 | |
CN114662607B (zh) | 基于人工智能的数据标注方法、装置、设备以及存储介质 | |
CN115774854A (zh) | 一种文本分类方法、装置、电子设备和存储介质 | |
CN115546554A (zh) | 敏感图像的识别方法、装置、设备和计算机可读存储介质 | |
CN115759192A (zh) | 一种神经网络加速方法、装置、设备、芯片及存储介质 | |
CN112037814B (zh) | 一种音频指纹的提取方法、装置、电子设备及存储介质 | |
CN111160530A (zh) | 模型的压缩处理方法、装置及计算机设备 | |
CN114596637B (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 |