深度学习模型压缩方法及相关设备与流程

文档序号:25873057发布日期:2021-07-16 16:59阅读:90来源:国知局
深度学习模型压缩方法及相关设备与流程

1.本发明涉及人工智能技术领域,尤其涉及一种深度学习模型压缩方法、一种深度学习模型压缩装置、一种深度学习模型压缩设备及一种计算机存储介质。


背景技术:

2.深度学习是学习样本数据的内在规律和表示层次,这些学习过程中获得的信息对诸如文字,图像和声音等数据的解释有很大的帮助。它的最终目标是让机器能够像人一样具有分析学习能力,能够识别文字、图像和声音等数据。
3.随着深度学习技术的快速发展,各种深度学习技术应用到生活中的各个角落。为了追求更高的精度和性能,不断地加深网络结构的宽度与深度,导致深度学习训练出来的模型越来越大。然而,人们的生活中,存在很多的边缘设备和移动设备。如果想要将这些深度学习训练的模型应用到这些边缘设备和移动设备上,由于这些设备的算力不足,导致不能做到实时给出结果,因此,亟需对模型进行压缩。


技术实现要素:

4.本发明实施例提供了一种深度学习模型压缩方法及相关设备,可以有效对模型进行压缩。
5.一方面,本发明实施例提供了一种深度学习模型压缩方法,包括:
6.获取深度学习模型的每层卷积层的输入特征图的每个通道对应的卷积值;
7.根据每个通道的卷积值与所在卷积层的总卷积值的比值,确定每个通道的通道贡献率;
8.根据所述通道贡献率和贡献率阈值,对每层卷积层的输入特征图的通道进行裁剪,得到压缩后的深度学习模型。
9.可选地,所述方法还包括:
10.确定深度学习模型的每层卷积层的各卷积核的权重矩阵的l1范数值;
11.裁剪所述l1范数值小于或等于范数阈值的卷积核,得到压缩后的深度学习模型。
12.可选地,所述方法还包括:
13.确定深度学习模型的每层卷积层的各卷积核之间的相似度;
14.裁剪所述相似度大于或等于相似度阈值的卷积核,得到压缩后的深度学习模型。
15.可选地,所述确定深度学习模型的每层卷积层的各卷积核之间的相似度,包括:
16.计算各卷积核之间的欧式距离或余弦距离;
17.根据各卷积核之间的欧式距离或余弦距离,确定各卷积核之间的相似度。
18.另一方面,本发明实施例提供了一种深度学习模型压缩装置,包括:
19.第一处理模块,用于获取深度学习模型的每层卷积层的输入特征图的每个通道对应的卷积值;
20.第二处理模块,用于根据每个通道的卷积值与所在卷积层的总卷积值的比值,确
定每个通道的通道贡献率;
21.第一裁剪模块,用于根据所述通道贡献率和贡献率阈值,对每层卷积层的输入特征图的通道进行裁剪,得到压缩后的深度学习模型。
22.可选地,所述装置还包括:
23.第三处理模块,用于确定深度学习模型的每层卷积层的各卷积核的权重矩阵的l1范数值;
24.第二裁剪模块,用于裁剪所述l1范数值小于或等于范数阈值的卷积核,得到压缩后的深度学习模型。
25.可选地,所述装置还包括:
26.第四处理模块,用于确定深度学习模型的每层卷积层的各卷积核之间的相似度;
27.第三裁剪模块,用于裁剪所述相似度大于或等于相似度阈值的卷积核,得到压缩后的深度学习模型。
28.可选地,所述第四处理模块包括:
29.距离计算子模块,用于计算各卷积核之间的欧式距离或余弦距离;
30.确定子模块,用于根据各卷积核之间的欧式距离或余弦距离,确定各卷积核之间的相似度。
31.另一方面,本发明实施例提供了一种深度学习模型压缩设备,包括:处理器和存储器;
32.所述处理器和存储器相连,其中,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以执行所述的深度学习模型压缩方法。
33.另一方面,本发明实施例提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时,执行如所述的深度学习模型压缩方法。
34.本发明实施例根据每个通道的通道贡献率以及贡献率阈值,对深度学习模型的每层卷积层的通道进行裁剪,减少了通道数,也即减少了模型的计算量,从而将深度学习模型进行有效的压缩。
附图说明
35.为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
36.图1是本发明实施例提供的一种深度学习模型压缩方法的流程示意图;
37.图2是本发明实施例提供的单个卷积核操作的示意图;
38.图3是本发明实施例提供的一种深度学习模型压缩方法的流程示意图;
39.图4是本发明实施例提供的一种深度学习模型压缩方法的流程示意图;
40.图5是本发明实施例提供的一种深度学习模型压缩装置的结构示意图;
41.图6是本发明实施例提供的一种深度学习模型压缩装置的结构示意图;
42.图7是本发明实施例提供的一种深度学习模型压缩装置的结构示意图;
43.图8是本发明实施例提供的一种深度学习模型压缩装置的结构示意图;
44.图9是本发明实施例提供的一种深度学习模型压缩设备的结构示意图。
具体实施方式
45.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
46.应当理解,本申请的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
47.在本发明中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本发明所描述的实施例可以与其它实施例相结合。
48.由于现有的深度学习模型越来越大,导致无法将深度学习模型应用在计算力较小的电子设备上,因此,本申请的方法通过对深度学习模型的通道进行裁剪,针对每个通道计算其对所在卷积层的贡献率,即通道贡献率,如果通道贡献率高,表明该通道对该层的输出特征图起到主导作用;如果通道贡献率低,表明该通道对该层的输出特征图所起作用不大。预先设定贡献率阈值,通过其对通道贡献率进行过滤,去掉贡献小的通道,保留贡献大的通道,从而最大限度地保留了该层具有关键意义的有效信息。对于低于贡献率阈值的通道,可以认为该通道对整个层的输出特征图的贡献可以忽略。深度学习模型的通道数减小,即减少了深度学习模型的计算量,从而将深度学习模型进行有效的压缩。本文中深度学习模型不限于图像识别模型(如人脸检测模型)、文字识别模型和声音识别模型,包含卷积层的深度学习模型均可以利用本发明实施例的压缩方法进行模型压缩。
49.请参见图1,图1是本发明实施例提供的一种深度学习模型压缩方法的流程示意图,该方法在电子设备上运行,该电子设备可以为通用的计算机、服务器等设备,当然在实际应用中,也可以为数据处理中心、云平台等,本申请并不限制上述电子设备的具体实现方式。如图1所示,深度学习模型压缩方法包括:
50.101、获取深度学习模型的每层卷积层的输入特征图的每个通道对应的卷积值;
51.具体地,深度学习模型可以包括多个卷积层,一个卷积层具有多个卷积核,以单个卷积层的通道裁剪为例进行说明,对于每个卷积层,计算输入特征图的每个通道对应的卷积值。
52.102、根据每个通道的卷积值与所在卷积层的总卷积值的比值,确定每个通道的通道贡献率;
53.具体地,将通道的卷积值与所在卷积层的总卷积值的比值确定为该通道对于所在卷积层的输出特征图的通道贡献率rate,以通道贡献率rate来评估每个通道对所在卷积层的输出特征图所做的贡献大小,也即每个通道在输出特征图的计算过程中所起到的作用大小。也可以依据输入特征图所有通道的卷积值计算所在卷积层的总卷积值。
54.103、根据通道贡献率和贡献率阈值,对每层卷积层的输入特征图的通道进行裁
剪,得到压缩后的深度学习模型。
55.具体地,对于每层卷积层,可以根据需要设定不同的贡献率阈值,过滤输出特征图不同程度重要性的数据特征。贡献率阈值越高,更多的特征信息将被过滤;贡献率阈值越低,则输出特征图将保留更多的特征信息。不同的卷积层的贡献率阈值可以不同。利用通道贡献率对输入特征图的通道进行裁剪,将通道贡献率小于或等于贡献率阈值的通道裁剪掉,保留通道贡献率大于贡献率阈值的通道,对每层通道裁剪后的卷积层,进行常规的卷积计算,就能够获取新的输出特征图,用这个新的输出特征图代替全通道计算所得的输出特征图。由于经过通道裁剪后,每层卷积层的输入特征图的通道减少,对应的卷积层的卷积核的通道也会减少,即每层卷积层的计算量将减少。利用图1的方法对深度学习模型所有的卷积层进行通道裁剪,能有效对深度学习模型进行压缩。
56.值得注意的是,对于每层卷积层,可以对该层的所有通道设定同一个贡献率阈值;也可以根据该层的输出特征图的通道数,即输出特征图的深度大小设定多个贡献率阈值,为输出特征图的一个通道设定一个贡献率阈值。
57.参考图2,图2是本发明实施例提供的单个卷积核操作的示意图;以深度学习模型的一个卷积层的卷积核的大小为3*3,输入特征图的通道数为3为例,其中,输入特征图的高为h
i
,输入特征图的宽为w
i
,x
i
为输入特征图中对应位置的特征值,k
i1
、k
i2
、k
i3
表示第i个卷积核对应每个通道的核(比如输入特征图的通道数为3,那么卷积核k深度为3,对应输入特征图的第1个通道计算卷积用到的核就是k
i1
)。下面对输入特征图的每个通道的通道贡献率的计算公式进行说明,由于当前卷积层的总卷积值为:
[0058][0059]
其中,n
k
为第n个卷积核的第k个通道,x
i1
为输入特征图中的第i个通道,对应第i个卷积核的第1个核,j为3*3卷积核的元素位置,因此,对应每个通道的卷积值的计算公式为:
[0060][0061]
而每个通道的通道贡献率rate的计算公式为:
[0062][0063]
进一步地,为了进一步对深度学习模型进行压缩,参考图3,图3是本发明实施例提供的一种深度学习模型压缩方法的流程示意图;方法还包括:
[0064]
301、确定深度学习模型的每层卷积层的各卷积核的权重矩阵的l1范数值;
[0065]
具体地,对每层卷积层的每个卷积核,计算其权重矩阵的l1范数值。
[0066]
302、裁剪l1范数值小于或等于范数阈值的卷积核,得到压缩后的深度学习模型。
[0067]
具体地,预先设定用于裁剪卷积核的范数阈值,例如0.1、0.2等,不同的卷积层的范数阈值可以相同也可以不同。对于同样的输入特征图,一个卷积核相比其他卷积核是否更重要、是否有必要继续存在于模型中,很大程度上取决于它的整体权值大小,l1范数值越
大的卷积核更有可能产生响应值较大的输出特征图,进而更有可能对网络最后的输出结果产生更大贡献。反过来,如果一个卷积核的所有权值都非常接近于0,那么无论给它输入什么样的特征图,其输出也将都是0,这说明该卷积核对于整个模型的表征能力贡献较小,很有可能是冗余的,因此可以直接裁剪去除。因此,通过范数阈值可以对卷积核进行裁剪,将l1范数值小于或等于范数阈值的卷积核裁剪掉,保留l1范数值大于范数阈值的卷积核,减少每层卷积层的卷积核个数,以对深度学习模型进行压缩。
[0068]
进一步地,为了更进一步对深度学习模型进行压缩,参考图4,图4是本发明实施例提供的一种深度学习模型压缩方法的流程示意图;方法还包括:
[0069]
401、确定深度学习模型的每层卷积层的各卷积核之间的相似度;
[0070]
具体地,计算每层卷积层的各卷积核之间的欧式距离或余弦距离;根据各卷积核之间的欧式距离或余弦距离,确定各卷积核之间的相似度。卷积核之间的欧式距离越大,则卷积核之间的相似度越低;类似的,卷积核之间的余弦距离距离越大,则卷积核之间的相似度越低。
[0071]
402、裁剪相似度大于或等于相似度阈值的卷积核,得到压缩后的深度学习模型。
[0072]
具体地,预先设定相似度阈值,以去除相似度高的冗余卷积核,减小每层卷积层的规模,压缩深度学习模型。其中,可以去除相似度大于或等于相似度阈值的卷积核,保留相似度小于相似度阈值的卷积核。对于不同的卷积层可以设置相同或者不同的相似度阈值。
[0073]
为了更清楚地说明本申请的方案,以人脸检测模型为例进行说明的是:
[0074]
首先,在基于卷积神经网络构建的人脸检测模型中,每层卷积层由若干个卷积单元组成,也即由不同的特征通道组成,每个特征通道的参数都是通过反向传播算法最佳化得到的。特征通道是提取输入的不同特征,第一层卷积层中的特征通道只能提取一些低级的特征,如图像的边缘、线条和角等层级,更多层的模型能从低级特征中迭代提取更复杂的特征。因此只有保证人脸检测模型中具有一定数量的卷积层结构,才能够保证对人脸图像识别的精确度。然而,大量的卷积层结构势必出现特征提取缓慢的不足,因此,需要利用本实施例的压缩方法对人脸检测模型进行压缩。
[0075]
在对人脸检测模型进行通道裁剪时,假设人脸检测模型包括n个卷积层,对卷积层进行通道裁剪需要遵循n个卷积层的排列顺序,在对第一个卷积层进行通道裁剪时,第一个卷积层即为当前目标卷积层,当第一个卷积层已完成了通道裁剪时,卷积积列队中的第二个卷积层则被识别为下一级目标卷积层。依次类推,当第n-1个卷积层已完成了通道裁剪时,卷积积列队中的第n个卷积层则被识别为下一级目标卷积层。每一个目标卷积层的通道裁剪过程具体如下:
[0076]
a:计算目标卷积层的输入特征图的每个通道对应的卷积值。
[0077]
b:根据每个通道的卷积值和目标卷积层的总卷积值的比值确定每个通道的通道贡献率,目标卷积层的总卷积值可以利用现有技术方法计算得到,这里不做特别限定。
[0078]
c:依据目标卷积层的贡献率阈值,对每个通道的通道贡献率进行判断,将通道贡献率小于或等于相应的贡献率阈值的通道裁剪掉,保留通道贡献率大于相应的贡献率阈值的通道。
[0079]
按照上述a-c的步骤对人脸检测模型的每层卷积层进行通道裁剪后,由于减小人脸检测模型所有的卷积层的计算量,能有效压缩人脸检测模型,加快人脸特征提取速度。另
外,人脸检测模型中的每层卷积层对应的贡献率阈值可以是不同的。
[0080]
为了进一步加速特征提取速度,可以对人脸检测模型的卷积核进行裁剪,可以基于卷积核的权重矩阵的l1范数值、各卷积核之间的相似度进行裁剪,可以参考图3和图4的描述,这里不再赘述。
[0081]
基于上述深度学习模型压缩方法实施例的描述,本发明实施例还公开了一种深度学习模型压缩装置,参考图5,图5是本发明实施例提供的一种深度学习模型压缩装置的结构示意图,深度学习模型压缩装置包括:
[0082]
第一处理模块501,用于获取深度学习模型的每层卷积层的输入特征图的每个通道对应的卷积值;
[0083]
第二处理模块502,用于根据每个通道的卷积值与所在卷积层的总卷积值的比值,确定每个通道的通道贡献率;
[0084]
第一裁剪模块503,用于根据通道贡献率和贡献率阈值,对每层卷积层的输入特征图的通道进行裁剪,得到压缩后的深度学习模型。
[0085]
本发明实施例根据每个通道的通道贡献率以及贡献率阈值,对每层卷积层的通道进行裁剪,减少了通道数,也即减少了模型的计算量,从而将深度学习模型进行有效的压缩。
[0086]
进一步地,参考图6,图6是本发明实施例提供的一种深度学习模型压缩装置的结构示意图;装置还包括:
[0087]
第三处理模块601,用于确定深度学习模型的每层卷积层的各卷积核的权重矩阵的l1范数值;
[0088]
第二裁剪模块602,用于裁剪l1范数值小于或等于范数阈值的卷积核,得到压缩后的深度学习模型。
[0089]
进一步地,参考图7,图7是本发明实施例提供的一种深度学习模型压缩装置的结构示意图;装置还包括:
[0090]
第四处理模块701,用于确定深度学习模型的每层卷积层的各卷积核之间的相似度;
[0091]
第三裁剪模块702,用于裁剪相似度大于或等于相似度阈值的卷积核,得到压缩后的深度学习模型。
[0092]
其中,参考图8,图8是本发明实施例提供的一种深度学习模型压缩装置的结构示意图;第四处理模块701包括:
[0093]
距离计算子模块801,用于计算各卷积核之间的欧式距离或余弦距离;
[0094]
确定子模块802,用于根据各卷积核之间的欧式距离或余弦距离,确定各卷积核之间的相似度。
[0095]
值得指出的是,其中,深度学习模型压缩装置的具体功能实现方式可以参见上述深度学习模型压缩方法的描述,这里不再进行赘述。所述的深度学习模型压缩装置中的各个单元或模块可以分别或全部合并为一个或若干个另外的单元或模块来构成,或者其中的某个(些)单元或模块还可以再拆分为功能上更小的多个单元或模块来构成,这可以实现同样的操作,而不影响本发明的实施例的技术效果的实现。上述单元或模块是基于逻辑功能划分的,在实际应用中,一个单元(或模块)的功能也可以由多个单元(或模块)来实现,或者
多个单元(或模块)的功能由一个单元(或模块)实现。
[0096]
基于上述方法实施例以及装置实施例的描述,本发明实施例还提供一种深度学习模型压缩设备。
[0097]
请参见图9,是本发明实施例提供的一种深度学习模型压缩设备的结构示意图。如图9所示,上述的深度学习模型压缩装置可以应用于所述深度学习模型压缩设备900,所述深度学习模型压缩设备900可以包括:处理器901,网络接口904和存储器905,此外,所述深度学习模型压缩设备900还可以包括:用户接口903,和至少一个通信总线902。其中,通信总线902用于实现这些组件之间的连接通信。其中,用户接口903可以包括显示屏(display)、键盘(keyboard),可选用户接口903还可以包括标准的有线接口、无线接口。网络接口904可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器905可以是高速ram存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器905可选的还可以是至少一个位于远离前述处理器901的存储装置。如图9所示,作为一种计算机存储介质的存储器905中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
[0098]
在图9所示的深度学习模型压缩设备900中,网络接口904可提供网络通讯功能;而用户接口903主要用于为用户提供输入的接口;而处理器901可以用于调用存储器905中存储的设备控制应用程序,以实现:
[0099]
获取深度学习模型的每层卷积层的输入特征图的每个通道对应的卷积值;
[0100]
根据每个通道的卷积值与所在卷积层的总卷积值的比值,确定每个通道的通道贡献率;
[0101]
根据通道贡献率和贡献率阈值,对每层卷积层的输入特征图的通道进行裁剪,得到压缩后的深度学习模型。
[0102]
在一个实施例中,处理器901还用于执行以下步骤:
[0103]
确定深度学习模型的每层卷积层的各卷积核的权重矩阵的l1范数值;
[0104]
裁剪l1范数值小于或等于范数阈值的卷积核,得到压缩后的深度学习模型。
[0105]
在一个实施例中,处理器901还用于执行以下步骤:
[0106]
确定深度学习模型的每层卷积层的各卷积核之间的相似度;
[0107]
裁剪相似度大于或等于相似度阈值的卷积核,得到压缩后的深度学习模型。
[0108]
在一个实施例中,处理器901在执行确定当前卷积层的各卷积核之间的相似度时,具体执行以下步骤:
[0109]
计算各卷积核之间的欧式距离或余弦距离;
[0110]
根据各卷积核之间的欧式距离或余弦距离,确定各卷积核之间的相似度。
[0111]
应当理解,本发明实施例中所描述的深度学习模型压缩设备900可执行前文所述深度学习模型压缩方法,也可执行前文所述深度学习模型压缩装置的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
[0112]
此外,这里需要指出的是:本发明实施例还提供了一种计算机存储介质,且所述计算机存储介质中存储有前文提及的深度学习模型压缩装置所执行的计算机程序,且所述计算机程序包括程序指令,当所述处理器执行所述程序指令时,能够执行前文所述深度学习模型压缩方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,
也不再进行赘述。对于本发明所涉及的计算机存储介质实施例中未披露的技术细节,请参照本发明方法实施例的描述。
[0113]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)或随机存储记忆体(random access memory,ram)等。
[0114]
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1