掌桥专利:专业的专利平台
掌桥专利
首页

一种机器学习模型压缩方法、装置及设备

文献发布时间:2023-06-19 10:16:30


一种机器学习模型压缩方法、装置及设备

技术领域

本发明涉及人工智能技术领域,尤其涉及一种机器学习模型压缩方法、装置及设备。

背景技术

随着人工智能技术的飞速发展,通过机器学习技术训练得到的机器学习模型种类越来越多,例如:利用神经网络算法得到的神经网络模型。机器学习模型应用至各行各业解决了很多技术问题,但是,机器学习模型中具有很多模型参数,需要占用较多的计算资源。如此,对于存储空间和计算资源有限的移动终端或嵌入式设备等,往往难以部署参数量较多的机器学习模型,也很难执行相应的运算量。或者,即使能够将机器学习模型部署至相应的设备,模型将占用较多的存储空间和计算资源,给设备的运行带来非常大影响。因此,需要对模型进行压缩。

常用的模型压缩方法是对模型进行裁剪,但对模型进行非规则的裁剪导致的模型稀疏还需通过额外的稀疏计算算法才能对模型进行加速,而通过对模型进行规则化裁剪后可直接对模型进行加速。目前,对于模型的规则化裁剪,主要是通过几何平均来进行裁剪,但是,几何平均很难找到模型中的冗余信息,由此导致模型压缩的效果比较差,准确率比较低。

发明内容

本发明实施例为了解决模型压缩过程中存在的上述问题,创造性地提供一种机器学习模型压缩方法、装置及设备。

根据本发明第一方面,提供了一种机器学习模型压缩方法,所述方法包括:获取待压缩模型的原始模型数据,所述原始模型数据包括所述待压缩模型的中间层的特征图信息;根据所述特征图信息,确定所述中间层的每一特征图的二维信息熵;根据所述二维信息熵,对所述待压缩模型进行裁剪,得到压缩后的模型数据。

根据本发明一实施方式,根据所述二维信息熵,对所述待压缩模型进行裁剪,得到压缩后的模型数据,包括:获取每一所述中间层的特征图裁剪数量;根据所述特征图裁剪数量,按照从中间层的输入单元层至输出单元层的顺序对所述待压缩模型的每一个中间层依次进行裁剪。

根据本发明一实施方式,按照从中间层的输入单元层至输出单元层的顺序对所述待压缩模型的每一个中间层依次进行裁剪,包括:针对每一所述中间层,按照所述中间层中每一特征图的二维信息熵的值从小到大的顺序,根据相应的特征图裁剪数量,确定需要裁剪的特征图;将需要裁剪的特征图的参数值删除或者置为零,得到裁剪后的中间层的特征图;将裁剪后的所述中间层的特征图输入至下一个中间层,得到下一个中间层的特征图;对每一所述中间层依次按照上述步骤进行裁剪,直至完成所有中间层的裁剪。

根据本发明一实施方式,获取每一所述中间层的特征图裁剪数量,包括:获取每一所述中间层的裁剪比例和相应的特征图总数;根据每一所述裁剪比例和相应地所述特征图总数,确定相应的中间层的特征图裁剪数量。

根据本发明一实施方式,根据所述特征图信息,确定所述中间层的每一特征图的二维信息熵,包括:根据所述特征图信息,确定每一特征图中每一特征参数的出现概率;针对一个特征图,根据所述特征图中每一特征参数的出现概率,确定特征图的二维信息熵。

根据本发明一实施方式,根据所述特征图信息,确定每一特征图中每一特征参数的出现概率,包括:针对每一特征图,将特征图中的值均匀量化,得到量化特征图;将所述量化特征图中的每一特征参数与其相邻特征参数均值组成一个邻域组合;根据所述特征参数和所述邻域组合,确定每一特征参数的出现概率。

根据本发明第二方面,还提供一种机器学习模型压缩装置,所述装置包括:获取模块,用于获取待压缩模型的原始模型数据,所述原始模型数据包括所述待压缩模型的中间层的特征图信息;二维信息熵确定模块,用于根据所述特征图信息,确定所述中间层的每一特征图的二维信息熵;裁剪模块,用于根据所述二维信息熵,对所述待压缩模型进行裁剪,得到压缩后的模型数据。

根据本发明一实施方式,所述裁剪模块包括:裁剪数量确定子模块,用于获取每一所述中间层的特征图裁剪数量;裁剪子模块,用于根据所述特征图裁剪数量,按照从中间层的输入单元层至输出单元层的顺序对所述待压缩模型的每一个中间层依次进行裁剪。

根据本发明一实施方式,所述二维信息熵确定模块包括:概率确定子模块,用于根据所述特征图信息,确定每一特征图中每一特征参数的出现概率;信息熵确定子模块,用于针对一个特征图,根据所述特征图中每一特征参数的出现概率,确定特征图的二维信息熵。

根据本发明第三方面,还提供一种设备,所述设备包括至少一个处理器、以及与所述处理器连接的至少一个存储器、总线;其中,所述处理器、所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行上述机器学习模型压缩方法。

根据本发明第四方面,又提供了一种计算机可读存储介质,所述存储介质包括一组计算机可执行指令,当所述指令被执行时用于执行上述任意所述机器学习模型压缩方法。

本发明实施例机器学习模型压缩方法、装置及设备,根据待压缩模型的原始模型数据中的中间层的特征图信息,确定所述中间层的每一特征图的二维信息熵,并根据所述二维信息熵,对所述待压缩模型进行裁剪,得到压缩后的模型数据。由此,利用二维信息熵对特征图的重要性进行合理评价,通过裁剪二维信息熵较小的特征图,对机器学习模型进行压缩,在保留机器学习模型的计算精度的基础上,显著降低模型存储空间,节约计算资源,使得机器学习模型能够部署至更多的设备,大大增加了机器学习模型的应用范围,并有效提高了设备运行速度。

需要理解的是,本发明的教导并不需要实现上面所述的全部有益效果,而是特定的技术方案可以实现特定的技术效果,并且本发明的其他实施方式还能够实现上面未提到的有益效果。

附图说明

通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:

在附图中,相同或对应的标号表示相同或对应的部分。

图1示出了本发明实施例机器学习模型压缩方法的实现流程示意图;

图2示出了本发明实施例机器学习模型压缩方法应用示例的实现流程示意图;

图3示出了本发明实施例装置的实现流程示意图;

图4示出了本发明实施例设备的组成结构示意图。

具体实施方式

下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为使本发明更加透彻和完整,并能够将本发明的范围完整地传达给本领域的技术人员。

下面结合附图和具体实施例对本发明的技术方案进一步详细阐述。

图1示出了本发明实施例机器学习模型压缩方法的实现流程示意图。

参考图1,本发明实施例机器学习模型压缩方法,至少包括如下操作流程:操作101,获取待压缩模型的原始模型数据,原始模型数据包括待压缩模型的中间层的特征图信息;操作102,根据特征图信息,确定中间层的每一特征图的二维信息熵;操作103,根据二维信息熵,对待压缩模型进行裁剪,得到压缩后的模型数据。

在操作101,获取待压缩模型的原始模型数据,原始模型数据包括待压缩模型的中间层的特征图信息。

举例说明,待压缩模型为经典的神经网络模型,具有输入层、中间层和输出层,原始模型数据就是指神经网络模型的各层所包含的特征图的数据。中间层的特征图数据量较大,是本发明实施例中对待压缩模型进行压缩的对象。因此,获取待压缩模型的原始模型数据时至少要获取待压缩模型的中间层的特征图信息。

操作102,根据特征图信息,确定中间层的每一特征图的二维信息熵。

二维信息熵是图像中的常用概念,在针对图像的有关表达中,图像的熵是一种特征的统计形式,它反映了图像中平均信息量的多少,表示图像灰度分布的聚集特征,却不能反映图像灰度分布的空间特征,为了表征这种空间特征,在一维熵的基础上引入能够反映灰度分布空间特征的特征量来组成图像的二维熵。

图像的二维信息熵反映图像灰度分布的空间特征,突出反映图像中像素位置的灰度信息和像素邻域内灰度分布的综合特征。当二维信息熵越大,说明图像中的像素和其临近像素的灰度跳变分布的越均匀,越丰富,图像所含信息也就越大。本发明实施例中利用这一特征,将二维信息熵应用在神经网络的中间特征图的裁剪。

在本发明一实施方式中,采用如下操作步骤实现根据特征图信息,确定中间层的每一特征图的二维信息熵:根据特征图信息,确定每一特征图中每一特征参数的出现概率;针对一个特征图,根据特征图中每一特征参数的出现概率,确定特征图的二维信息熵。

举例说明,针对一个特征图,根据所述特征图中每一特征参数的出现概率,利用下式(1),确定特征图的二维信息熵:

其中,H表示所述特征图的二维信息熵;

I表示所述特征图中特征参数的最大值,0≤i≤I;

J表示所述特征图中每一特征参数的相邻特征参数均值的最大值,0≤j≤J;

P

在本发明一实施方式中,根据特征图信息,确定每一特征图中每一特征参数的出现概率,包括:针对每一特征图,将特征图中的值均匀量化,得到量化特征图;将量化特征图中的每一特征参数与其相邻特征参数均值组成一个邻域组合;根据特征参数和邻域组合,确定每一特征参数的出现概率。

举例说明,针对机器学习模型的特征图,例如:神经网络模型,特征图的值是一个二维数组,包括多个值。均匀量化这里可以理解为归一化处理,可以将特征图中的多个值四舍五入得到多个整数值。或者将特征图中的属于某一个范围的值记为同一个数值,例如:将特征图中属于0~4范围的值统一记为2, 5~8的值统一计为6……具体的数值范围可以根据实际需要设置,如此,将特征图的二维数组中值进行归一化处理,大大减小模型压缩过程的计算量,有效提高对待压缩模型进行裁剪的效率。

把特征图中的值作为一个二维数组,对于均匀量化后得到的特征图中的每一特征参数,取该特征参数上下左右方向的相邻参数的数值的平均值,作为其相邻特征参数均值。例如:某一个特征参数位于第二行第三列,则第一行第三列的特征参数为其上方的特征参数,以此类推,可以得到其上下左右方向的四个特征参数。对于特征图的特殊位置的特征参数,可能缺少上方、下方、左方或右方等相邻参数中的一个或两个。例如:对于第一行第一列的特征参数,其上方和左方没有其他特征参数,对于第二行最后一列的特征参数,其右方没有其他特征参数等。对于这些特殊位置的特征参数,以其所具有的相邻参数的数值的平均值作为其相邻参数均值。每一个特征参数和其相邻参数均值组成一个邻域组合。

根据特征参数和邻域组合,利用下式(2),确定每一特征参数的出现概率:

P

其中,P

f(i,j)表示特征图中邻域组合(i,j)的个数;

N表示特征图中邻域组合的总数量;

0≤i≤I,I表示所述特征图中特征参数的最大值;

0≤j≤J,J表示所述特征图中每一特征参数的相邻特征参数均值的最大值。

在操作103中,根据二维信息熵,对待压缩模型进行裁剪,得到压缩后的模型数据。

在本发明一实施方式中,采用如下操作步骤实现根据二维信息熵,对待压缩模型进行裁剪,得到压缩后的模型数据:获取每一中间层的特征图裁剪数量;根据特征图裁剪数量,按照从中间层的输入单元层至输出单元层的顺序对待压缩模型的每一个中间层依次进行裁剪。

举例说明,待压缩模型为神经网络模型,具有R个中间层,第1层为中间层的输入单元层,第R层为中间层的输出单元层,第1层的特征图裁剪数量p

在本发明一实施方式中,获取每一中间层的裁剪比例和相应的特征图总数;根据每一裁剪比例和相应的特征图总数,确定相应的中间层的特征图裁剪数量。由此,得到每一中间层的特征图裁剪数量。

举例说明,若所获取到的第r个中间层的裁剪比例为q

p

在本发明一实施方式中,采用以下操作按照从中间层的输入单元层至输出单元层的顺序对待压缩模型的每一个中间层依次进行裁剪:针对每一中间层,按照中间层中每一特征图的二维信息熵的值从小到大的顺序,根据相应的特征图裁剪数量,确定需要裁剪的特征图;将需要裁剪的特征图的参数值删除或者置为零,得到裁剪后的中间层的特征图;将裁剪后的中间层的特征图输入至下一个中间层,得到下一个中间层的特征图;对每一中间层依次按照上述步骤进行裁剪,直至完成所有中间层的裁剪。

举例说明,待压缩模型为神经网络模型,具有R个中间层,第r层中间层需要裁剪的特征图裁剪数量为p

图2示出了本发明实施例机器学习模型压缩方法具体应用示例的实现流程图。

参考图2,本发明实施例机器学习模型压缩方法具体应用示例,待压缩模型具有R个中间层,分别为Layer1、Layer2……LayerR,相应地,各个中间层的特征图的数量分别为M

将训练数据Train data作为模型输入层,输入至待压缩模型的中间层,得到第1层中间层Layer1的M

其中,“计算M

“对M

由此得到裁剪后的第一层中间层Pruned Layer1,并将Pruned Layer1输入至 L输入至第二层中间层,得到Layer2的M

依次对R个中间层分别进行处理,直至并将第(R-1)层中间层裁剪后得到的PrunedLayer(R-1)输入至输入至第R层中间层,得到LayerR的M

本发明实施例机器学习模型压缩方法、装置及设备,根据待压缩模型的原始模型数据中的中间层的特征图信息,确定中间层的每一特征图的二维信息熵,并根据二维信息熵,对待压缩模型进行裁剪,得到压缩后的模型数据。由此,利用二维信息熵对特征图的重要性进行合理评价,通过裁剪二维信息熵较小的特征图,对机器学习模型进行压缩,在保留机器学习模型的计算精度的基础上,显著降低模型存储空间,节约计算资源,使得机器学习模型能够部署至更多的设备,大大增加了机器学习模型的应用范围,并有效提高了设备运行速度。

同理,基于上文机器学习模型压缩方法,本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质存储有程序,当程序被处理器执行时,使得处理器至少执行如下的操作步骤:操作101,获取待压缩模型的原始模型数据,原始模型数据包括待压缩模型的中间层的特征图信息;操作102,根据特征图信息,确定中间层的每一特征图的二维信息熵;操作103,根据二维信息熵,对待压缩模型进行裁剪,得到压缩后的模型数据。

进一步,基于如上文机器学习模型压缩方法,本发明实施例还提供一种机器学习模型压缩装置,如图3,该装置30包括:获取模块301,用于获取待压缩模型的原始模型数据,原始模型数据包括待压缩模型的中间层的特征图信息;二维信息熵确定模块302,用于根据特征图信息,确定中间层的每一特征图的二维信息熵;裁剪模块303,用于根据二维信息熵,对待压缩模型进行裁剪,得到压缩后的模型数据。

在本发明一实施方式中,裁剪模块303包括:裁剪数量确定子模块,用于获取每一中间层的特征图裁剪数量;裁剪子模块,用于根据特征图裁剪数量,按照从中间层的输入单元层至输出单元层的顺序对待压缩模型的每一个中间层依次进行裁剪。

在本发明一实施方式中,二维信息熵确定模块302包括:概率确定子模块,用于根据特征图信息,确定每一特征图中每一特征参数的出现概率;信息熵确定子模块,用于针对一个特征图,根据特征图中每一特征参数的出现概率,确定特征图的二维信息熵。

进一步,基于如上文机器学习模型压缩方法,本发明实施例还提供一种设备,如图4,设备40包括至少一个处理器401、以及与处理器401连接的至少一个存储器402、总线403;其中,处理器401、存储器402通过总线403完成相互间的通信;处理器403用于调用存储器402中的程序指令,以执行上述机器学习模型压缩方法。

这里需要指出的是:以上对针对机器学习模型压缩装置及设备实施例的描述,与前述图1至2所示的方法实施例的描述是类似的,具有同前述图1至2 所示的方法实施例相似的有益效果,因此不做赘述。对于本发明机器学习模型压缩装置及设备实施例中未披露的技术细节,请参照本发明前述图1至2所示的方法实施例的描述而理解,为节约篇幅,因此不再赘述。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。

上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。

另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read ORly MemoRy,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。

或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。

以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

相关技术
  • 一种机器学习模型压缩方法、装置及设备
  • 一种深度学习模型压缩方法、装置、存储介质及终端设备
技术分类

06120112480060