数据处理方法及装置、电子设备和计算机可读存储介质

文档序号:1862179 发布日期:2021-11-19 浏览:18次 >En<

阅读说明:本技术 数据处理方法及装置、电子设备和计算机可读存储介质 (Data processing method and device, electronic equipment and computer readable storage medium ) 是由 涂小兵 鲁路 张伟丰 于 2021-05-26 设计创作,主要内容包括:本申请公开了一种数据处理方法及装置、电子设备和计算机可读存储介质。该方法包括:获取压缩参数的初始值以及与所述初始值对应的模型精度值,其中,所述模型精度值为采用所述压缩参数的初始值压缩后的目标模型的计算精度;比较所述模型精度值与原始精度值的大小,并根据比较结果,调整所述压缩参数的数值,其中,所述原始精度值为压缩前的所述目标模型的计算精度;输出所述压缩参数的调整后的数值。本申请实施例能够通过判断目标模型在被压缩前后的计算精度的变化,来调整压缩参数的数值,从而得到适合该目标模型的压缩参数,以达到较佳的压缩效果。(The application discloses a data processing method and device, electronic equipment and a computer readable storage medium. The method comprises the following steps: acquiring an initial value of a compression parameter and a model precision value corresponding to the initial value, wherein the model precision value is the calculation precision of a target model compressed by the initial value of the compression parameter; comparing the model precision value with an original precision value, and adjusting the numerical value of the compression parameter according to the comparison result, wherein the original precision value is the calculation precision of the target model before compression; and outputting the adjusted numerical value of the compression parameter. According to the embodiment of the application, the numerical value of the compression parameter can be adjusted by judging the change of the calculation precision of the target model before and after being compressed, so that the compression parameter suitable for the target model is obtained, and a better compression effect is achieved.)

数据处理方法及装置、电子设备和计算机可读存储介质

技术领域

本申请涉及人工智能技术领域,尤其涉及一种数据处理方法及装置、电子设备和计算机可读存储介质。

背景技术

随着人工智能技术的发展,已经在越来越多的领域中采用人工智能技术来进行包括计算机视觉、语音识别、自然语言处理等方面的计算任务。特别是深度神经网络由于其能够利用长期记忆进行学习,从而大幅度地提升了人工智能技术的自我学习能力和计算效果。因此,深度神经网络随着人工智能技术的发展而得到了越来越广泛的应用。深度神经网络由于其具有长期记忆的特性,使得其在使用中需要巨大的计算开销和内存存储空间,但是在人工智能技术的应用越来越广泛的情况下,越来越多的应用场景都是具有有限资源的计算环境。因此,在这样的计算环境下,采用深度神经网络的人工智能技术一方面计算效率受到计算资源的限制和影响,另一方面,深度神经网络对于计算资源的巨大需求甚至阻碍了其在深入人们生活的各个场景中的应用。

在现有技术中,已经提出了针对深度神经网络存在的或多或少的参数冗余的情况,使用适当的模型压缩方式来对这样的网络进行压缩,从而获得相对轻量并且同时还保持一定程度的准确率的网络,以适应具有有限的计算资源的应用场景。在现有技术中,例如已经采用了ADMM(Alternating Direction Method of Multipliers,交替方向乘子法)来进行神经网络参数量的压缩处理。但是对于现有技术中所使用的例如ADMM的压缩方案来说,通常需要手动指定具体的压缩率,对于神经网络来说,每一层的稀疏敏感度不同,因此现有技术中使用固定的压缩率比较难以达到较佳的压缩效果。

因此,需要一种能够快速确定压缩率参数以提高压缩效果的技术方案。

发明内容

本申请实施例提供一种数据处理方法及装置、电子设备和计算机可读存储介质,以解决现有技术中使用固定的压缩率难以达到较佳压缩效果的缺陷。

为达到上述目的,本申请实施例提供了一种数据处理方法,包括:

获取压缩参数的初始值以及与所述初始值对应的模型精度值,其中,所述模型精度值为采用所述压缩参数的初始值压缩后的目标模型的计算精度;

比较所述模型精度值与原始精度值的大小,并根据比较结果,调整所述压缩参数的数值,其中,所述原始精度值为压缩前的所述目标模型的计算精度;

输出所述压缩参数的调整后的数值。

进一步地,根据本申请实施例,本申请的数据处理方法中,调整压缩参数的数值可以包括:将压缩参数的数值减小为三分之一。

进一步地,根据本申请实施例,本申请的数据处理方法中,压缩参数的数值的增加和减小可以是非对称的。

进一步地,根据本申请实施例,本申请的数据处理方法中,根据比较结果,调整压缩参数的数值可以包括:当模型精度值大于或等于原始精度值时,将压缩参数的数值加倍,并且当模型精度值小于原始精度值时,将压缩参数的数值减小为三分之一。

进一步地,根据本申请实施例,本申请的数据处理方法中,采用ADMM方案对目标模型执行压缩处理,并且压缩处理可以进一步包括:对目标模型的当前网络层进行压缩处理时,将当前网络层的关联层的剩余参数量作为ADMM的新增约束,其中关联层的剩余参数量可以指该关联层在被压缩后所剩余的参数的数量,并且,当前网络层的关联层可以为当前层的前层和/或后层。

因此,在本申请实施例中,通过在ADMM方案执行压缩处理时额外引入当前网络层的前后层的压缩剩余参数量来作为额外的压缩权重参考,从而在压缩处理时综合考虑基于当前的压缩参数的神经网络模型层的参数与前后层的参数之间的关联性,并根据该关联性确定压缩中留下的目标模型的参数,因此这样能够进一步提高压缩效果。

进一步地,根据本申请实施例,本申请的数据处理方法中,可以进一步提供交互接口,通过该接口可以将压缩参数的初始值作为初始压缩建议显示给用户,并且可以通过该接口接收用户对于所显示的初始值的反馈输入,该反馈输入可以是用户直接指定的压缩参数,也可以是用户对于压缩参数的初始值的调整指示,例如,增加或减少初始值。

进一步地,根据本申请实施例,本申请的数据处理方法中,该交互接口还可以进一步为用户提供所要处理的目标模型的基本信息,并且还可以通过该交互接口接收用户对于该基本信息的确认或调整意见,并且进而,本申请的数据处理方法可以进一步包括:根据接收到的用户对于目标模型的基本信息的输入来调整压缩参数的初始值。

本申请实施例还提供了一种数据处理装置,包括:

获取模块,用于压缩参数的初始值以及与所述初始值对应的模型精度值,其中,所述模型精度值为采用所述压缩参数的初始值压缩后的目标模型的计算精度;

参数调整模块,用于比较所述模型精度值与原始精度值的大小,并根据比较结果,调整所述压缩参数的数值,其中,所述原始精度值为压缩前的所述目标模型的计算精度;

输出模块,用于输出所述压缩参数的调整后的数值。

本申请实施例还提供了一种电子设备,包括:

存储器,用于存储程序;

处理器,用于运行所述存储器中存储的所述程序,所述程序运行时执行本申请实施例提供的数据处理方法。

本申请实施例还提供了一种计算机可读存储介质,其上存储有可被处理器执行的计算机程序,其中,该程序被处理器执行时实现如本申请实施例提供的数据处理方法。

本申请实施例提供的数据处理方法及装置、电子设备和计算机可读存储介质,通过判断目标模型在被压缩前后的计算精度的变化,来调整压缩参数的数值,从而得到适合该目标模型的压缩参数,从而能够获得对于该模型适合的压缩参数。

例如,在机器学习计算领域,所使用的神经网络模型通常具有多个参数,并且精度越高或者越复杂的模型通常会具有更多的参数,因此,现有技术中为了获得更高精度的结果,往往会使用精度更高或更复杂的神经网络模型,从而导致在计算中使用的参数的数量也急剧增加,导致不仅耗费了巨大的计算资源而且计算速度也较慢。但是在实际应用中,越复杂的神经网络模型虽然使用了更大量的参数,但是这些参数并非都是同等重要,甚至很多参数是冗余的参数。换言之,越复杂的神经网络模型中所使用的大量参数当中有些参数对于网络模型所执行的计算的精度影响实际上是非常小的,甚至是没有影响的。因此,现有技术中通常通过针对不同的模型设定适当的压缩参数来去除该模型中冗余的参数,从而通过减少参数数量来达到对计算模型瘦身的效果。但是这样的压缩处理的最重要的前提是不能够影响被压缩模型的计算精度。换言之,需要在确保该被压缩模型的可用性不变的情况下来尽可能地减少其所使用的的参数,以达到提高计算效率降低计算资源需求的目的。但是在这样的情况下,如何确定适合的参数来在不降低计算精度的情况下实现模型瘦身是本领域中面临的主要问题。因此,通过本申请实施例提供的上述数据处理方法及装置、电子设备和计算机可读介质,能够通过先以预定或指定的压缩参数的初始值来对目标模型执行压缩,并且将压缩后的模型的计算精度与原始的计算精度进行比较以根据比较的结果对压缩参数进行调整,从而能够根据被压缩的目标模型的计算精度是否被降低来调整压缩参数。特别地,在本申请实施例中,由于通过反复迭代试探来找到不影响目标模型的计算精度的尽可能好的压缩参数,因此,与现有技术中只能使用固定压缩参数的方案相比,能够获得尽可能好的压缩效果。此外,由于本申请的压缩参数的初始值还可以根据同一类型或相似的模型的历史压缩参数来确定,或者还可以通过与用户的交互来确定该初始值,因此还能够进一步地减少迭代试探的次数,更快地获得尽可能好的压缩参数。

上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的

具体实施方式

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1为本申请实施例提供的数据处理方案的原理图;

图2为本申请提供的数据处理方法一个实施例的流程图;

图3为本申请提供的数据处理方法另一个实施例的流程图;

图4为本申请提供的数据处理装置实施例的结构示意图;

图5为本申请提供的电子设备实施例的结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

实施例一

本申请实施例提供的方案可应用于任何具有算法运行的设备或系统,例如分布式服务器等等。图1为本申请实施例提供的数据处理方案的原理架构示意图,图1所示的架构仅仅是可以应用本申请的技术方案的架构的示例之一。

随着人工智能技术的发展,越来越多的领域中都开始使用人工智能技术来解决各领域中的各种问题。特别是深度神经网络由于其能够利用长期记忆进行学习,从而大幅度地提升了人工智能技术的自我学习能力和计算效果。但是,深度神经网络由于其具有长期记忆的特性,使得其在使用中需要巨大的计算开销和内存存储空间,而在人工智能技术的应用越来越广泛的情况下,越来越多的应用场景都是具有有限资源的计算环境。因此,在这样的计算环境下,采用深度神经网络的人工智能技术一方面计算效率受到计算资源的限制和影响,另一方面,深度神经网络对于计算资源的巨大需求甚至阻碍了其在深入人们生活的各个场景中的应用。

特别地,神经网络模型通常具有多个参数,并且精度越高或者越复杂的模型通常会具有更多的参数,因此,现有技术中为了获得更高精度的结果,往往会使用精度更高或更复杂的神经网络模型,但是这样的神经网络模型由于具有大量的参数而不仅需要大量的计算资源而且计算速度也较慢。但是实际上在这样的网络模型的大量参数中存在着不那么重要甚至可以说时冗余的参数。换言之,网络模型中所使用的大量参数当中有些参数对于网络模型所执行的计算的精度影响较小,因此,在现有技术中,已经提出了针对深度神经网络存在的或多或少的参数冗余的情况,使用适当的压缩方式来通过减少网络模型中所使用的部分对精度影响较小的参数来对这样的网络模型进行压缩,从而获得参数较少并且同时还保持一定程度的准确率的网络,以适应具有有限的计算资源或者需要较高计算效率的应用场景。

在现有技术中,例如已经采用了例如ADMM的压缩方案来对神经网络模型进行参数量的压缩处理。特别地,ADMM是为了整合对偶上升法的可分解性与乘子法的优秀的收敛性质而提出了改进形式。其目的就是想能分解原函数和扩增函数,以便于在对更一般的假设条件下并行优化。即,ADMM通过引入新变量,然后交叉换方向来交替优化。具体地,在ADMM中,最先开始就将拆开的变量分别看做是不同的变量和,同时约束条件也如此处理,这样的好处就是后面不需要一起融合和,保证了前面优化过程的可分解性,从而获得了序贯型迭代。但是即使是这样的优化的压缩方案,也通常需要手动指定固定的压缩率,即对于某个网络神经模型来说,使用固定的压缩率来减少符合该压缩率的参数量,但是对于神经网络来说,每一层的稀疏敏感度不同,因此现有技术中使用固定的压缩率来对神经网络模型进行压缩往往会导致并没有尽可能多地减少对精度影响较小的全部或大部分参数,因此难以达到较佳的压缩效果。

图1为本申请实施例提供的数据处理方案的原理图。如图1所示,根据本申请实施例的处理方案中在通过例如ADMM等方案对神经网络模型进行参数量的压缩处理时,选择对压缩效果影响较大的压缩参数,例如在ADMM压缩方案中的RHO参数来进行调整。换言之,例如RHO这样的参数的取值通常会对使用该RHO参数的神经网络模型执行的计算的精度具有较大的影响。

因此,基于该原理,本申请实施例中就可以通过以神经网络模型的计算精度作为判断标准来进行RHO参数的调整。例如,如图1中所示,可以先对于要以ADMM方案进行压缩处理的目标模型执行计算,以获取该目标模型的原始计算精度。例如,在本申请实施例中,神经网络模型为获得该原始精度而执行的计算可以是执行预先设置的标准计算处理,也可以是执行实际的计算任务。

此外,在获得了原始计算精度之后,可以对于ADMM方案中的RHO参数这样的压缩权重参数给予一个初始值。在本申请实施例中,该初始值可以是按照经验获得的,或者也可以是基于多个类似模型分别进行压缩而获得的统计值,并且进而可以基于该初始值来对于目标模型执行压缩处理,即,使用具有上述初始值的压缩权重参数的ADMM压缩方案对目标神经网络模型进行压缩处理,从而获得压缩后的神经网络模型,并且再次对于该压缩后的神经网络模型重复执行上述计算,以获得压缩后计算精度。

也就是说,在获得了目标模型执行计算任务的原始计算精度之后,当压缩参数被赋予了初始值时,ADMM就可以采用具有该初始值的压缩权重参数对目标模型进行压缩处理,并对于压缩处理之后获得的压缩后的神经网络模型再次执行上述预置的计算处理任务或者执行实际的计算处理任务以获取与对该模型执行压缩处理所基于的压缩方案的权重参数的值对应的压缩后计算精度。从而可以基于该压缩后计算精度来判断使用该初始值的压缩权重系数进行压缩处理的压缩效果。

例如,可以比较该压缩后计算精度与如上所述获得的目标模型还没有经过压缩时的原始精度值,并基于两者的比较结果来调整压缩参数的值。例如在使用具有上述预设初始值的压缩权重参数执行了压缩处理之后,压缩后的目标模型重复执行上述计算获得的压缩后计算精度与原始计算精度相比没有下降,那么该比较结果不仅可以说明利用该初始值执行压缩处理在一定程度上取得了成功,没有劣化目标模型执行计算的精度,即由于压缩后的目标模型与原有模型相比其参数数量势必已经得到了减少,并且其重复执行与获得原始计算精度所执行的计算任务相同的计算任务能够获得相同或相近的计算精度,那么说明该压缩后的目标模型是可以使用的,另一方面,该比较结果还可以说明使用该初始值执行压缩还可能存在进一步的压缩空间,这是因为执行压缩后的目标模型的计算精度并没有被劣化,或者说在执行压缩处理过程中被去除的参数对于目标模型执行目标计算任务的影响非常小。那么很容易想到的是,很有可能在这样压缩后的目标模型中仍然存在可去除的参数量。

为此,如图1中所示,可以进一步将流程返回到ADMM处并且对压缩权重参数RHO的值进行调整,例如,从初始值修改为初始值的两倍,并且以修改后的值重新对原始目标模型进行压缩处理,并且在压缩处理之后获得的压缩后的目标模型再次重复进行上述计算来获得压缩后计算精度并且原始的目标模型执行上述重复处理所获得的原始计算精度进行比较。即,判断在增大了压缩权重参数RHO来进一步增加压缩率的情况下是否没有对目标模型的计算精度造成劣化。因此,当以初始值两倍的参数值对目标模型执行压缩后获得的压缩后的目标模型的计算精度没有劣化,则可以继续重复调整参数值的上述步骤,例如,将当前值,即初始值的两倍,再次加倍,即修改为初始值的四倍,并且再次对原始的目标模型执行压缩。

此外,如果在使用具有上述预设初始值的压缩权重参数执行了压缩处理之后,压缩后的目标模型重复执行上述计算获得的压缩后计算精度与原始计算精度相比存在了下降,那么该比较结果可以说明利用该初始值执行压缩处理并没有取得成功,即,对目标模型执行计算的精度产生了劣化影响。特别地,由于压缩后的目标模型与原有模型相比其参数数量势必已经得到了减少,但是其重复执行与获得原始计算精度所执行的计算任务相同的计算任务并不能够获得相同或相近的计算精度,例如执行压缩处理之后获得的压缩后的目标模型的计算精度产生了下降,那么说明该压缩后的目标模型是无法使用的,另一方面,该比较结果还可以说明使用该初始值执行压缩很可能已经不存在进一步的压缩空间,甚至说上一次执行的压缩处理压缩过头了。这是因为执行压缩后的目标模型的计算精度发生了劣化,或者说在执行压缩处理过程中被去除的参数中存在对于目标模型执行目标计算任务的影响较大的参数。那么很容易想到的是,很有可能在这样压缩后的目标模型中存在不应该在当前压缩处理中被取出的参数。即,在当前压缩处理中,例如RHO的压缩权重参数设置的不合适。

因此,如果经过比较确定当前的RHO的参数值进行的压缩处理已经使得目标模型的计算精度得到了劣化,则可以减小当前RHO的参数值,例如,减小为当前RHO参数值的一半,并且将减小的RHO参数作为适合的压缩权重参数。当然在减小了当前RHO参数值之后,也可以再次重复上述压缩处理,并且再次对压缩后的目标模型执行上述重复计算来比较原始计算精度和压缩后的计算精度,以此方式进行迭代。

当然在本申请实施例中,在计算精度没有劣化的情况下增加压缩权重参数的参数值的方式不限于加倍,也可以以初始值的三倍或其他倍数来调整,并且在计算精度发生劣化的情况下减小压缩权重参数的参数值的方式也不限于减为一半,而是也可以以例如减小为三分之一的方式来进行调整。此外,增加和减小也可以不是对应的,即可以在增大权重参数时为加倍,并且在减小时为减小为三分之一的方式来对压缩权重值进行调整。此外在增加和减小压缩权重值的方式不彼此对应时,例如,上述增加时为加倍,并且减小时为减小为三分之一的方式的情况下,可以在减小之后以减小的参数值再次执行压缩处理,并且对压缩后的目标模型再次执行上述重复计算并且将获得的压缩后的计算精度值与原始计算精度值进行比较,并且如果确认没有劣化计算精度,则可以将减小后的该压缩权重值作为较佳的压缩权重值输出。

此外,在本申请实施例中,在进行上述压缩处理时还可以额外引入当前网络层的前后层的压缩剩余参数量来作为额外的压缩权重参考,因此可以综合考虑基于当前的压缩参数的神经网络模型层的参数与前后层的参数之间的关联性,从而与前后层压缩后剩余的参数具有较强关联性的参数在压缩时被留下的概率也应该较高,因此这样能够进一步提高压缩效果。

因此,本申请实施例提供的数据处理方案,能够通过判断目标模型在被压缩前后的计算精度的变化,来调整压缩参数的数值,并通过迭代的方式快速确定适合该目标模型的压缩参数的数值,从而在保证目标模型的计算精度没有损失的前提下达到较佳的压缩效果。

上述实施例是对本申请实施例的技术原理和示例性的应用框架的说明,下面通过多个实施例来进一步对本申请实施例具体技术方案进行详细描述。

实施例二

图2为本申请提供的数据处理方法一个实施例的流程图,该方法的执行主体可以为具有数据处理能力的各种终端或服务器设备,也可以为集成在这些设备上的装置或芯片。如图2所示,该数据处理方法包括如下步骤:

S201,获取压缩参数的初始值以及与初始值对应的模型精度值。

在本申请实施例中,模型精度值可以为采用压缩参数的初始值压缩后的目标模型的计算精度。当采用例如ADMM等压缩方式对目标模型进行参数量的压缩处理之前,首先针对未被压缩的目标模型计算其计算精度,即本申请实施例中的原始精度值。然后,针对压缩算法中的压缩参数,按照人工设置或者默认的初始值对目标模型进行一次压缩处理,并计算此时目标模型的计算精度,即本申请实施例中的与压缩参数的初始值对应的模型精度值。

例如,如图1中所示,可以先对于要以例如ADMM压缩方案进行压缩处理的目标模型执行计算,以获取该目标模型的原始计算精度。例如,在本申请实施例中,神经网络模型为获得该原始精度而执行的计算可以是执行预先设置的标准计算处理,也可以是执行实际的计算任务。在获得了原始计算精度之后,可以在步骤S201中对于ADMM方案中的RHO参数这样的对压缩效果影响较大的压缩参数给予一个初始值。在本申请实施例中,该初始值可以是按照经验获得的,或者也可以是基于多个类似模型分别进行压缩而获得的统计值,并且进而可以基于该初始值来对于目标模型执行压缩处理,即,使用具有上述初始值的压缩参数的ADMM压缩方案对目标神经网络模型进行压缩处理,从而获得压缩后的神经网络模型,并且再次对于该压缩后的神经网络模型重复执行与获得原始计算精度所执行的计算任务相同的计算任务,以获得模型精度值。

S202,比较模型精度值与原始精度值的大小,并根据比较结果,调整压缩参数的数值。

在本申请实施例中,原始精度值为压缩前的目标模型的计算精度。在比较经压缩处理后的模型精度值和压缩前的原始精度值时,若模型精度值大于或等于原始精度值,即目标模型的计算精度没有损失,则可以增大压缩参数的数值;若模型精度值小于原始精度值,即目标模型产生精度损失,则可以减小压缩参数的数值。如此过判断目标模型在被压缩前后的计算精度的变化,来对压缩参数进行调整,最终可得到适合该目标模型的压缩参数的数值,且根据该数值对目标模型进行压缩能够在保证目标模型的计算精度的前提下,达到较佳的压缩效果。

也就是说,在获得了目标模型执行计算任务的原始计算精度之后,在步骤S201中为压缩参数赋予了初始值之后,可以在步骤S202采用具有该初始值的压缩参数对目标模型进行压缩处理,并对于压缩处理之后获得的压缩后的神经网络模型再次执行上述与获得原始计算精度所执行的计算任务相同的计算处理任务以获取与对该模型执行压缩处理所基于的压缩方案的权重参数的值对应的压缩后计算精度。从而可以基于该压缩后计算精度来判断使用该初始值的压缩权重系数进行压缩处理的压缩效果。

例如,在步骤S202通过比较该压缩后获得的计算精度与如上所述获得的目标模型还没有经过压缩时的原始计算精度,并基于两者的比较结果来调整压缩参数的值。例如在使用具有上述预设初始值的压缩参数执行了压缩处理之后,压缩后的目标模型重复执行上述计算获得的模型计算精度与原始计算精度相比没有下降,那么该比较结果不仅可以说明利用该初始值执行压缩处理在一定程度上取得了成功,没有劣化目标模型执行计算的精度,即由于压缩后的目标模型与原有模型相比其参数数量势必已经得到了减少,并且其重复执行与获得原始计算精度所执行的计算任务相同的计算任务能够获得相同或相近的计算精度,那么说明该压缩后的目标模型是可以使用的,另一方面,该比较结果还可以说明使用该初始值执行压缩还可能存在进一步的压缩空间,这是因为执行压缩后的目标模型的计算精度并没有被劣化,或者说在执行压缩处理过程中被去除的参数对于目标模型执行目标计算任务的影响非常小。那么很容易想到的是,很有可能在这样压缩后的目标模型中仍然存在可去除的参数量。因此,通过根据压缩前后的计算精度的变化来确定压缩参数,从而能够获得能够实现更好压缩效果的压缩参数值。

S203,输出该压缩参数的调整后的数值。

因此,在步骤S202中获得了调整后的压缩参数值之后,就可以在步骤S203中输出该压缩参数值,以便于例如在后续的其他模型压缩处理中直接使用或者作为压缩参数的初始值的设定参考。

因此,本申请实施例提供的数据处理方案,能够通过判断目标模型在被压缩前后的计算精度的变化,来调整压缩参数的数值,从而得到适合该目标模型的压缩参数,从而使得采用该数值的压缩方式对目标模型进行压缩处理能够达到较佳的压缩效果。

实施例三

图3为本申请提供的数据处理方法另一个实施例的流程图,该方法的执行主体可以为具有算法数据处理能力的各种终端或服务器设备,也可以为集成在这些设备上的装置或芯片。如图3所示,在上述图2所示实施例的基础上,该数据处理方法可以包括如下步骤:

S301,获取压缩参数的初始值以及与初始值对应的模型精度值。

在本申请实施例中,模型精度值可以为采用压缩参数的初始值压缩后的目标模型的计算精度。当采用例如ADMM等压缩方式对目标模型进行参数量的压缩处理之前,首先针对未被压缩的目标模型计算其计算精度,即本申请实施例中的原始精度值。然后,针对压缩算法中的压缩参数,按照人工设置或者默认的初始值对目标模型进行一次压缩处理,并计算此时目标模型的计算精度,即本申请实施例中的与压缩参数的初始值对应的模型精度值。

例如,如图1中所示,可以先对于要以例如ADMM压缩方案进行压缩处理的目标模型执行计算,以获取该目标模型的原始计算精度。例如,在本申请实施例中,神经网络模型为获得该原始精度而执行的计算可以是执行预先设置的标准计算处理,也可以是执行实际的计算任务。在获得了原始计算精度之后,可以在步骤S301中对于ADMM方案中的RHO参数这样的对压缩效果影响较大的压缩参数给予一个初始值。在本申请实施例中,该初始值可以是按照经验获得的,或者也可以是基于多个类似模型分别进行压缩而获得的统计值,并且进而可以基于该初始值来对于目标模型执行压缩处理,即,使用具有上述初始值的压缩参数的ADMM压缩方案对目标神经网络模型进行压缩处理,从而获得压缩后的神经网络模型,并且再次对于该压缩后的神经网络模型重复执行与获得原始计算精度所执行的计算任务相同的计算任务,以获得模型精度值。

在本申请实施例中,在根据模型精度值与原始精度值的大小对压缩参数的数值进行调整的过程,可以采用如下迭代的方式:

S302,比较模型精度值与原始精度值的大小。

在本申请实施例中,原始精度值为压缩前的目标模型的计算精度。在比较经压缩处理后的模型精度值和压缩前的原始精度值时,若模型精度值大于或等于原始精度值,即目标模型的计算精度没有损失,则可以增大压缩参数的数值;若模型精度值小于原始精度值,即目标模型产生精度损失,则可以减小压缩参数的数值。如此过判断目标模型在被压缩前后的计算精度的变化,来对压缩参数进行调整,最终可得到适合该目标模型的压缩参数的数值,且根据该数值对目标模型进行压缩能够在保证目标模型的计算精度的前提下,达到较佳的压缩效果。

也就是说,在获得了目标模型执行计算任务的原始计算精度之后,在步骤S301中为压缩参数赋予了初始值之后,可以在步骤S302采用具有该初始值的压缩参数对目标模型进行压缩处理,并对于压缩处理之后获得的压缩后的神经网络模型再次执行上述与获得原始计算精度所执行的计算任务相同的计算处理任务以获取与对该模型执行压缩处理所基于的压缩方案的权重参数的值对应的压缩后计算精度。从而可以基于该压缩后计算精度来判断使用该初始值的压缩权重系数进行压缩处理的压缩效果。

例如,在步骤S302通过比较该压缩后获得的计算精度与如上所述获得的目标模型还没有经过压缩时的原始计算精度,并基于两者的比较结果来调整压缩参数的值。例如在使用具有上述预设初始值的压缩参数执行了压缩处理之后,压缩后的目标模型重复执行上述计算获得的模型计算精度与原始计算精度相比没有下降,那么该比较结果不仅可以说明利用该初始值执行压缩处理在一定程度上取得了成功,没有劣化目标模型执行计算的精度,即由于压缩后的目标模型与原有模型相比其参数数量势必已经得到了减少,并且其重复执行与获得原始计算精度所执行的计算任务相同的计算任务能够获得相同或相近的计算精度,那么说明该压缩后的目标模型是可以使用的,另一方面,该比较结果还可以说明使用该初始值执行压缩还可能存在进一步的压缩空间,这是因为执行压缩后的目标模型的计算精度并没有被劣化,或者说在执行压缩处理过程中被去除的参数对于目标模型执行目标计算任务的影响非常小。那么很容易想到的是,很有可能在这样压缩后的目标模型中仍然存在可去除的参数量。因此,通过根据压缩前后的计算精度的变化来确定压缩参数,从而能够获得能够实现更好压缩效果的压缩参数值。

S303,当模型精度值大于或等于原始精度值时,增大压缩参数的数值,采用压缩参数的当前值对目标模型进行压缩处理,并获取压缩后的目标模型的计算精度以更新模型精度值。

S304,当模型精度值小于原始精度值时,减小压缩参数的数值,并结束迭代操作。

在本申请实施例中,当在步骤S303中确定模型精度值大于或等于原始精度值时,即目标模型的计算精度没有损失,则可以增大压缩参数的数值,例如较佳地可以将压缩参数增大一倍。然后,采用压缩参数的当前值,即增大后的数值,再次对目标模型进行压缩处理,并获取此时目标模型的计算精度,然后,以该计算精度更新上述模型精度值,并以该参数值返回执行上述步骤S302,以进行进一步的调整操作。在上述迭代过程中,当检测到当前的模型精度值小于原始精度值时,即目标模型产生精度损失,则标明上一次调整后的数值即为目标数值,因此可以执行减小压缩参数的数值的操作,例如可以将压缩参数的数值减小二分之一。

例如,如图1中所示,在步骤S303中判断压缩后的目标模型执行与获得原始计算精度所执行的计算处理相同的计算处理的计算精度值大于或等于原始计算精度值时,可以在步骤S303中对压缩权重参数RHO的值进行调整,例如,从初始值修改为初始值的两倍,并且以修改后的值重新对原始目标模型进行压缩处理,并且在压缩处理之后获得的压缩后的目标模型再次重复进行上述计算来获得压缩后计算精度并且原始的目标模型执行上述重复处理所获得的原始计算精度进行比较。即,判断在增大了压缩参数RHO来进一步增加压缩率的情况下是否没有对目标模型的计算精度造成劣化。因此,当以初始值两倍的参数值对目标模型执行压缩后获得的压缩后的目标模型的计算精度没有劣化,则可以继续重复步骤S303中调整参数值的步骤,例如,将当前值,即初始值的两倍,再次加倍,即修改为初始值的四倍,并且再次对原始目标模型执行压缩。

当在步骤S303中确定上述预设初始值的压缩权重参数执行了压缩处理之后,压缩后的目标模型重复执行上述计算获得的压缩后计算精度与原始计算精度相比存在了下降,那么该比较结果可以说明利用该初始值执行压缩处理并没有取得成功,即,对目标模型执行计算的精度产生了劣化影响。特别地,由于压缩后的目标模型与原有模型相比其参数数量势必已经得到了减少,但是其重复执行与获得原始计算精度所执行的计算任务相同的计算任务并不能够获得相同或相近的计算精度,例如执行压缩处理之后获得的压缩后的目标模型的计算精度产生了下降,那么说明该压缩后的目标模型是无法使用的,另一方面,该比较结果还可以说明使用该初始值执行压缩很可能已经不存在进一步的压缩空间,甚至说上一次执行的压缩处理压缩过头了。这是因为执行压缩后的目标模型的计算精度发生了劣化,或者说在执行压缩处理过程中被去除的参数中存在对于目标模型执行目标计算任务的影响较大的参数。那么很容易想到的是,很有可能在这样压缩后的目标模型中存在不应该在当前压缩处理中被取出的参数。即,在当前压缩处理中,例如RHO的压缩权重参数设置的不合适。

因此,如果在步骤S303中经过比较确定当前的RHO的参数值进行的压缩处理已经使得目标模型的计算精度得到了劣化,则可以减小当前RHO的参数值,例如,减小为当前RHO参数值的一半,并且将减小的RHO参数作为适合的压缩参数终止迭代。当然在减小了当前RHO参数值之后,也可以再次重复上述压缩处理,并且再次对压缩后的目标模型执行上述重复计算来比较原始计算精度和压缩后的计算精度,以此方式进行迭代。

当然在本申请实施例中,在计算精度没有劣化的情况下增加压缩权重参数的参数值的方式不限于加倍,也可以以初始值的三倍或其他倍数来调整,并且在计算精度发生劣化的情况下减小压缩权重参数的参数值的方式也不限于减为一半,而是也可以以例如减小为三分之一的方式来进行调整。此外,增加和减小也可以不是对应的,即可以在增大权重参数时为加倍,并且在减小时为减小为三分之一的方式来对压缩权重值进行调整。此外在增加和减小压缩权重值的方式不彼此对应时,例如,上述增加时为加倍,并且减小时为减小为三分之一的方式的情况下,可以在减小之后以减小的参数值再次执行压缩处理,并且对压缩后的目标模型再次执行上述重复计算并且将获得的压缩后的计算精度值与原始计算精度值进行比较,并且如果确认没有劣化计算精度,则可以将减小后的该压缩权重值作为较佳的压缩权重值输出。

具体地,在本申请实施例中,在采用ADMM方式减少目标模型所使用的参数的数量以对其进行压缩处理时,在对目标模型的当前网络层进行压缩处理时,可以将当前网络层的关联层的剩余参数量作为ADMM的新增约束,本申请实施例中的关联层的剩余参数量是指该关联层在被压缩后所剩余的参数的数量,其中,当前网络层的关联层可以为当前层的前层和/或后层。

换言之,在本申请实施例中,在进行上述压缩处理时还可以额外引入当前网络层的前后层的压缩剩余参数量来作为额外的压缩权重参考,因此可以综合考虑基于当前的压缩参数的神经网络模型层的参数与前后层的参数之间的关联性,从而与前后层压缩后剩余的参数具有较强关联性的参数在压缩时被留下的概率也应该较高,因此这样能够进一步提高压缩效果。

S305,输出该压缩参数的调整后的数值。

因此,本申请实施例提供的数据处理方案,能够通过判断目标模型在被压缩前后的计算精度的变化,来调整压缩参数的数值,并通过迭代的方式快速确定适合该目标模型的压缩参数的数值,从而在保证目标模型的计算精度没有损失的前提下达到较佳的压缩效果。

实施例四

图4为本申请提供的数据处理装置实施例的结构示意图,可用于执行如图2和图3所示的方法步骤。如图4所示,该数据处理装置可以包括:获取模块41、参数调整模块42和输出模块43。

其中,获取模块41,用于压缩参数的初始值以及与该初始值对应的模型精度值,其中,模型精度值为采用该压缩参数的初始值压缩后的目标模型的计算精度。参数调整模块42用于比较上述模型精度值与原始精度值的大小,并根据比较结果,调整该压缩参数的数值,其中,原始精度值为压缩前的目标模型的计算精度;输出模块43用于输出压缩参数的调整后的数值。

在本申请实施例中,当采用例如ADMM等压缩方式对目标模型进行参数量的压缩处理之前,首先针对未被压缩的目标模型计算其计算精度,即本申请实施例中的原始精度值。然后,针对压缩算法中的压缩参数,按照人工设置或者默认的初始值对目标模型进行一次压缩处理,并计算此时目标模型的计算精度,即本申请实施例中的与压缩参数的初始值对应的模型精度值。获取模块41获取此初始值以及该初始值对应的模型精度值。

例如,可以先对于要以例如ADMM压缩方案进行压缩处理的目标模型执行计算,以获取该目标模型的原始计算精度。例如,在本申请实施例中,神经网络模型为获得该原始精度而执行的计算可以是执行预先设置的标准计算处理,也可以是执行实际的计算任务。在获得了原始计算精度之后,可以由获取模块41获取ADMM方案中的RHO参数这样的对压缩效果影响较大的压缩参数的初始值。在本申请实施例中,该初始值可以是按照经验获得的,或者也可以是基于多个类似模型分别进行压缩而获得的统计值,并且进而可以基于该初始值来对于目标模型执行压缩处理,即,使用具有上述初始值的压缩参数的ADMM压缩方案对目标神经网络模型进行压缩处理,从而获得压缩后的神经网络模型,并且再次对于该压缩后的神经网络模型重复执行与获得原始计算精度所执行的计算任务相同的计算任务,以获得模型精度值。

然后,由参数调整模块42进行参数调整,具体地,参数调整模块42在比较经压缩处理后的模型精度值和压缩前的原始精度值时,若模型精度值大于或等于原始精度值,即目标模型的计算精度没有损失,则可以增大压缩参数的数值;若模型精度值小于原始精度值,即目标模型产生精度损失,则可以减小压缩参数的数值。如此过判断目标模型在被压缩前后的计算精度的变化,来对压缩参数进行调整,最终可得到适合该目标模型的压缩参数的数值,且根据该数值对目标模型进行压缩能够在保证目标模型的计算精度的前提下,达到较佳的压缩效果。

在本申请实施例中,原始精度值为压缩前的目标模型的计算精度。并且参数调整模块42在比较经压缩处理后的模型精度值和压缩前的原始精度值时,若模型精度值大于或等于原始精度值,即目标模型的计算精度没有损失,则可以增大压缩参数的数值;若模型精度值小于原始精度值,即目标模型产生精度损失,则可以减小压缩参数的数值。如此过判断目标模型在被压缩前后的计算精度的变化,来对压缩参数进行调整,最终可得到适合该目标模型的压缩参数的数值,且根据该数值对目标模型进行压缩能够在保证目标模型的计算精度的前提下,达到较佳的压缩效果。

也就是说,在获得了目标模型执行计算任务的原始计算精度之后,获取模块41获取了压缩参数的初始值之后,参数调整模块42可以采用具有该初始值的压缩参数对目标模型进行压缩处理,并对于压缩处理之后获得的压缩后的神经网络模型再次执行上述与获得原始计算精度所执行的计算任务相同的计算处理任务以获取与对该模型执行压缩处理所基于的压缩方案的权重参数的值对应的压缩后计算精度。从而可以基于该压缩后计算精度来判断使用该初始值的压缩权重系数进行压缩处理的压缩效果。

例如,参数调整模块42通过比较该压缩后获得的计算精度与如上所述获得的目标模型还没有经过压缩时的原始计算精度,并基于两者的比较结果来调整压缩参数的值。例如在使用具有上述预设初始值的压缩参数执行了压缩处理之后,压缩后的目标模型重复执行上述计算获得的模型计算精度与原始计算精度相比没有下降,那么该比较结果不仅可以说明利用该初始值执行压缩处理在一定程度上取得了成功,没有劣化目标模型执行计算的精度,即由于压缩后的目标模型与原有模型相比其参数数量势必已经得到了减少,并且其重复执行与获得原始计算精度所执行的计算任务相同的计算任务能够获得相同或相近的计算精度,那么说明该压缩后的目标模型是可以使用的,另一方面,该比较结果还可以说明使用该初始值执行压缩还可能存在进一步的压缩空间,这是因为执行压缩后的目标模型的计算精度并没有被劣化,或者说在执行压缩处理过程中被去除的参数对于目标模型执行目标计算任务的影响非常小。那么很容易想到的是,很有可能在这样压缩后的目标模型中仍然存在可去除的参数量。因此,通过根据压缩前后的计算精度的变化来确定压缩参数,从而能够获得能够实现更好压缩效果的压缩参数值。之后,由输出模块43输出经参数调整模块42调整后的该压缩参数的数值。

进一步地,在本申请实施例中,参数调整模块42在进行参数调整时,可以执行下述迭代操作:

比较模型精度值与原始精度值的大小。

当模型精度值大于或等于原始精度值时,增大压缩参数的数值,采用压缩参数的当前值对目标模型进行压缩处理,并获取压缩后的目标模型的计算精度以更新模型精度值。

当模型精度值小于原始精度值时,减小压缩参数的数值,并结束迭代操作。

在本申请实施例中,当参数调整模块42判断出模型精度值大于或等于原始精度值时,即目标模型的计算精度没有损失,则可以增大压缩参数的数值,例如较佳地可以将压缩参数增大一倍。然后,采用压缩参数的当前值,即增大后的数值,再次对目标模型进行压缩处理,并获取此时目标模型的计算精度,然后,以该计算精度更新上述模型精度值,并继续执行上述精度值比较的操作,以进一步进行参数值的调整。在该迭代过程中,当参数调整模块42检测到当前的模型精度值小于原始精度值时,即目标模型产生精度损失,则标明上一次调整后的数值即为目标数值,因此可以执行减小压缩参数的数值的操作,例如可以将压缩参数的数值减小二分之一,然后结束该迭代操作,由输出模块43输出经参数调整模块42调整后的该压缩参数的数值。

另外,在本申请实施例中,在采用ADMM方式减少目标模型所使用的参数的数量以对其进行压缩处理时,在对目标模型的当前网络层进行压缩处理时,可以将当前网络层的关联层的剩余参数量作为ADMM的新增约束,本申请实施例中的关联层的剩余参数量是指该关联层在被压缩后所剩余的参数的数量,其中,当前网络层的关联层可以为当前层的前层和/或后层。

因此,本申请实施例提供的数据处理方案,能够通过判断目标模型在被压缩前后的计算精度的变化,来调整压缩参数的数值,并通过迭代的方式快速确定适合该目标模型的压缩参数的数值,从而在保证目标模型的计算精度没有损失的前提下达到较佳的压缩效果。

实施例五

以上描述了数据处理装置的内部功能和结构,该装置可实现为一种电子设备。图5为本申请提供的电子设备实施例的结构示意图。如图5所示,该电子设备包括存储器51和处理器52。

存储器51,用于存储程序。除上述程序之外,存储器51还可被配置为存储其它各种数据以支持在电子设备上的操作。这些数据的示例包括用于在电子设备上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。

存储器51可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。

处理器51,不仅仅局限于中央处理器(CPU),还可能为图形处理器(GPU)、现场可编辑门阵列(FPGA)、嵌入式神经网络处理器(NPU)或人工智能(AI)芯片等处理芯片。处理器52,与存储器51耦合,执行存储器51所存储的程序,该程序运行时执行上述实施例二至三的数据处理方法。

进一步,如图5所示,电子设备还可以包括:通信组件53、电源组件54、音频组件55、显示器56等其它组件。图5中仅示意性给出部分组件,并不意味着电子设备只包括图5所示组件。

通信组件53被配置为便于电子设备和其他设备之间有线或无线方式的通信。电子设备可以接入基于通信标准的无线网络,如WiFi,3G、4G或5G,或它们的组合。在一个示例性实施例中,通信组件53经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件53还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。

电源组件54,为电子设备的各种组件提供电力。电源组件54可以包括电源管理系统,一个或多个电源,及其他与为电子设备生成、管理和分配电力相关联的组件。

音频组件55被配置为输出和/或输入音频信号。例如,音频组件55包括一个麦克风(MIC),当电子设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器51或经由通信组件53发送。在一些实施例中,音频组件55还包括一个扬声器,用于输出音频信号。

显示器56包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。

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

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

20页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:基于新型特征自动构造的人群行为规则自动提取方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!