首页> 中国专利> 剪枝参数搜索方法及剪枝方法、装置、设备、介质

剪枝参数搜索方法及剪枝方法、装置、设备、介质

摘要

本申请的实施例涉及一种剪枝参数搜索方法及剪枝方法、装置、设备、介质,通过根据预设稀疏度值,对所述预训练模型进行剪枝,获得预剪枝模型;根据所述预训练模型中目标隐藏层的输入变量的均值和协方差值,对所述预剪枝模型进行剪枝补偿,获得补偿模型;根据所述补偿模型的准确率损失情况,调整所述预设稀疏度值,并返回所述根据预设稀疏度值,对所述预训练模型进行剪枝,获得预剪枝模型的步骤,直到循环预设次数,获得目标稀疏度值。解决了现有的神经网络模型剪枝时间成本高的技术问题,提高了神经网络模型剪枝的效率。

著录项

  • 公开/公告号CN113807517A

    专利类型发明专利

  • 公开/公告日2021-12-17

    原文格式PDF

  • 申请/专利权人 成都数联云算科技有限公司;

    申请/专利号CN202111098520.7

  • 发明设计人 不公告发明人;

    申请日2021-09-18

  • 分类号G06N3/08(20060101);G06K9/62(20060101);

  • 代理机构44202 广州三环专利商标代理有限公司;

  • 代理人肖宇扬

  • 地址 610000 四川省成都市高新区吉泰五路88号3栋5层8号、9号

  • 入库时间 2023-06-19 13:45:04

说明书

技术领域

本申请涉及机器学习技术领域,具体涉及一种剪枝参数搜索方法及剪枝方法、装置、设备、介质。

背景技术

神经网络技术的突飞猛进,为科研、工业、商业、教育、医疗、环保等领域的智能化带来了丰硕成果。在实际应用中,为了加快训练过程收敛,深度神经网络的设计有“过参数化”的倾向,会保留较高的特征通道数,因此,神经网络的隐藏层特征有较多的冗余。

现有技术中,采用剪枝技术移除部分隐藏层特征通道和关联的模型参数来减小运算量,但必须通过对剪枝后的模型进行重训练来恢复模型的准确率。而剪枝后对模型的重训练,需要耗费大量的时间成本,从而导致剪枝时间成本高。

发明内容

本申请的主要目的在于提供一种剪枝参数搜索方法及剪枝方法、装置、设备、介质,解决现有的神经网络模型剪枝时间成本高的技术问题。

为实现上述目的,本申请提供一种剪枝参数搜索方法,包括:

根据预设稀疏度值,对预训练模型进行剪枝,获得预剪枝模型;

根据所述预训练模型中目标隐藏层的输入变量的均值和目标隐藏层的输入变量的协方差值,对所述预剪枝模型进行剪枝补偿,获得补偿模型;

根据所述补偿模型的准确率损失情况,调整所述预设稀疏度值,并返回所述根据预设稀疏度值,对预训练模型进行剪枝,获得预剪枝模型的步骤,直到循环预设次数,获得目标稀疏度值。

可选地,所述根据预设稀疏度值,对预训练模型进行剪枝,获得预剪枝模型的步骤,包括:

根据所述预设稀疏度值,进行关于剪枝前后准确率损失的优化求解,获得所述目标隐藏层需要剪去的目标变量;

根据所述目标变量,对所述预训练模型进行剪枝,获得预剪枝模型。

相较于现有的未考虑剪枝补偿的方法,利用关于剪枝前后准确率损失的优化求解的方式确定需要剪去的目标变量,补偿了单次剪枝对剪枝前后模型准确率影响,从而可以达到提高搜索剪枝参数的效率。

可选地,所述根据所述预设稀疏度值,进行关于剪枝前后准确率损失的优化求解,获得所述目标隐藏层需要剪去的目标变量的步骤,包括:

根据所述预设稀疏度值,对下述等式进行优化求解,获得所述目标隐藏层需要剪去的目标变量;

其中,W表示剪枝前的权重矩阵;|S|表示被剪枝后残留的输入变量的数量;∑

为剪枝前后准确率损失的优化求解的一种具体算法,其原理使优化剪枝输入变量的选择来最小化输出误差(式中正整数k<|C|为需要人工或自动设置的剪枝参数),因此,相较于现有的未考虑剪枝补偿的方法,利用关于剪枝前后准确率损失的优化求解的方式确定需要剪去的目标变量,补偿了单次剪枝对剪枝前后模型准确率影响,从而可以达到提高搜索剪枝参数的效率。

可选地,所述根据所述预训练模型中目标隐藏层的输入变量的均值和目标隐藏层的输入变量的协方差值,对所述预剪枝模型进行剪枝补偿,获得补偿模型的步骤,包括:

基于所述输入变量的均值和所述输入变量的协方差值,获得新权重矩阵;

基于所述新权重矩阵,获得新偏置权重向量;

利用所述新权重矩阵和所述新偏置权重向量替换所述目标隐藏层的权重矩阵和偏置权重向量,获得补偿模型。

相较于现有的利用重新练的方式来进行剪枝后的补偿,采用权重矩阵和偏置权重向量更新的方式来进行剪枝补偿,显著节约重新练的时间,进一步提高剪枝参数搜索效率。

可选地,所述基于所述输入变量的均值和所述输入变量的协方差值,获得新权重矩阵的步骤,包括:

基于所述输入变量的均值和所述输入变量的协方差值,利用如下述等式,获得新权重矩阵:

所述基于所述新权重矩阵,获得新偏置权重向量的步骤,包括:

基于所述新权重矩阵,利用如下述等式,获得新偏置权重向量:

b′=μ

相较于现有的重新练,上述表达式为最优化问题的解析解。这意味着,本实施例的方法不需要采用复杂缓慢的迭代优化方法,而可以直接计算出最优解。这一解析解中包含的W是已知的原隐藏层权重,而其他的值都是通过遍历训练数据来估计得到的统计量(协方差矩阵和均值),因此,可以显著节约时间,进一步提高剪枝参数搜索效率。

可选地,所述预设稀疏度值为稀疏度上限值和稀疏度下限值的均值;

所述根据所述补偿模型的准确率损失情况,调整所述预设稀疏度值,并返回所述根据预设稀疏度值,对所述预训练模型进行剪枝,获得预剪枝模型的步骤,直到循环预设次数,获得目标稀疏度值的步骤,包括:

若所述补偿模型的准确率损失值小于准确率损失上限值,则以第一修改稀疏度值替换所述预设稀疏度值,并返回所述根据预设稀疏度值,对所述预训练模型进行剪枝,获得预剪枝模型的步骤;所述第一修改稀疏度值为所述稀疏度上限值和所述预设稀疏度值的均值;或,

若所述补偿模型的准确率损失值大于或等于所述准确率损失上限值,则以第二修改稀疏度值替换所述预设稀疏度,并返回所述根据预设稀疏度值,对所述预训练模型进行剪枝,获得预剪枝模型的步骤;所述第二修改稀疏度值为所述预设稀疏度值和所述稀疏度下限值的均值;

直到循环至所述预设次数,获得目标稀疏度值。

相较于现有的剪枝流程中模型各个层次的稀疏度等剪枝参数都依赖于人工设置和调试。因为需要重训练,自动剪枝参数搜索的成本非常高。借助于本实施例方案中的剪枝补偿技术,可以快速恢复剪枝后模型的精度,从而降低了参数搜索的成本。

可选地,所述预训练模型为深度神经网络模型,所述输入变量的均值和所述输入变量的协方差值均基于所述深度神经网络模型遍历图像数据获得。

在利用图像数据对深度神经网络模型进行训练的应用场景中,相对于现有的参数搜索方法,可以更快速的找到深度神经网络模型剪枝的目标稀疏度值。

此外,为实现上述目的,本申请还提供一种神经网络剪枝方法,包括:

获取目标任务的预训练模型和训练数据;

利用所述预训练模型遍历所述训练数据,获得所述预训练模型中每个隐藏层的输入变量的均值和输入变量的协方差值;

根据前述的剪枝参数搜索方法,获得多个所述隐藏层的目标稀疏度值;

根据每个所述隐藏层的目标稀疏度值、所述均值和所述协方差值,对所述预训练模型进行剪枝,获得剪枝后模型;

根据所述均值和所述协方差值,对所述剪枝后模型进行剪枝补偿,获得剪枝模型。

可选地,所述预训练模型为深度神经网络模型,所述训练数据为图像数据。

在利用图像数据对深度神经网络模型进行训练的应用场景中,相对于现有的剪枝方法,可以更快速的找到深度神经网络模型剪枝的目标稀疏度值,且剪枝补偿只需在训练数据上进行一次遍历,可以显著的节约剪枝后训练模型恢复准确率的时间,提高剪枝效率的同时,保证模型的准确率。

此外,为实现上述目的,本申请还提供一种神经网络模型训练方法,包括:

利用图像数据,对前述的剪枝模型进行训练,获得图像识别模型。

此外,为实现上述目的,本申请还提供一种图像识别方法,包括:

获取待识别图像;

将所述待识别图像输入前述的图像识别模型,获得图像识别结果。

此外,为实现上述目的,本申请还提供一种剪枝参数搜索装置,包括:

第一剪枝模块,用于根据预设稀疏度值,对所述预训练模型进行剪枝,获得预剪枝模型;

第一补偿模块,用于根据所述预训练模型中目标隐藏层的输入变量的均值和协方差值,对所述预剪枝模型进行剪枝补偿,获得补偿模型;

参数获得模块,用于根据所述补偿模型的准确率损失情况,调整所述预设稀疏度值,并返回所述根据预设稀疏度值,对所述预训练模型进行剪枝,获得预剪枝模型的步骤,直到循环预设次数,获得目标稀疏度值。

此外,为实现上述目的,本申请还提供一种神经网络剪枝装置,其特征在于,包括:

数据获取模块,用于获取目标任务的预训练模型和训练数据;

数据遍历模块,用于利用所述预训练模型遍历所述训练数据,获得所述预训练模型中每个隐藏层的输入变量的均值和输入变量的协方差值;

参数搜索模块,用于根据前述的剪枝参数搜索方法,获得每个所述隐藏层的目标稀疏度值;

第二剪枝模块,用于根据每个所述隐藏层的目标稀疏度值、所述均值和所述协方差值,对所述预训练模型进行剪枝,获得剪枝后模型;

第二补偿模块,用于根据所述均值和所述协方差值,对所述剪枝后模型进行剪枝补偿,获得剪枝模型。

此外,为实现上述目的,本申请还提供一种神经网络模型训练装置,包括:

模型训练模块,用于利用图像数据,对前述的剪枝模型进行训练,获得图像识别模型。

此外,为实现上述目的,本申请还提供一种图像识别装置,包括:

图像获取模块,用于获取待识别图像;

图像识别模块,用于将所述待识别图像输入前述的图像识别模型,获得图像识别结果。

此外,为实现上述目的,本申请还提供一种电子设备,该电子设备包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序,实现前述的方法。

此外,为实现上述目的,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,处理器执行所述计算机程序,实现前述的方法。

相对于现有技术,本申请的有益效果在于:

本申请的实施例提供一种剪枝参数搜索方法及剪枝方法、装置、设备、介质,通过根据预设稀疏度值,对所述预训练模型进行剪枝,获得预剪枝模型;根据所述预训练模型中目标隐藏层的输入变量的均值和协方差值,对所述预剪枝模型进行剪枝补偿,获得补偿模型;根据所述补偿模型的准确率损失情况,调整所述预设稀疏度值,并返回所述根据预设稀疏度值,对所述预训练模型进行剪枝,获得预剪枝模型的步骤,直到循环预设次数,获得目标稀疏度值。也即,通过在剪枝参数搜索过程中,利用剪枝补偿来保证模型剪枝后的准确率,从而替代现有的多次模型重新练过程,省去了模型重新练所耗费的较高的时间成本,解决了现有的神经网络模型剪枝时间成本高的技术问题,提高了神经网络模型剪枝的效率。

附图说明

图1为本申请的实施例涉及的硬件运行环境的电子设备结构示意图;

图2为本申请的实施例提供的一种剪枝参数搜索方法的流程示意图;

图3为本申请的实施例提供的一种神经网络剪枝方法的流程示意图;

图4为本申请的实施例提供的一种神经网络模型训练方法的流程示意图;

图5为本申请的实施例提供的一种图像识别方法的流程示意图;

图6为本申请的实施例提供的一种剪枝参数搜索装置的功能模块示意图;

图7为本申请的实施例提供的一种神经网络剪枝装置的功能模块示意图;

图8为本申请的实施例提供的一种神经网络模型训练装置的功能模块示意图。

图9为本申请的实施例提供的一种图像识别装置的功能模块示意图。

本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请实施例的主要解决方案是:提供一种剪枝参数搜索方法及剪枝方法、装置、设备、介质,通过根据预设稀疏度值,对所述预训练模型进行剪枝,获得预剪枝模型;根据所述预训练模型中目标隐藏层的输入变量的均值和协方差值,对所述预剪枝模型进行剪枝补偿,获得补偿模型;根据所述补偿模型的准确率损失情况,调整所述预设稀疏度值,并返回所述根据预设稀疏度值,对所述预训练模型进行剪枝,获得预剪枝模型的步骤,直到循环预设次数,获得目标稀疏度值。

由于现有技术通过移除部分隐藏层特征通道和关联的模型参数来减小运算量,并通过重训练等手段恢复模型预测准确率。但是,由于模型剪枝后参数变少、训练难度增加,重训练具有很高的时间成本、计算资源成本、数据标注成本和人工调参成本。

本申请提供一种解决方案,通过在剪枝参数搜索过程中,利用剪枝补偿来保证模型剪枝后的准确率,从而替代现有的多次模型重新练过程,省去了模型重新练所耗费的较高的时间成本,解决了现有的神经网络模型剪枝时间成本高的技术问题,提高了神经网络模型剪枝的效率。

参照图1,图1为本申请实施例方案涉及的硬件运行环境的电子设备结构示意图。

如图1所示,该电子设备可以包括:处理器1001,例如中央处理器(CentralProcessing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(WIreless-FIdelity,WI-FI)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM)存储器,也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。

本领域技术人员可以理解,图1中示出的结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、数据存储模块、网络通信模块、用户接口模块以及电子程序。

在图1所示的电子设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明电子设备中的处理器1001、存储器1005可以设置在电子设备中,所述电子设备通过处理器1001调用存储器1005中存储的剪枝参数搜索装置和神经网络剪枝装置,并执行本申请实施例提供的各方法。

参照图2,基于前述的硬件运行环境,本申请的实施例提供一种剪枝参数搜索方法,该方法可以理解为一种剪枝参数自动搜索方法,用于在剪枝过程中确定各待剪枝层的目标稀疏度值。

为了获得每个待剪枝层(即隐藏层,在本实施例中,模型剪枝是指对隐藏层的参数进行剪切)的目标稀疏度值,剪枝参数自动搜索时以宽度优先方式遍历各隐藏层。本实施例的剪枝参数搜索方法则是在遍历过程中对其中任一个隐藏层(目标隐藏层)的操作过程,具体包括的步骤如下:

步骤S20,根据预设稀疏度值,对预训练模型进行剪枝,获得预剪枝模型。

在具体实施过程中,预设稀疏度值是指剪枝参数自动搜索前设置的一个隐藏层的初始稀疏度值,在本实施例中预设稀疏度值为0。

预训练模型是指待剪枝的模型,可以是卷积网络、反卷积网络、循环网络、长短时记忆网络等常见的变种神经网络。具体的,在本实施例中,预训练模型为深度神经网络模型,例如,深度卷积神经网络模型。

具体的,对预训练模型进行剪枝的目的就是为了使隐藏层的稀疏度值达到预设要求,以达到提高后期模型训练和运行效率的目的。因此,需要对隐藏层的一些变量进行剪枝。因此,利用现有的剪枝方法即可进行剪枝操作。

但是,为了减小剪枝后对模型准确率的影响,本实施例采用补偿感知剪枝方法进行剪枝。由于剪枝补偿的原理是还原了被移除输入变量与残留输入变量中线性相关的那部分。也就是说,为了达到减小剪枝后对模型准确率的影响的目的,应该优先剪枝:(1)能用残留信号较好地进行线性拟合的输入信号(2)本身方差权重较小的信号。

基于此,在一种实施方式中,所述根据预设稀疏度值,对预训练模型进行剪枝,获得预剪枝模型的步骤,包括:

S201、根据所述预设稀疏度值,进行关于剪枝前后准确率损失的优化求解,获得所述目标隐藏层需要剪去的目标变量;

在具体实施过程中,剪枝前后准确率损失的优化求解,可以满足在剪去目标变量后,准确率损失满足要求。

具体的,获得所述目标隐藏层需要剪去的目标变量的步骤,包括:

根据所述预设稀疏度值,对下述等式进行优化求解,获得所述目标隐藏层需要剪去的目标变量;

其中,W表示剪枝前的权重矩阵;|S|表示被剪枝后残留的输入变量的数量;∑

上述公式的原理是优化剪枝输入变量的选择来最小化输出误差(式中正整数k<|C|为需要人工或自动设置的剪枝参数),此外,此组合优化问题为NP难问题,进行枚举搜索的计算量非常大。因此,使用贪心算法来求一个可行的次优解,从而获得目标变量。

需要说明的是,上述公式是利用剪枝补偿技术推到得出的,具体的,剪枝补偿技术的公式和原理在后续S40中做详细介绍。

也就是说,相对于现有的剪枝方法,本实施例中的采用补偿感知剪枝方法在剪枝过程中即考虑了补偿,可以减少剪枝过程对模型准确率的影响。

S202、根据所述目标变量,对所述预训练模型进行剪枝,获得预剪枝模型。在具体实施过程中,剪枝的具体方法是目标变量对应的输入通道和权重置为0。

步骤S40,根据所述预训练模型中目标隐藏层的输入变量的均值和目标隐藏层的输入变量的协方差值,对所述预剪枝模型进行剪枝补偿,获得补偿模型。

在具体实施过程中,目标隐藏层的输入变量的均值和目标隐藏层的输入变量的协方差值是通过预训练模型遍历一次训练数据进行向前传播,并统计每一个待剪枝层(隐藏层)的输入通道的均值和协方差值获得,用于后续进行剪枝后的补偿。在一种实施方式中,所述输入变量的均值和所述输入变量的协方差值均基于深度神经网络模型遍历图像数据获得。

具体的,在剪枝过后,为了完全替代模型重训练的过程,还需要对剪枝后的模型进行补偿。

为此,在一种实施方式中,所述根据所述预训练模型中目标隐藏层的输入变量的均值和目标隐藏层的输入变量的协方差值,对所述预剪枝模型进行剪枝补偿,获得补偿模型的步骤,包括:

S401、基于所述输入变量的均值和所述输入变量的协方差值,获得新权重矩阵;

具体的,获得新权重矩阵的步骤,包括:

基于所述输入变量的均值和所述输入变量的协方差值,利用如下述等式,获得新权重矩阵:

需要说明的是,上述表达式为最优化问题的解析解。这意味着,本实施例的方法不需要采用复杂缓慢的迭代优化方法,而可以直接计算出最优解。这一解析解中包含的W是已知的原隐藏层权重,而其他的值都是通过遍历训练数据来估计得到的统计量(协方差矩阵和均值)。

S402、基于所述新权重矩阵,获得新偏置权重向量;

具体的,获得新偏置权重向量的步骤,包括:

基于所述新权重矩阵,利用如下述等式,获得新偏置权重向量:

b′=μ

需要说明的是,上述表达式可以被理解为剪枝后模型中目标隐藏层的重构误差,即剪枝前的输出与补偿后输出的分布差异。如果能最小化此误差项,则能最大程度地还原剪枝前此隐藏层的计算过程,从而使得整个网络输出(即模型预测结果)的变化最小。

S403、利用所述新权重矩阵和所述新偏置权重向量替换所述目标隐藏层的权重矩阵和偏置权重向量,获得补偿模型。

在具体实施过程中,在本实施例中,替换的是目标隐藏层的权重矩阵和偏置权重向量。获得的补偿模型也是对其中的目标隐藏层的权重矩阵和偏置权重向量进行了替换。

总的来说,上述剪枝补偿方法中的优化问题求解的计算量包括两个部分:一方面,需要用预训练模型遍历训练数据,以估计输入变量的均值和协方差;另一方面,在剪枝后,需要按照上述的解析方法计算新的权重值,而这一步涉及一个正定矩阵的求逆(可利用其Cholesky分解快速求逆)和矩阵乘法、加法计算。其中,后者的运行时间通常小于20秒,因此,前者的采样并进行统计量估计的运算时间是主要的时间成本(因采样率而异)。

现有技术中,在大型数据集上剪枝后,训练模型恢复准确率,重训练需要在完整训练数据上进行几十甚至几百次遍历,一般需要大量GPU资源和几十个小时的训练时间,而本实施例的剪枝补偿只需在训练数据上进行一次遍历,可以显著的节约剪枝后训练模型恢复准确率的时间,提高剪枝参数自动搜索效率。

步骤S60,根据所述补偿模型的准确率损失情况,调整所述预设稀疏度值,并返回所述根据预设稀疏度值,对预训练模型进行剪枝,获得预剪枝模型的步骤,直到循环预设次数,获得目标稀疏度值。

在具体实施过程中,准确率损失情况是指预训练模型剪枝前后的准确率损失大小。具体的,准确率损失情况是指准确率损失情况是否超过准确率损失上限。其中,准确率损失上限可以由用户根据对模型的使用需求进行设置。

为了获得满足准确率损失上限要求的基础上,最大限度的对模型进行剪枝,在本实施例中采用二分搜索法来获得目标稀疏度值。

具体的,设置所述预设稀疏度值为稀疏度上限值和稀疏度下限值的均值;则具体的循环操作方法为:

若所述补偿模型的准确率损失值小于准确率损失上限值,则以第一修改稀疏度值替换所述预设稀疏度值,并返回所述根据预设稀疏度值,对所述预训练模型进行剪枝,获得预剪枝模型的步骤;所述第一修改稀疏度值为所述稀疏度上限值和所述预设稀疏度值的均值;

或,

若所述补偿模型的准确率损失值大于或等于所述准确率损失上限值,则以第二修改稀疏度值替换所述预设稀疏度,并返回所述根据预设稀疏度值,对所述预训练模型进行剪枝,获得预剪枝模型的步骤;所述第二修改稀疏度值为所述预设稀疏度值和所述稀疏度下限值的均值;

直到循环至所述预设次数,获得目标稀疏度值。

因此,按照上述二分搜索法,可以找到目标隐藏层的目标稀疏度值,按照该目标稀疏度值进行剪枝,可以在满足准确率损失上限要求的基础上,最大限度的对模型进行剪枝。

可以理解的是,在直到循环至所述预设次数,获得目标稀疏度值之后,可以跳转到下一隐藏层,并按照S20-S60的方法执行,以此重复,得到所有隐藏层的目标稀疏度值。

在一种实施方式中,本实施例的剪枝参数搜索方法的具体算法流程可以表示如下:

由此可见,传统的剪枝流程中,模型各个层次的稀疏度等剪枝参数都依赖于人工设置和调试。因为需要重训练,自动剪枝参数搜索的成本非常高。借助于本实施例方案中的剪枝补偿技术,可以快速恢复剪枝后模型的精度,从而降低了参数搜索的成本。所以本实施例包含了一个细粒度的剪枝参数搜索方法,来搜索最优的压缩结构。自动搜索策略为按照模型的计算图推理方向自底向上,以用户设置的精度损失上限为边界,进行参数二分搜索。这一过程中,用户只需要设置一个准确率损失的上限(能够容忍的准确率损失)和搜索步数(影响搜索时长和范围),不需要其他干预。

应当理解的是,以上仅为举例说明,对本申请的技术方案并不构成任何限制,本领域的技术人员在实际应用中可以基于需要进行设置,此处不做限制。

通过上述描述不难发现,本实施例的方法在剪枝参数搜索过程中,利用剪枝补偿来保证模型剪枝后的准确率,从而替代现有的多次模型重新练过程,省去了模型重新练所耗费的较高的时间成本,解决了现有的神经网络模型剪枝时间成本高的技术问题,提高了神经网络模型剪枝的效率。

此外,本实施例的方案的剪枝参数搜索方法采用二分搜索法自动循环得到目标稀疏度值,基本上消除了进行手动参数调整的人工成本。用户只需要根据现实应用需求设置一个准确率损失上限,就能搜索到最适应的模型结构。相比于传统的、按照工程经验手动调整和试错剪枝参数的方案,此技术既减少了人工试错的成本,也降低了人工经验不足导致剪枝效果不佳的风险。

参照图3,在前述实施例的基础上,本申请的实施例还提供一种神经网络剪枝方法,包括:

S100、获取目标任务的预训练模型和训练数据;

在具体实施过程中,目标任务是一个通过机器学习完成的任务,可以是图像识别、分类等任务。为了完成目标任务,需要利用训练数据对预训练模型进行训练,获得模型。

具体的,在本实施例中,训练数据为完整的训练集(不需要标注)。但在需要减少数据依赖的条件下,可以只使用部分训练数据(如10%)或其他近似的数据(如使用同为自然场景图像的公开数据集)来代替。

S200、利用所述预训练模型遍历所述训练数据,获得所述预训练模型中每个隐藏层的输入变量的均值和输入变量的协方差值;

在具体实施过程中,目标隐藏层的输入变量的均值和目标隐藏层的输入变量的协方差值是通过预训练模型遍历一次训练数据进行向前传播,并统计每一个待剪枝层(隐藏层)的输入通道的均值和协方差值获得。

S300、根据前述实施例的剪枝参数搜索方法,获得多个所述隐藏层的目标稀疏度值;

具体实施过程可参见前述实施例,这里不再赘述。

S400、根据每个所述隐藏层的目标稀疏度值、所述均值和所述协方差值,对所述预训练模型进行剪枝,获得剪枝后模型;

在具体实施过程中,在获得每个所述隐藏层的目标稀疏度值后,需要按照前述实施例中的补偿感知剪枝方法进行剪枝。具体的剪枝过程请参见前述实施例,这里不再赘述。

S500、根据所述均值和所述协方差值,对所述剪枝后模型进行剪枝补偿,获得剪枝模型。

在具体实施过程中,在进行剪枝后,同样需要按照前述实施例中的剪枝补偿方法进行剪枝补偿。具体的剪枝补偿过程请参见前述实施例,这里不再赘述。

作为一种可选地实施例,在一种应用场景中,本实施例中的预训练模型为深度神经网络模型,所述训练数据为图像数据。

针对这一应用场景,提供一个具体实例,具体如下:

本实例中使用本实施例的方法对图像识别任务中常用的ResNet50模型进行剪枝。ResNet50是一种包含50个卷积层的深度卷积神经网络。本实施例在其中除第一个卷积层外的49个卷积层上进行自动剪枝。本实施例中的ResNet50模型在ILSVRC-2012数据集上进行图像分类任务训练后取得的分类准确率为76.15%,浮点运算量为4.09B(浮点运算量是指单精度浮点乘加运算次数,与模型推理速度正相关,这里的B指十亿)。

表1展示了使用本实施例的剪枝方法进行自动剪枝后的效果,包括在用户设置不同的准确率损失上限和依赖数据量(用来进行统计量估计的数据量占训练集的比例)的场景下,自动剪枝的显存使用量峰值、程序运行时间、剪枝后的准确率和浮点运算下降比例(省去的浮点运算量与原浮点运算量之比)。

表1ResNet50自动剪枝实施结果

表1结果显示,在用户设置相同准确率损失上限时,依赖数据量占比对计算资源消耗(显存使用量和计算时间)的影响较大,因为要进行数据集遍历和统计量估计。但依赖数据量对最终结果影响较小。因此,减小数据依赖后本技术既能减少时间、计算资源消耗和数据成本,又能保持较好的剪枝结果。在用户设置不同的准确率损失上限的场景下,本实施例的剪枝方法能够在保证剪枝后准确率满足要求的前提下,最大限度地降低浮点运算量。

应当理解的是,以上仅为举例说明,对本申请的技术方案并不构成任何限制,本领域的技术人员在实际应用中可以基于需要进行设置,此处不做限制。

通过上述描述不难发现,本实施例的方法除了上述优点外,其与训练稀疏参数的一类剪枝方法不同,本实施的方案不干涉使用者对模型的原始设计和预训练。因此,除了适用于基本的多层感知机网络,也可以直接在诸如卷积网络、反卷积网络、循环网络、长短时记忆网络等常见的变种神经网络上使用。适应范围广。

参照图4,本申请的实施例还提供一种神经网络模型训练方法,包括:

S600、利用图像数据,对利用前述实施例的剪枝方法剪枝获得的剪枝模型进行训练,获得图像识别模型。

可以理解的是,由于利用前述实施例的剪枝方法剪枝获得的剪枝模型稀疏度值低,且模型准确率不受影响,因此,该剪枝模型在训练过程中效率高,且训练获得的图像识别模型的识别准确率高。

参照图5,本申请的实施例还提供一种图像识别方法,包括:

S700、获取待识别图像;

S800、将所述待识别图像输入前述实施例的图像识别模型,获得图像识别结果。

可以理解的是,由于利用前述实施例的剪枝方法剪枝获得的剪枝模型稀疏度值低,且模型准确率不受影响,因此,训练获得的图像识别模型对图像的识别准确率高。

参照图6,本申请还提供一种剪枝参数搜索装置,包括:

第一剪枝模块,用于根据预设稀疏度值,对所述预训练模型进行剪枝,获得预剪枝模型;

第一补偿模块,用于根据所述预训练模型中目标隐藏层的输入变量的均值和协方差值,对所述预剪枝模型进行剪枝补偿,获得补偿模型;

参数获得模块,用于根据所述补偿模型的准确率损失情况,调整所述预设稀疏度值,并返回所述根据预设稀疏度值,对所述预训练模型进行剪枝,获得预剪枝模型的步骤,直到循环预设次数,获得目标稀疏度值。

需要说明的是,本实施例中剪枝参数搜索装置中各模块是与前述实施例中的剪枝参数搜索方法中的各步骤一一对应,因此,本实施例的具体实施方式可参照前述剪枝参数搜索方法的实施方式,这里不再赘述。

参照图7,本申请还提供一种神经网络剪枝装置,其特征在于,包括:

数据获取模块,用于获取目标任务的预训练模型和训练数据;

数据遍历模块,用于利用所述预训练模型遍历所述训练数据,获得所述预训练模型中每个隐藏层的输入变量的均值和输入变量的协方差值;

参数搜索模块,用于根据前述的剪枝参数搜索方法,获得每个所述隐藏层的目标稀疏度值;

第二剪枝模块,用于根据每个所述隐藏层的目标稀疏度值、所述均值和所述协方差值,对所述预训练模型进行剪枝,获得剪枝后模型;

第二补偿模块,用于根据所述均值和所述协方差值,对所述剪枝后模型进行剪枝补偿,获得剪枝模型。

需要说明的是,本实施例中神经网络剪枝装置中各模块是与前述实施例中的神经网络剪枝方法中的各步骤一一对应,因此,本实施例的具体实施方式可参照前述神经网络剪枝方法的实施方式,这里不再赘述。

参照图8,本申请还提供一种神经网络模型训练装置,包括:

模型训练模块,用于利用图像数据,对前述的剪枝模型进行训练,获得图像识别模型。

需要说明的是,本实施例中神经网络模型训练装置中各模块是与前述实施例中的神经网络模型训练方法中的各步骤一一对应,因此,本实施例的具体实施方式可参照前述神经网络模型训练方法的实施方式,这里不再赘述。

参照图9,本申请还提供一种图像识别装置,包括:

图像获取模块,用于获取待识别图像;

图像识别模块,用于将所述待识别图像输入如权利要求10所述的图像识别模型,获得图像识别结果。

需要说明的是,本实施例中图像识别装置中各模块是与前述实施例中的图像识别方法中的各步骤一一对应,因此,本实施例的具体实施方式可参照前述图像识别方法的实施方式,这里不再赘述。

此外,为实现上述目的,本申请还提供一种电子设备,该电子设备包括处理器,存储器以及存储在所述存储器中的计算机程序,所述计算机程序被处理器运行时实现前述实施例中方法的步骤。

此外,在一种实施例中,本申请还提供一种计算机存储介质,所述计算机存储介质上存储有计算机程序,所述计算机程序被处理器运行时实现前述实施例中方法的步骤。

在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。计算机可以是包括智能终端和服务器在内的各种计算设备。

在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。

作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。

作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。

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

上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器/随机存取存储器、磁碟、光盘)中,包括若干指令用以使得一台多媒体终端设备(可以是手机,计算机,电视接收机,或者网络设备等)执行本申请各个实施例所述的方法。

以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号