本发明涉及数据处理技术领域,尤其涉及一种图像处理方法、装置、设备。
背景技术:
深度神经网络作为目前人工智能的基石之一,其复杂性及可移植性将直接影响人工智能在生活中的应用。
近年来,深度神经网络模型层数越来越多,计算复杂度越来越高,而过高的计算复杂度通常要求使用gpu或者高性能的cpu对深度神经网络模型进行运算。而在深度学习的实际应用中,诸如移动设备、嵌入式设备等计算、体积、功耗等方面受限的设备,也需要应用深度学习技术。
由于这些设备存在的约束,导致现有的高性能深度神经网络模型无法在这些设备上进行有效的计算和应用。比如,当需要使用训练好的模型对图像进行分类识别,或者需要使用训练好的模型进行自然语言翻译、词性标注,或者需要使用训练好的模型进行语音数据识别时,如果训练好的模型的尺寸过大,一方面会占用设备的存储资源,另一方面,模型运行时也将占用设备过大的计算资源,影响设备中其他应用的正常运行。
技术实现要素:
本发明实施例提供一种图像处理方法、装置、设备,用以实现通过压缩后的模型对图像进行处理。
第一方面,本发明实施例提供一种图像处理方法,该图像处理方法通过使用模型对图像进行处理,其中,该模型可以通过以下步骤获得:
获取初始的模型;
确定所述模型对应的压缩策略,所述压缩策略中包括压缩方法以及所述压缩方法对应的目标压缩率;
采用所述压缩方法,按照逐步增加压缩率的方式,迭代地对所述模型进行压缩,直至满足截止条件,所述截止条件包括所述模型被压缩至所述目标压缩率或者模型精度满足设定条件。
第二方面,本发明实施例提供一种图像处理装置,使用模型对图像进行处理,包括:
获取模块,用于获取初始的模型;
确定模块,用于确定所述模型对应的压缩策略,所述压缩策略中包括压缩方法以及所述压缩方法对应的目标压缩率;
处理模块,用于采用所述压缩方法,按照逐步增加压缩率的方式,迭代地对所述模型进行压缩,直至满足截止条件,所述截止条件包括所述模型被压缩至所述目标压缩率或者模型精度满足设定条件。
第三方面,本发明实施例提供一种电子设备,该电子设备包括第一处理器和第一存储器,所述第一存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述第一处理器执行时实现上述第一方面中的图像处理方法。
本发明实施例提供了一种计算机存储介质,用于储存计算机程序,所述计算机程序使计算机执行时实现上述第一方面中的图像处理方法。
第四方面,本发明实施例提供一种语音处理方法,使用模型对语音数据进行识别,所述模型通过如下步骤获得:
获取初始的模型;
确定所述模型对应的压缩策略,所述压缩策略中包括压缩方法以及所述压缩方法对应的目标压缩率;
采用所述压缩方法,按照逐步增加压缩率的方式,迭代地对所述模型进行压缩,直至满足截止条件,所述截止条件包括所述模型被压缩至所述目标压缩率或者模型精度满足设定条件。
第五方面,本发明实施例提供一种自然语言处理方法,使用模型对自然语言信息进行处理,所述模型通过如下步骤获得:
获取初始的模型;
确定所述模型对应的压缩策略,所述压缩策略中包括压缩方法以及所述压缩方法对应的目标压缩率;
采用所述压缩方法,按照逐步增加压缩率的方式,迭代地对所述模型进行压缩,直至满足截止条件,所述截止条件包括所述模型被压缩至所述目标压缩率或者模型精度满足设定条件。
综上,为能够在资源有限的设备中运行某模型,以通过该模型实现对图像进行处理、对语音数据进行识别、对自然语言信息进行处理等应用,在初始模型后,需要对已经训练好的模型进行压缩处理,比如将该模型从初始尺寸压缩至目标尺寸的过程中,可以先设定压缩策略,比如依次采用什么样的压缩方法,每种压缩方法的目标压缩率是多少。之后,采用设定的压缩方法,从某初始压缩率开始,逐步地增加压缩率,从而迭代地对该模型进行压缩,直到模型被压缩至目标压缩率或者模型精度满足设定条件。其中,在每一次压缩后,重新对压缩后的模型进行训练使其精度满足要求,从而,通过逐步压缩的方式,既使得模型得到有效压缩,又保证模型的精度。
第六方面,本发明实施例提供一种图像处理方法,该图像处理方法使用某模型对图像进行处理,其中,该模型可以通过如下步骤获得:
确定初始的模型对应的损失函数;
根据所述损失函数确定所述模型的各权重分别对应的梯度值;
根据所述梯度值选择待剪枝的权重;
对所述待剪枝的权重进行剪枝。
第七方面,本发明实施例提供一种图像处理装置,包括:
损失函数确定模块,用于确定初始的模型对应的损失函数;
梯度确定模块,用于根据所述损失函数确定所述模型的各权重分别对应的梯度值;
权重选择模块,用于根据所述梯度值选择待剪枝的权重;
剪枝处理模块,用于对所述待剪枝的权重进行剪枝。
第八方面,本发明实施例提供一种电子设备,该电子设备包括第二处理器和第二存储器,所述第二存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述第二处理器执行时实现上述第六方面中的图像处理方法。
本发明实施例提供了一种计算机存储介质,用于储存计算机程序,所述计算机程序使计算机执行时实现上述第六方面中的图像处理方法。
通过上述方案对模型进行剪枝处理时,以权重所对应的梯度值来衡量权重的重要性或者说衡量权重对模型的精度的贡献程度,从而,结合各权重分别对应的梯度值来对模型中包含的权重进行剪枝处理,可以使得重要性较低的权重被剪掉,而保留重要性较高的权重,在保证模型的精度的情况下,压缩了模型的尺寸,从而使得在资源受限的设备中运行压缩后的模型,以实现图像处理等应用成为可能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为根据本发明实施例提供的一种模型压缩方法的流程图;
图2为迭代地对模型进行压缩的模型状态变化示意图;
图3为根据本发明实施例提供的另一种模型压缩方法的流程图;
图4为权重梯度的示意图;
图5为根据本发明实施例提供的又一种模型压缩方法的流程图;
图6为根据本发明实施例提供的一种图像处理装置的结构示意图;
图7为与图6提供的模型压缩装置对应的电子设备的结构示意图
图8为根据本发明实施例提供的另一种图像处理装置的结构示意图;
图9为与图8提供的模型压缩装置对应的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
图1为根据本发明实施例提供的一种模型压缩方法的流程图,如图1所示,该方法包括如下步骤:
101、获取初始的模型。
102、确定模型对应的压缩策略,压缩策略中包括压缩方法以及压缩方法对应的目标压缩率。
103、采用上述压缩方法,按照逐步增加压缩率的方式,迭代地对模型进行压缩,直至满足截止条件。
其中,截止条件包括模型被压缩至目标压缩率或者模型精度满足设定条件。
本实施例提供的模型压缩方法可以由诸如pc机、服务器、云主机等设备来执行,需要被压缩的模型可以部署在这些设备上。
本文中提到的模型可以是深度神经网络模型等模型,实际应用中,该模型可能会被用在一些分类识别的场景下,此时,模型的精度可以认为是模型输出的分类结果的准确率。
为了获得具有良好精度的模型,会使用大量的训练样本对模型进行训练,直至模型收敛即精度达到要求,其中,对模型进行训练主要是为了训练获得模型中包含的各个权重。
基于此,上述步骤101中获取初始的模型是指对经过大量样本训练而获得的收敛的模型。
可以理解的是,为了获得良好的模型精度,模型的尺寸一般会比较大,比如深度神经网络模型往往会包含很多隐含层,每个隐含层会包含很多神经元,从而,具有良好精度的深度神经网络模型往往会包含大量的权重(也可以称为参数),这就使得存储该深度神经网络模型会占用很大的存储空间,而且,通过该深度神经网络模型进行分类识别处理也会需要更多的计算资源。
本文中提及的模型的尺寸,可以简单地认为是存储模型所需的存储空间大小亦即模型的数据量,比如500mb。
正如前文中提到的,如此大尺寸的模型应用在诸如手机、平板电脑、智能穿戴设备等设备中是有一定限制的,这就产生了压缩模型的动力。
假设某模型需要由初始尺寸(比如500mb)压缩到目标尺寸(比如100mb),则在对该模型进行压缩处理时,首先,先确定模型的压缩策略,其中,压缩策略中包括压缩所要采用的压缩方法以及压缩方法对应的目标压缩率;其次,采用确定出的压缩方法,按照逐步增加压缩率的方式,迭代地对模型进行压缩,直至满足截止条件。
其中,目标压缩率可以是根据模型的初始尺寸和目标尺寸确定的,比如上述由500mb压缩至100mb的举例下,目标压缩率即为20%,即将500mb的模型压缩掉400mb(由500*80%=400计算得到)。
其中,可选地,该压缩策略可以是用户设置的,也可以是设备计算提供的。而且,压缩策略可以有一种也可以有多种。
具体地,设备中可以设置有多种对模型进行压缩的压缩方法,比如剪枝方法、量化方法、低秩分解方法等等,设备可以根据初始尺寸和目标尺寸确定一个总的压缩率,进而再设置不同压缩方法的组合以及每种组合下各压缩方法分别分摊的目标压缩率。简单来说就是,设备给出可能的各种压缩策略,每种压缩策略中包括一种或多种压缩方法以及每种压缩方法各自对应的目标压缩率。
首先,先结合图2,直观地理解下逐步对模型进行压缩的含义,比如通过剪枝方法进行压缩,图2中示意的是对初始的模型依次通过压缩率序列[a%,b%]进行压缩,a%大于b%。
举例来说,假设将模型由500mb压缩至100mb,并且假设当前该模型中的每个权重由32bit来表示,假设某种压缩策略依次包括剪枝方法和量化方法,剪枝方法对应的目标压缩率为40%,量化方法对应的目标压缩率50%,从而,通过剪枝方法剪掉模型中60%的权重,之后,通过量化方法将剪枝方法输出的模型中的每个权重用16bit来表示。
但是,值得说明的是,不管一种压缩策略中是包含一种压缩方法还是多种压缩方法,针对其中的任一压缩方法来说,本文采用的是逐步压缩的方式或者称为迭代压缩的方式对模型进行压缩,直到达到该任一压缩方法对应的目标压缩率或者模型的精度已经达到设定条件,该设定条件比如为大于某阈值。
仍以上述举例来说,剪枝方法对应的目标压缩率为40%,并非一次直接剪掉模型中60%的权重,而是比如可以先剪掉模型中10%的权重;之后对模型再训练,训练至收敛;之后再剪掉模型中30%的权重;之后对模型再训练,训练至收敛;之后再剪掉模型中40%的权重;之后对模型再训练,训练至收敛;之后将模型中60%的权重剪掉;之后对模型再训练,训练至收敛;之后转而采用量化的方法对剪枝方法输出的模型进行后续的压缩处理,即通过量化方法将剪枝方法输出的模型压缩掉50%,从而实现讲最初的模型压缩掉80%的目的。
其中,可选地,被剪掉的权重可以是根据权重的大小来选择的。
值得说明的是,结合上述举例,在压缩策略为:先通过剪枝方法剪掉模型的60%的权重,之后通过量化方法将经过剪枝处理后的模型中的各权重由32bit量化为16bit的情况下,可以进一步设定该压缩策略的执行方案。比如可以先设定通过剪枝方法按照90%、70%60%、40%的压缩率序列对模型进行逐步压缩,之后再通过量化方法将模型中的各权重由32bit量化为16bit。该执行方案仅为举例,仅是为了强度两点:第一,对模型的压缩过程可以采用一种或几种压缩方法;第二,针对任一种压缩方法,可以采用迭代地方式对模型进行压缩,迭代过程主要体现为压缩率的逐步提高。
但是,在压缩过程中,并非一定严格地按照设定的一种执行方案执行,而是在执行过程中,根据模型的精度变化适当微调执行方案的执行过程。
具体地,假设某压缩策略中包括第一压缩方法和第二压缩方法,先执行第一压缩方法,之后执行第二压缩方法。基于此,在迭代地对模型进行压缩的过程中,若采用第一压缩方法将模型压缩至第一压缩率(第一压缩率低于第一压缩方法对应的目标压缩率)后,模型精度满足设定条件,则降低第一压缩方法对应的压缩步长,或者,切换至采用第二压缩方法对经第一压缩率压缩前的模型进行压缩。这里,模型精度满足设定条件是指模型的精度相较于之前下降明显,但是精度仍高于收敛所要求的阈值。
假设切换至采用第二压缩方法对经第一压缩率压缩前的模型进行压缩,在压缩至第二压缩率(第二压缩率低于或等于第二压缩方法对应的目标压缩率)后,模型的精度满足设定条件,则确定经第一压缩率压缩前的模型作为模型压缩结果。这里,模型的精度满足设定条件比如可以是模型的精度下降至模型收敛所要求的阈值。
举例来说,假设将还未压缩的初始的模型称为模型a,第一压缩方法为剪枝方法,剪枝方法对应的目标压缩率为40%,剪枝方法对应的执行方案为:按照90%、70%、60%、40%的压缩率序列对模型进行逐步压缩。从而,假设先按照90%的压缩率对模型a进行压缩,得到模型b,对模型b进行训练,训练达到了收敛条件比如精度高于预设阈值0.7;进而,按照70%的压缩率对模型b进行压缩,得到模型c,对模型c进行训练,训练达到了收敛条件;进而,按照60%的压缩率对模型c进行压缩,得到模型d,对模型d进行训练,假设此时训练后的模型d的精度下降明显,达到某设定条件,该设定条件比如为精度高于预设阈值0.7,但是与该预设阈值的差值小于预设差值比如为0.05,则此时,上述第一压缩率为60%,如果后续继续按照40%的压缩率对训练后的模型d进行压缩,可能精度将低于预设阈值0.7,此时,可选地,可以降低压缩步长,比如调整下一次的压缩率为50%,或者,也可以直接切换至采用第二压缩方法比如量化方法对训练后的模型d进行压缩。
假设切换至采用量化方法对训练后的模型d进行压缩。假设模型a中初始的权重对应的比特位数为32bit,量化方法对应的目标压缩率为8bit,量化方法对应的执行方案比如为:先量化至16bit,再量化至8bit。基于上述假设,对模型d中的各权重由32bit量化至16bit,假设量化后得到模型e,对模型e进行训练,假设此时模型e的精度满足设定条件,该设定条件比如为精度低于预设阈值0.7,则说明即时转换为通过量化方法对模型d进行压缩,也无法保证压缩后得到的模型e的精度,此时,确定模型d为模型a对应的一种压缩结果。
可以理解的是,如前文所说的,压缩策略可以有多种,当通过多种压缩策略分别得到多种压缩结果后,可以从多种压缩结果中选择最佳的压缩结果,最佳的压缩结果即为模型尺寸小且精度高。
综上,通过逐步压缩的方式,既使得模型得到有效压缩,又保证模型的精度。
前文中提到,在通过剪枝方法对模型进行压缩的过程中,可选地,被剪掉的权重可以是根据权重的大小来选择的,下面,结合图3所示的一种模型压缩过程,提供另一种确定需要被剪掉的权重的方案。
图3为根据本发明实施例提供的另一种模型压缩方法的流程图,如图3所示,该方法包括如下步骤:
301、获取初始的模型。
302、确定模型对应的压缩策略,该压缩策略包括剪枝方法以及剪枝方法对应的目标压缩率。
303、确定模型在当前迭代过程中对应的损失函数,根据损失函数确定模型的各权重分别对应的梯度值。
304、根据梯度值和当前迭代过程对应的压缩率,选择待剪枝的权重。
305、对待剪枝的权重进行剪枝。
306、对剪枝后的模型进行训练,若训练至收敛则继续执行下一次迭代过程。
本实施例中,结合模型的损失函数对各权重求偏导数而得到的梯度值来进行待剪枝的权重的选择。
具体来说,以通过剪枝方法按照90%、70%、60%、40%的压缩率序列对模型进行逐步压缩为例,假设初始的模型称为模型a,此时,模型a的损失函数表示为函数f1,函数f1是模型a中各权重的函数,函数f1对各权重求偏导数得到各权重分别对应的梯度值。由于接下来需要按照90%的压缩率对模型a进行压缩,这就意味着需要剪掉模型a中10%的权重。
结合各权重分别对应的梯度值来选择这10%的待剪枝的权重,可以实现为:
计算各权重分别对应的重要性得分,其中,任一权重对应的重要性得分是该任一权重和其对应的梯度值的加权和;
根据重要性得分对各权重进行排序;
根据压缩率比如90%从各权重中选择重要性得分较低的权重作为待剪枝的权重,即从全部权重中选择出重要性得分最低的10%的权重作为待剪枝的权重。
其中,权重和梯度值分别对应的加权系数可以预先设定。
在选择出待剪枝的权重后,对待剪枝的权重进行剪枝,即为将待剪枝的权重设置为0。之后,对剪枝后的模型假设称为模型b进行训练,若训练至收敛则继续执行下一次迭代过程,即根据模型b对应的损失函数对模型b包含的各权重求偏导数以得到模型b中各权重分别对应的梯度值,结合该梯度值从模型b包含的各权重中选择出重要性得分最小的30%的权重进行剪枝,以此类推。
本实施例中,之所以结合权重对应的梯度值来对模型进行剪枝,是因为权重的大小并不一定能非常准确地反映权重的重要性,如图4所示,横坐标表示权重,纵坐标表示梯度值,图中,权重w1远小于权重w2,但是权重w1对应的梯度值t1远大于权重w2对应的梯度值t2。而该梯度值相比于权重本身,更加能够反映权重的重要性,从而,基于梯度信息进行剪枝,使得剪枝后的模型精度得到更好保证。
图5为根据本发明实施例提供的又一种模型压缩方法的流程图,如图5所示,该方法包括如下步骤:
501、确定初始的模型对应的损失函数。
502、根据损失函数确定模型的各权重分别对应的梯度值。
503、根据梯度值选择待剪枝的权重。
504、对待剪枝的权重进行剪枝。
图4所示实施例中介绍的是在迭代地对模型进行压缩的前提下,当采用剪枝方法时剪枝方法的具体执行过程。本实施例中,剪枝方法的执行过程不再基于迭代地对模型进行压缩这个前提。
可选地,可以根据各权重对应的梯度值和设定的压缩率选择待剪枝的权重。具体可以实现为:
计算各权重分别对应的重要性得分,其中,任一权重对应的重要性得分是该任一权重和其对应的梯度值的加权和;
根据重要性得分对各权重进行排序;
根据压缩率从各权重中选择重要性得分较低的权重作为待剪枝的权重。
其中,压缩率根据模型的初始尺寸和目标尺寸确定。上述可选方式的实现过程可以参见图4所示实施例中的介绍,在此不赘述。
另外,可选地,还可以根据各权重分别对应的梯度值选择待剪枝的权重,具体实现为:对于各权重中的任一权重,若该任一权重小于第一阈值,并且该任一权重对应的梯度值小于第二阈值,则选定该任一权重为待剪枝的权重。也就是说,在所有的权重中,选择权重本身比较下,且对应的梯度值也比较小的,作为待剪枝的权重。
综上,基于前述几个可选实施例提供的模型压缩方案可以实现对初始的较大尺寸的模型进行压缩,使得压缩后的模型能够在资源受限的终端设备中进行使用。下面示例性地提供几种使用经上述方案压缩后的模型的场景。
在本发明的一可选实施例中,提供了一种图像处理方法,该图像处理方法使用一模型对图像进行处理。其中,该模型可以是通过前文提供的模型压缩方法对初始的模型进行压缩处理获得的。
可选地,该模型可以被用于进行图像的分类识别,比如用于识别输入的图像中是否包含有人脸。此时,初始的模型是使用大量的包含人脸的图像以及大量的未包含人脸的图像作为训练样本进行训练获得的,在获得初始的模型之后,结合该模型将要被使用于的终端设备的资源情况,设定目标压缩率,进而经过前文提供的模型压缩方法对该初始的模型进行压缩处理。
在本发明的另一可选实施例中,提供了一种语音处理方法,该语音处理方法使用一模型对语音数据进行处理。其中,该模型可以是通过前文提供的模型压缩方法对初始的模型进行压缩处理获得的。可选地,该模型可以被用于对语音数据进行识别,此时,初始的模型是使用大量语音样本作为训练样本进行训练获得的,在获得初始的模型之后,结合该模型将要被使用于的终端设备的资源情况,设定目标压缩率,进而经过前文提供的模型压缩方法对该初始的模型进行压缩处理。
在本发明的又一可选实施例中,提供了一种自然语言处理方法,该自然语言处理方法使用一模型对自然语言信息进行处理。其中,该模型可以是通过前文提供的模型压缩方法对初始的模型进行压缩处理获得的。可选地,该模型可以被用于对输入的自然语言文本进行翻译。
以下将详细描述本发明的一个或多个实施例的模型压缩装置。本领域技术人员可以理解,这些模型压缩装置均可使用市售的硬件组件通过本方案所教导的步骤进行配置来构成。
图6为根据本发明实施例提供的一种图像处理装置的结构示意图,该图像处理装置用于通过一模型对图像进行比如分类识别处理,而且,为获得该模型,如图6所示,该图像处理装置包括:获取模块11、确定模块12、处理模块13。
获取模块11,用于获取初始的模型。
确定模块12,用于确定所述模型对应的压缩策略,所述压缩策略中包括压缩方法以及所述压缩方法对应的目标压缩率。
处理模块13,用于采用所述压缩方法,按照逐步增加压缩率的方式,迭代地对所述模型进行压缩,直至满足截止条件,所述截止条件包括所述模型被压缩至所述目标压缩率或者模型精度满足第一设定条件。
可选地,所述压缩策略中包括多种压缩方法以及所述多种压缩方法各自对应的目标压缩率。
可选地,处理模块13可以用于:若采用第一压缩方法将所述模型压缩至第一压缩率后,模型的精度满足设定条件,所述第一压缩率低于所述第一压缩方法对应的目标压缩率,则降低所述第一压缩方法对应的压缩步长,或者,切换至采用第二压缩方法对经所述第一压缩率压缩前的模型进行压缩。
可选地,处理模块13还可以用于:若采用所述第二压缩方法将所述模型压缩至第二压缩率后,模型的精度满足设定条件,所述第二压缩率低于或等于所述第二压缩方法对应的目标压缩率,则确定经所述第一压缩率压缩前的模型作为模型压缩结果。
可选地,所述压缩方法为剪枝方法,处理模块13还可以用于:
确定所述模型在当前迭代过程中对应的损失函数;根据所述损失函数确定所述模型的各权重分别对应的梯度值;根据所述梯度值和所述当前迭代过程对应的压缩率,选择待剪枝的权重;对所述待剪枝的权重进行剪枝。
可选地,处理模块13还可以用于:计算所述各权重分别对应的重要性得分,其中,任一权重对应的重要性得分是所述任一权重和所述任一权重对应的梯度值的加权和;根据所述重要性得分对所述各权重进行排序;根据所述压缩率从所述各权重中选择重要性得分较低的权重作为所述待剪枝的权重。
图6所示装置可以执行图1-图3所示实施例的方法,本实施例未详细描述的部分,可参考对图1-图3所示实施例的相关说明。该技术方案的执行过程和技术效果参见图1-图3所示实施例中的描述,在此不再赘述。
在一个可能的设计中,图6所示图像处理装置的结构可实现为一电子设备,该电子设备可以是pc机、服务器、云主机等各种设备。如图7所示,该电子设备可以包括:第一处理器21和第一存储器22。其中,所述第一存储器22用于存储支持电子设备执行上述图1-图3所示实施例中提供的模型压缩方法的程序,所述第一处理器21被配置为用于执行所述第一存储器22中存储的程序。
所述程序包括一条或多条计算机指令,其中,所述一条或多条计算机指令被所述第一处理器21执行时能够实现如下步骤:
获取初始的模型;
确定所述模型对应的压缩策略,所述压缩策略中包括压缩方法以及所述压缩方法对应的目标压缩率;
采用所述压缩方法,按照逐步增加压缩率的方式,迭代地对所述模型进行压缩,直至满足截止条件,所述截止条件包括所述模型被压缩至所述目标压缩率或者模型的精度满足设定条件。
可选地,所述第一处理器21还用于执行前述图1-图3所示实施例中的全部或部分步骤。
另外,所述第一处理器21还用于根据压缩后得到的模型,对输入的图像进行处理。
其中,所述电子设备的结构中还可以包括第一通信接口23,用于电子设备与其他设备或通信网络通信。
另外,本发明实施例提供了一种计算机存储介质,用于储存电子设备所用的计算机软件指令,其包含用于执行上述图1-图3所示方法实施例中模型压缩方法所涉及的程序。
图8为根据本发明实施例提供的另一种图像处理装置的结构示意图,该图像处理装置用于通过一模型对图像进行比如分类识别处理,而且,为获得该模型,如图8所示,该装置包括:损失函数确定模块31、梯度确定模块32、权重选择模块33、剪枝处理模块34。
损失函数确定模块31,用于确定初始的模型对应的损失函数。
梯度确定模块32,用于根据所述损失函数确定所述模型的各权重分别对应的梯度值。
权重选择模块33,用于根据所述梯度值选择待剪枝的权重。
剪枝处理模块34,用于对所述待剪枝的权重进行剪枝。
可选地,所述权重选择模块33可以用于:根据所述梯度值和设定的压缩率选择所述待剪枝的权重。此时,可选地,所述权重选择模块33具体可以用于:计算所述各权重分别对应的重要性得分,其中,任一权重对应的重要性得分是所述任一权重和所述任一权重对应的梯度值的加权和;根据所述重要性得分对所述各权重进行排序;根据所述压缩率从所述各权重中选择重要性得分较低的权重作为所述待剪枝的权重。
可选地,所述权重选择模块33可以用于:对于所述各权重中的任一权重,若所述任一权重小于第一阈值,并且所述任一权重对应的梯度值小于第二阈值,则选定所述任一权重为待剪枝的权重。
图8所示装置可以执行图5所示实施例的方法,本实施例未详细描述的部分,可参考对图5所示实施例的相关说明。该技术方案的执行过程和技术效果参见图5所示实施例中的描述,在此不再赘述。
在一个可能的设计中,图8所示图像处理装置的结构可实现为一电子设备,该电子设备可以是诸如pc机、服务器、云主机等设备。如图9所示,该电子设备可以包括:第二处理器41和第二存储器42。其中,所述第二存储器42用于存储支持电子设备执行上述图5所示实施例中提供的模型压缩方法的程序,所述第二处理器41被配置为用于执行所述第二存储器42中存储的程序。
所述程序包括一条或多条计算机指令,其中,所述一条或多条计算机指令被所述第二处理器41执行时能够实现如下步骤:
确定模型对应的损失函数;
根据所述损失函数确定所述模型的各权重分别对应的梯度值;
根据所述梯度值选择待剪枝的权重;
对所述待剪枝的权重进行剪枝。
可选地,所述第二处理器41还用于执行前述图5所示实施例中的全部或部分步骤。
另外,所述第一处理器21还用于根据压缩后得到的模型,对输入的图像进行处理。
其中,所述电子设备的结构中还可以包括第二通信接口43,用于电子设备与其他设备或通信网络通信。
另外,本发明实施例提供了一种计算机存储介质,用于储存电子设备所用的计算机软件指令,其包含用于执行上述图5所示方法实施例中模型压缩方法所涉及的程序。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程设备的处理器以产生一个机器,使得通过计算机或其他可编程设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
1.一种图像处理方法,使用模型对图像进行处理,所述模型通过如下步骤获得:
获取初始的模型;
确定所述模型对应的压缩策略,所述压缩策略中包括压缩方法以及所述压缩方法对应的目标压缩率;
采用所述压缩方法,按照逐步增加压缩率的方式,迭代地对所述模型进行压缩,直至满足截止条件,所述截止条件包括所述模型被压缩至所述目标压缩率或者模型精度满足设定条件。
2.根据权利要求1所述的方法,所述压缩策略中包括多种压缩方法以及所述多种压缩方法各自对应的目标压缩率。
3.根据权利要求2所述的方法,迭代地对所述模型进行压缩的步骤,包括:
若采用第一压缩方法将所述模型压缩至第一压缩率后,模型精度满足设定条件,所述第一压缩率低于所述第一压缩方法对应的目标压缩率,则降低所述第一压缩方法对应的压缩步长,或者,切换至采用第二压缩方法对经所述第一压缩率压缩前的模型进行压缩。
4.根据权利要求3所述的方法,所述方法还包括:
若采用所述第二压缩方法将所述模型压缩至第二压缩率后,模型精度满足设定条件,所述第二压缩率低于或等于所述第二压缩方法对应的目标压缩率,则确定经所述第一压缩率压缩前的模型作为模型压缩结果。
5.根据权利要求1所述的方法,所述压缩方法为剪枝方法,所述迭代地对所述模型进行压缩的步骤,包括:
确定所述模型在当前迭代过程中对应的损失函数;
根据所述损失函数确定所述模型的各权重分别对应的梯度值;
根据所述梯度值和所述当前迭代过程对应的压缩率,选择待剪枝的权重;
对所述待剪枝的权重进行剪枝。
6.根据权利要求5所述的方法,所述选择待剪枝的权重的步骤,包括:
计算所述各权重分别对应的重要性得分,其中,任一权重对应的重要性得分是所述任一权重和所述任一权重对应的梯度值的加权和;
根据所述重要性得分对所述各权重进行排序;
根据所述压缩率从所述各权重中选择重要性得分较低的权重作为所述待剪枝的权重。
7.一种语音处理方法,使用模型对语音数据进行识别,所述模型通过如下步骤获得:
获取初始的模型;
确定所述模型对应的压缩策略,所述压缩策略中包括压缩方法以及所述压缩方法对应的目标压缩率;
采用所述压缩方法,按照逐步增加压缩率的方式,迭代地对所述模型进行压缩,直至满足截止条件,所述截止条件包括所述模型被压缩至所述目标压缩率或者模型精度满足设定条件。
8.一种自然语言处理方法,使用模型对自然语言信息进行处理,所述模型通过如下步骤获得:
获取初始的模型;
确定所述模型对应的压缩策略,所述压缩策略中包括压缩方法以及所述压缩方法对应的目标压缩率;
采用所述压缩方法,按照逐步增加压缩率的方式,迭代地对所述模型进行压缩,直至满足截止条件,所述截止条件包括所述模型被压缩至所述目标压缩率或者模型精度满足设定条件。
9.一种图像处理方法,使用模型对图像进行处理,所述模型通过如下步骤获得:
确定初始的模型对应的损失函数;
根据所述损失函数确定所述模型的各权重分别对应的梯度值;
根据所述梯度值选择待剪枝的权重;
对所述待剪枝的权重进行剪枝。
10.根据权利要求9所述的方法,所述根据所述梯度值选择待剪枝的权重,包括:
根据所述梯度值和设定的压缩率选择所述待剪枝的权重。
11.根据权利要求10所述的方法,所述根据所述梯度值和设定的压缩率选择所述待剪枝的权重,包括:
计算所述各权重分别对应的重要性得分,其中,任一权重对应的重要性得分是所述任一权重和所述任一权重对应的梯度值的加权和;
根据所述重要性得分对所述各权重进行排序;
根据所述压缩率从所述各权重中选择重要性得分较低的权重作为所述待剪枝的权重。
12.根据权利要求9所述的方法,所述根据所述梯度值选择待剪枝的权重,包括:
对于所述各权重中的任一权重,若所述任一权重小于第一阈值,并且所述任一权重对应的梯度值小于第二阈值,则选定所述任一权重为待剪枝的权重。
13.一种图像处理装置,使用模型对图像进行处理,包括:
获取模块,用于获取初始的模型;
确定模块,用于确定所述模型对应的压缩策略,所述压缩策略中包括压缩方法以及所述压缩方法对应的目标压缩率;
处理模块,用于采用所述压缩方法,按照逐步增加压缩率的方式,迭代地对所述模型进行压缩,直至满足截止条件,所述截止条件包括所述模型被压缩至所述目标压缩率或者模型精度满足设定条件。
14.一种电子设备,包括:存储器、处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时实现如权利要求1至6中任一项所述的图像处理方法。
技术总结