版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
(19)国家知识产权局(12)发明专利地址英属开曼群岛大开曼资本大厦一座四(72)发明人谢宏伟张烁丁煌浩蔡岭胡聪钢李名杨有限公司11610及存储介质本申请实施例提供一种神经网络模型的量频次确定用于对第一神经网络层进行量化训练2获取神经网络模型中的第一神经网络层所需的计算数据,所述计算数据是指第一神经网络层完成本层计算所需的一种或多种数据,在使用所述神经网络模型处理图像数据或视频时,所述计算数据包括图像数据或视频,所述计算数据为浮点数,所述计算数据存在所属的数值范围且所述计算数据所属的数值范围可被放大;根据所述计算数据所属的数值范围,确定用于将所述计算数据转换为设定位数定点数的量化映射关系,其中,所述计算数据所属的数值范围中的最大浮点数用于映射到设定位数定点数的最大值,所述计算数据所属的数值范围中的最小浮点数用于映射到设定位数定点数的最小值;根据所述计算数据及所述量化映射关系,预测量化后的第一神经网络层发生算术溢出根据所述算术溢出的频次和所述计算数据,确定用于对所述第一神经网络层进行量化训练的目标计算数据,以对所述第一神经网络层进行量化训练;其中,根据所述算术溢出的频次和所述计算数据,确定用于对所述第一神经网络层进行量化训练的目标计算数据包括:若所述算术溢出的频次大于设定溢出频次阈值,则按照设定的倍数对所述计算数据所属的数值范围进行放大处理,并根据调整后的数值范围重新执行所述确定用于将所述计算数据转换为设定位数定点数的量化映射关系以及根据所述量化映射关系预测的步骤。2.根据权利要求1所述的方法,其特征在于,根据所述计算数据以及所述量化映射关根据所述量化映射关系,将所述计算数据映射为所述设定位数定点数,得到量化后的根据所述量化后的计算数据,推理量化后的第一神经网络层的计算过程,得到所述第一神经网络层的中间计算结果以及输出数据;根据所述中间计算结果、所述输出数据以及设定的数据存储范围,计算所述算术溢出3.根据权利要求2所述的方法,其特征在于,所述计算数据包括:模型参数以及输入数根据所述量化后的计算数据,推理量化后的第一神经网络层的计算过程,包括:根据量化后的模型参数和量化后的输入数据,按照第一神经网络层的计算逻辑,对所述第一神经网络层量化后的计算过程进行整数计算。4.根据权利要求2或3所述的方法,其特征在于,所述设定的数据存储范围包括1-64位任意整型数据对应的数值范围。5.根据权利要求1-3任一项所述的方法,其特征在于,根据所述算术溢出的频次和所述计算数据,确定用于对所述第一神经网络层进行量化训练的目标计算数据,还包括:若所述算术溢出的频次小于或者等于设定溢出频次阈值,则将所述计算数据作为所述目标计算数据。6.根据权利要求1所述的方法,其特征在于,按照设定的缩放倍数对所述计算数据所属的数值范围进行放大处理,包括以下至少一种:3按照第一缩放倍数,对所述第一神经网络层的模型参数所属的数值范围进行放大处按照第二缩放倍数对所述第一神经网络层的输入数据所属的数值范围进行放大处理。7.根据权利要求6所述的方法,其特征在于,所述第一缩放倍数和/或所述第二缩放倍数,根据所述算术溢出的频次确定。8.一种神经网络模型的量化处理装置,其特输入模块,用于:获取神经网络模型中的第一神经网络层所需的计算数据,所述计算数据是指第一神经网络层完成本层计算所需的一种或多种数据,在使用所述神经网络模型处理图像数据或视频时,所述计算数据包括图像数据或视频,所述计算数据为浮点数,所述计算数据存在所属的数值范围且所述计算数据所属的数值范围可被放大;溢出预测模块,用于:根据所述计算数据所属的数值范围,确定用于将所述计算数据转换为设定位数定点数的量化映射关系,其中,所述计算数据所属的数值范围中的最大浮点数用于映射到设定位数定点数的最大值,所述计算数据所属的数值范围中的最小浮点数用于映射到设定位数定点数的最小值;根据所述计算数据及所述量化映射关系,预测量化后的第一神经网络层发生算术溢出的频次,所述计算数据所属的数值范围用于确定量化映射关系,所述量化映射关系用于将所述计算数据转换为设定位数的整型数据;量化训练模块,用于:根据所述算术溢出的频次和所述计算数据,确定用于对所述第一神经网络层进行量化训练的目标计算数据,以对所述第一神经网络层进行量化训练;其中,根据所述算术溢出的频次和所述计算数据,确定用于对所述第一神经网络层进行量化训练的目标计算数据包括:若所述算术溢出的频次大于设定溢出频次阈值,则按照设定的缩放倍数对所述计算数据所属的数值范围进行放大处理,并根据调整后的数值范围重新执行所述确定用于将所述计算数据转换为设定位数定点数的量化映射关系以及根据所述量化映射关系预测的步骤。量化子模块,用于:根据所述量化映射关系,将所述计算数据映射为所述设定位数定点计算子模块,用于根据所述量化后的计算数据,推理量化后的第一神经网络层的计算过程,得到所述第一神经网络层的中间计算结果以及输出数据;以及,根据所述中间计算结果、所述输出数据以及设定的数据存储范围,计算所述算术溢出的频次。所述存储器用于存储一条或多条计算机指令;所述处理器用于执行所述一条或多条计算机指令以用于:执行权利要求1-7任一项所述的方法。11.一种存储有计算机程序的计算机可读存储介质,其特征在于,计算机程序被执行时能够实现权利要求1-7任一项所述的方法。4神经网络模型的量化处理方法、装置、设备及存储介质技术领域[0001]本申请涉及深度学习技术领域,尤其涉及一种神经网络模型的量化处理方法、装背景技术[0002]神经网络模型包含大量的模型参数,这些模型参数多为浮点型,占用较多的存储空间。同时,神经网络模型基于浮点型的模型参数进行浮点运算,也会占用较多的计算资[0003]通常,可对神经网络模型进行量化,以降低神经网络模型的数据量并提升神经网络模型的计算速度。[0004]但是,现有技术提供的神经网络模型的量化方法具有灵活性较差的缺陷。因此,有待提出一种新的解决方案。发明内容[0005]本申请的多个方面提供一种神经网络模型的量化处理方法、装置、设备及存储介质,用以提升神经网络模型的量化操作的灵活性。[0006]本申请实施例提供一种神经网络模型的量化处理方法,包括:获取神经网络模型中的第一神经网络层所需的计算数据;根据所述计算数据,预测量化后的第一神经网络层发生算术溢出的频次;根据所述算术溢出的频次和所述计算数据,确定用于对所述第一神经网络层进行量化训练的目标计算数据,以对所述第一神经网络层进行量化训练。[0007]本申请实施例还提供一种神经网络模型的量化处理装置,包括:输入模块,用于:获取神经网络模型中的第一神经网络层所需的计算数据;溢出预测模块,用于:根据所述计算数据,预测量化后的第一神经网络层发生算术溢出的频次;量化训练模块,用于:根据所述算术溢出的频次和所述计算数据,确定用于对所述第一神经网络层进行量化训练的目标计算数据,以对所述第一神经网络层进行量化训练。[0008]本申请实施例还提供一种电子设备,包括:存储器和处理器;所述存储器用于存储一条或多条计算机指令;所述处理器用于执行所述一条或多条计算机指令以用于:执行本申请实施例提供的神经网络模型的量化处理方法。[0009]本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现本申请实施例提供的神经网络模型的量化处理方法。[0010]本申请实施例中,在对神经网络模型进行量化训练的过程中,预测神经网络模型中任一神经网络层量化后发生算术溢出的频次,并根据预测的算术溢出的频次确定用于对第一神经网络层进行量化训练的目标计算数据。基于这种方式,便于对量化后的神经网络模型的溢出情况进行控制,有利于提升神经网络模型的量化操作的灵活性。5附图说明[0011]此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:[0012]图1为本申请一示例性实施例提供的神经网络模型的量化方法的流程示意图;[0013]图2a为本申请另一示例性实施例提供的神经网络模型的量化方法的流程示意图;[0014]图2b为本申请一示例性实施例提供的数据量化过程的示意图;[0015]图3为本申请一示例性实施例提供的阶梯步长的示意图;[0016]图4为本申请另一示例性实施例提供的阶梯步长的示意图;[0017]图5为本申请一示例性实施例提供的通过缩放操作控制映射范围的示意图;[0018]图6为本申请一示例性实施例提供的神经网络模型的数据量化装置的结构示意[0019]图7为本申请一示例性实施例提供的包含溢出预测模块的卷积层的结构示意图;[0020]图8为本申请一示例性实施例提供的电子设备的结构示意图。具体实施方式[0021]为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。[0022]神经网络模型,指的是对人工神经网络进行训练得到的深度学习模型。神经网络模型包含多种模型参数,一般的模型参数及其运算过程采用浮点数(float数据类型)进行数值表示,比如多采用32bit(量度信息的最小单位)的单精度浮点数或者64bit的双精度浮点数进行表示。[0023]模型量化(quantization),通常是指用整数替代神经网络模型中的浮点数进行数值表示,比如采用8bit或者16bit的定点整数进行数值表示。[0024]神经网络模型的量化操作,包括训练时量化以及训练后量化。其中,训练后量化是指,训练得到采用浮点数表示数值的神经网络模型,接着,使用一批样本输入神经网络模型,统计神经网络模型的输出数据的数值范围,再根据输出数据的数值范围对神经网络模用浮点数来保存定点参数,在神经网络模型训练完成后投入使用时,直接使用保存的定点[0025]一些场景下,量化后的神经网络模型存在算术溢出(arithmeticoverflow算术溢出,是指计算机进行算术运算产生的结果超出机器所能表示的范围。即,表示输出数据的数值超出了一定长度的定点数能表达的范围。[0026]针对上述算术溢出的技术问题,在本申请一些实施例中,提供了一种解决方案,在该解决方案中,在训练时量化的基础上进行了进一步改进,在神经网络模型中添加了溢出预测模块,该溢出预测模块可对量化后的神经网络模型的算术溢出情况进行预测,有利于降低量化后的神经网络模型出现算术溢出情况。以下将结合附图,详细说明本申请各实施例提供的技术方案。6[0027]图1为本申请一示例性实施例提供的神经网络模型的量化处理方法的流程示意[0028]步骤101、获取神经网络模型中的第一神经网络层所需的计算数据。[0029]步骤102、根据该计算数据,预测量化后的第一神经网络层发生算术溢出的频次。[0030]步骤103、根据算术溢出的频次和该计算数据,确定用于对第一神经网络层进行量化训练的目标计算数据,以对第一神经网络层进行量化训练。[0031]其中,第一神经网络层,指的是神经网络模型中的任一神经网络层,此处采用“第一”对神经网络层进行限定,仅用于方便描述和区分,并不对神经网络层的顺序或者位置构成任何限制。例如,针对卷积神经网络(ConvolutionalNeuralNetworks,CNN)模型而言,实施例不做限制。[0032]其中,计算数据,指的是第一神经网络层完成本层计算所需的一种或多种数据,包括前一层传递来的数据,也可包括本层内的模型参数。例如,第一神经网络层实现为CNN中的任意卷积层时,该卷积层所需的计算数据可包括输入卷积层的图像数据以及用于图像特征提取的卷积核以及用于将本层输出数据传递至下一层的激活函数等等,不再赘述。[0033]其中,根据该计算数据,预测量化后的第一神经网络层的输出数据发生算术溢出的频次的操作,可基于神经网络模型中的溢出预测模块实现。该溢出预测模块可感知量化后的神经网络模型的计算过程是否会出现算术溢出现象,并统计溢出频次,进而有利于进一步优化量化后的神经网络模型的精准度。[0034]其中,目标计算数据,是指用于对第一神经网络层进行量化训练的数据,也就是实际参与第一神经网络层的量化训练过程的数据。该目标计算数据可根据第一神经网络层的输出数据的溢出情况进行调整。基于这种方式,可根据预测得到的量化后的神经网络模型的溢出情况,反向调整参与第一神经网络层的实际量化训练过程的计算数据,有利于降低训练完成后的神经网络模型发生算术溢出的概率。[0035]在本实施例中,在对神经网络模型进行量化训练的过程中,预测神经网络模型中任一神经网络层量化后发生算术溢出的频次,并根据预测的算术溢出的频次确定用于对第一神经网络层进行量化训练的目标计算数据。基于这种方式,便于对量化后的神经网络模型的溢出情况进行控制,有利于提升神经网络模型的量化操作的灵活性。[0036]图2a为本申请另一示例性实施例提供的神经网络模型的量化处理方法的流程示[0037]步骤201、获取神经网络模型中的第一神经网络层所需的计算数据。[0038]步骤202、根据该计算数据,预测量化后的第一神经网络层发生算术溢出的频次。[0039]步骤203、判断该算术溢出的频次是否小于或者等于设定溢出频次阈值;若为是,执行步骤204,若为否,执行步骤205。[0040]步骤204、若该算术溢出的频次小于或者等于设定溢出频次阈值,则将该计算数据作为目标计算数据,并根据该目标数据对第一神经网络层进行量化训练。[0041]步骤205、若该算术溢出的频次大于设定溢出频次阈值,则对该计算数据进行调整,并根据调整后的计算数据执行步骤202。[0042]在步骤201中,第一神经网络层所需的计算数据,可包括第一神经网络层的模型参7数,以及,第一神经网络层的输入数据。当第一神经网络层不是神经网络模型中的首个神经网络层时,第一神经网络层的输入数据可以是第一神经网络层的前一神经网络层的输出数便,将输入数据所属的数值范围描述为[Imin,Imax],将模型参数所属的数值范围描述为[Pmin,Pmax]。[0050]接着,可根据计算数据所属的数值范围以及设定位数的整型数据所属的数值范为int:1,float:[0,0.0039]范围8[0057]得到第一神经网络层的中间计算结果以及输出数据后,可判断中间计算结果是否发生算术溢出,并判断输出数据是否发生算术溢出。基于判断结果,可确定第一神经网络层发生算术溢出的频次。在本实施例中,可根据中间计算结果、输出数据以及设定的数据存储范围,计算该算术溢出的频次。例如,若某一中间计算结果超出设定的数据存储范围,则可记一次算术溢出;若输出数据超出设定的数据存储范围,则可记一次算术溢出。[0058]可选地,该设定的数据存储范围可包括1-64位任意整型数据对应的数值范围。例如,可以是1位整型数据对应的数值范围,8位整型数据对应的数值范围,16位整型数据对应的数值范围,或者,32位整型数据对应的数值范围,本实施例包含但不限于此。以是8bit的整型数据对应的数值范围,输出数据对应的存储范围可以是16bit的整形数据对应的数值范围。在又一些场景下,中间计算结果和输出数据对应的存储范围均可以是[0060]例如,在一些典型的情况下,第一神经网络层的计算过程包括乘法和加法操作,如下述公式所示:[0061]R=x₁*w₁+x₂*W₂+…+[0062]其中,x表示第n个输入数据,w表示第一神经网络层的第n个权重参数,x*w表示执行第n个乘法操作得到的中间计算结果,R表示第一神经网络层的输出数据,n为正整数。应当理解,基于上述公式,每执行一次乘法操作后得到的结果,被称为中间计算结果,每执行一次加法操作得到的结果,也可被称为中间计算结果。例如,中间计算结果还可以为:x₁*[0063]假设,量化后的模型参数w₁、W₂…w以及量化后的输入数据x₁、x₂…x。均采用8bit整型表示。8bit整型数据对应的数值范围是[-127,128]。假设,x₁、x₂…x的取值均为127,且[0064]若n=100,那么基于上述公式进行乘法和加法运算后,可得到100个127*127的相[0066]若将中间计算结果存储为10bit整型数据,那么,若中间计算结果xn*w,超出了10bit整型数据对应的数值范围[-1024,1023],则可认为该中间计算结果发生了算术溢出。[0067]在步骤203中,可选地,获取到算术溢出的频次后,可判断该算术溢出的频次是否小于或者等于设定溢出频次阈值。其中,设定溢出频次阈值可根据实际情况进行设置。该设定溢出频次阈值可表征对算术溢出的容忍度。若对算术溢出的容忍度较高,则可设置较大的溢出频次阈值,若对算出溢出的容忍度较低,则可设置较小的溢出频次阈值。[0068]可选地,在一些实施例中,可设置该溢出频次阈值为零,以保证量化训练得到的神9经网络模型的精准度。[0069]在步骤204中,若算术溢出的频次小于或者等于设定溢出频次阈值,则可将该计算数据作为目标计算数据,并可根据该目标数据对第一神经网络层进行量化训练。[0070]在步骤205中,若该算术溢出的频次大于设定溢出频次阈值,则可对计算数据进行调整,并根据调整后的计算数据重新回到步骤202以执行预测操作,直至预测得到的输出数据不再发生算术溢出。[0071]在一些可选的实施方式中,对计算数据进行调整,可包括:采用新的数值较小的计算数据替换已有的计算数据,例如,可缩小输入数据的取值范围,或者可缩小模型参数的取值范围。[0072]在另一些可选的实施方式中,对计算数据进行调整,可包括:按照设定的缩放倍数对计算数据进行缩放处理。以下将结合附图以及具体的例子,对缩放计算数据影响算术溢出的原理进行详细地说明。[0073]应当理解,对数据进行量化,即为:将一定范围内连续的浮点数变化为离散的阶梯化的整数。相邻整数之间的阶梯步长,根据浮点数的上下限范围和量化操作对应的整数的映射范围确定。以下将结合具体的例子进行示例性说明。[0074]假设,模型参数Pmin=0.0,Pmax=255.0.8bit无符号整型数据的数值范围为[0,255]。将模型参数映射为8bit无符号的整数时,阶梯步长(stride)=1.如图2b所示,253.0、[0075]6bit无符号整型数据的数值范围为[0,63]。若将上述模型参数映射为6bit无符号的整数时,阶梯步长=4,那么Pmax=255.0会被映射为63,同时[252.0,255.0]之间的所有浮点数值也都会映射到63。[0076]当浮点数的上下限范围相同时,将浮点数量化为8bit整型数据的阶梯步长可参考图3的示意,将浮点数量化为6bit整型数据的阶梯步长可参考图4的示意。基于图3和图4可知,待量化数据所属的数值范围相同时,整型数据对应的映射范围越大,离散整数的阶梯步长越小,待量化数据进行量化后得到的整型数据的取值范围越大。[0077]为防止计算结果溢出,可适当增大阶梯步长,以缩小量化后的计算数据的取值范围。基于上述分析,增大阶梯步长的一种可选方式为:在整型数据对应的映射范围不变的情况下,增大待量化的浮点型的计算数据所属的数值范围。[0078]可选地,在本实施例中,可对计算数据所属的数值范围进行缩放。[0079]首先,可对计算数据进行统计,以统计得到计算数据的上限值和下限值,根据该上限值和下限值确定计算数据所属的数值范围。例如,可分别统计第一神经网络层的模型参数所属的数值范围[Pmin,Pmax],以及输入数据所属的数值范围[Imin,Imax]。[0081]如图5所示,假设Pmin=-1,Pmax=1,若将其映射为8bit整型数据,则阶梯步长为1/128.将其缩放4倍后,[4*Pmin,4*Pmax]=[-4,4]。将缩放后的范围映射到8bit整型数据后,阶梯步长为1/32,那么,[-1,1]的实际映射范围将缩小为[-32,31]。包含小数,本实施例不做限制。当α的取值范围足够灵活时,可将计算数据映射到任意的整数范围内,极大提升了量化的灵活性。[0083]可选地,在本实施例中,可按照第一缩放倍数,对第一神经网络层的模型参数进行缩放处理;或者,可按照第二缩放倍数对第一神经网络层的输入数据进行缩放处理。或者,可同时对模型参数和输入数据进行上述缩放处理,本实施例不做限制。[0084]可选地,第一缩放倍数和第二缩放倍数可以相同也可以不同,二者可根据输出数据的算术溢出的频次和/或溢出量确定。当算术溢出的频次较多时,可设置较大的缩放倍可设置较大的缩放倍数,当算术溢出的溢出量较小时,可设置较小的缩放倍数,本实施例不做限制。[0085]值得说明的是,在一种场景下,若预测得到第一神经网络层未发生算术溢出,且推理第一神经网络层的计算过程时,第一神经网络层的中间计算结果和输出数据所属的数值范围均远小于设定的数据存储范围,则可对第一神经网络层对应的模型参数和/或输入数据进行缩放处理。其中,缩放倍数可以设置在0到1之间,以缩小模型参于这种方式,可充分利并合理用设定的数据存储范围,有利于提升训练得到的模型的精度。[0086]在本实施例中,通过改变计算数据所属的数值范围来控制量化的映射范围,可灵活地控制神经网络模型的溢出情况,有利于提升神经网络模型的量化操作的灵活性。[0087]除此之外,本申请实施例提供的神经网络模型的量化方法中,预测第一神经网络层的计算结果的算术溢出的频次后,可根据算术溢出的频次确定目标计算数据,目标计算数据更适合于对神经网络模型进行量化训练,一方面,降低了训练完成后的神经网络模型在使用的过程中发生算术溢出的概率,提升生了量化模型的精准度;另一方面,预测溢出的过程和模型的实际训练任务相关,可在不发生溢出的前提下,将浮点型的计算数据映射至尽可能大的整数范围,能够在一定程度上避免模型被过度压缩。[0088]需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤201至步骤204的执行主体可以为设备A;又比如,步骤201和202的执行主体可以为设备A,步骤203的执行主体可以为设备B;等等。[0089]另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如201、202等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或[0090]值得说明的是,本申请上述各实施例提供的神经网络模型的量化处理方法,可被封装为可供第三方使用的工具,例如SaaS(Software-as-a-Service,软件即服务)工具。可选地,该SaaS工具可实现为插件或者应用程序。基于该SaaS工具,第三方用户可通过便捷地使用神经网络模型的量化处理服务。[0091]例如,在一些场景下,该SaaS工具可被部署在云平台,第三方用户可访问云平台,以在线使用该SaaS工具。基于该SaaS工具,第三方用户可在线量化训练神经网络模型,通过该SaaS工具实时预测神经网络模型的算术溢出情况,并可根据算术溢出情况对量化训练的过程进行调整。[0092]还值得说明的是,本申请上述各实施例提供的神经网络模型的量化处理方法,可11应用于多种不同的神经网络模型,例如,卷积神经网络(ConvolutionalNeuralNetworks,CNN)模型、深度神经网络(DeepNeuralNetwork,DNN)模型、图卷积神经网络(GraphConvolutionalNetworks,GCN)模型、循环神经网络(RecurrentNeuralNetwork,RNN)模型以及长短期记忆神经网络(LongShort-TermMemory,LSTM)模型一种或多种,或者还可应用于上述一种或多种神经网络变形得到的其他神经网络模型。[0093]在应用于不同的神经网络模型时,SaaS工具执行神经网络模型的量化处理方法所需的参数也不同。其中,该参数可包括:溢出频次阈值以及对计算数据进行调整所需的缩放倍数等等。SaaS工具可为不同类型的神经网络提供不同的默认参数。在另一些场景下,SaaS工具可通过与第三方用户进行交互,获取第三方用户提供的个性化定制的参数,并根据第三方用户提供的参数执行量化处理方法,不再赘述。[0095]图6为本申请一示例性实施例提供的神经网络模型的量化处理装置,如图6所示,该装置包括:[0096]输入模块61,用于:获取神经网络模型中的第一神经网络层所需的计算数据。[0097]溢出预测模块62,用于:根据所述计算数据,预测量化后的第一神经网络层发生算术溢出的频次。[0098]量化训练模块63,用于:根据所述算术溢出的频次和所述计算数据,确定用于对所述第一神经网络层进行量化训练的目标计算数据,以对所述第一神经网络层进行量化训[0099]进一步可选地,溢出预测模块62,包括:量化子模块621。溢出预测模块62在根据所述计算数据,预测量化后的第一神经网络层发生算术溢出的频次时,具体用于:通过量化子模块621,推理对所述计算数据的量化操作,得到量化后的计算数据;通过计算子模块622,根据所述量化后的计算数据,推理量化后的第一神经网络层的计算过程,得到所述第一神经网络层的中间计算结果以及输出数据;根据所述中间计算结果、所述输出数据以及设定的数据存储范围,计算所述算术溢出的频次。[0100]进一步可选地,量化子模块621在推理对所述计算数据的量化操作时,具体用于:根据所述计算数据所属的数值范围以及设定位数的整型数据所属的数值范围,确定量化映射关系;根据所述量化映射关系,将所述计算数据映射为所述设定位数的整型的计算数据。[0101]进一步可选地,所述设定位数的整型的计算数据包括:整型的模型参数以及整型的输入数据;溢出预测模块62在根据所述量化后的计算数据,推理量化后的第一神经网络层的计算过程时,具体用于:通过计算子模块622,根据所述整型的模型参数和所述整型的输入数据,按照第一神经网络层的计算逻辑,对所述第一神经网络层量化后的计算过程进行整数计算。[0102]进一步可选地,所述设定的数据存储范围包括:1-64位任意整型数据对应的数值[0103]进一步可选地,量化训练模块63在根据所述算术溢出的频次和所述计算数据,确定用于对所述第一神经网络层进行量化训练的目标计算数据时,具体用于:若所述算术溢出的频次小于或者等于设定溢出频次阈值,则将所述计算数据作为所述目标计算数据。[0104]进一步可选地,溢出预测模块62,还包括:调整子模块623;调整子模块623,用于:在所述算术溢出的频次大于设定溢出频次阈值时,调整所述计算数据,以使溢出预测模块62根据调整后的所述计算数据执行所述预测的步骤。[0105]进一步可选地,调整子模块623在对所述计算数据进行调整时,具体用于:按照设定的缩放倍数对所述计算数据所属的数值范围进行缩放处理。[0106]进一步可选地,调整子模块623在按照设定的缩放倍数对所述计算数据所属的数值范围进行缩放处理时,执行以下至少一种操作:按照第一缩放倍数,对所述第一神经网络层的模型参数所属的数值范围进行缩放处理;按照第二缩放倍数对所述第一神经网络层的输入数据所属的数值范围进行缩放处理。[0107]进一步可选地,所述第一缩放倍数和/或所述第二缩放倍数,根据所述算术溢出的频次确定。[0108]以下将结合神经网络模型的结构,对量化处理装置进行进一步说明。[0109]图7示意了对神经网络模型中的卷积层进行量化时的典型操作环节,如图7所示,溢出预测模块62可执行图7中的:缩放、量化、量化卷积以及计算算术溢出的频次N等环节。其中,量化卷积操作是指对量化后的输入数据执行设定整数位的卷积操作,并将计算结果存储为指定位数的整型数据。例如,输入数据为8bit整形数据,计算结果用16bit整数存储。其他环节为模型量化训练需执行的环节,此处不做赘述。[0110]在模型量化训练的过程中,溢出预测模块62可感知溢出是否发生。其中,在量化环节,溢出预测模块62可根据输入数据的上限值、下限值,将float类型的输入数据量化为8bit的整数。以及,可根据权重的上限值、下限值,将float类型的权重量化为8bit的整数。接着,溢出预测模块62可在卷积-int16环节中,根据量化为8bit的输入数据和权重进行卷积计算,并将卷积计算的结果和int16的取值范围进行对比,以预测卷积层发生算术溢出的频次N。若算术溢出的频次N大于设定的溢出频次阈值,则溢出预测模块62可在缩放环节,相应地缩放输入数据的上下限范围,以及权重的上下限范围,并重新执行量化环节的操作,直至算术溢出的频次N小于或者等于设定的溢出频次阈值。[0111]上述结构的优势在于,第一方面,通过缩放输入数据的上下限范围以及权重的上下限范围,达到控制量化映射范围的目的,克服采用固定bit进行量化操作的缺点,可将待量化的数据映射到任意的范围十分灵活。第二方面,溢出的控制和训练任务相关,可以做到在不溢出的前提下,将待量化的数据映射尽可能大的整数范围,从而能够保证模型的容量不被过度压缩。第三方面,溢出预测模块62可以和训练时量化的环节同时工作,能够保障量化模型精准度。[0112]图8示意了本申请一示例性实施例提供的电子设备的结构示意图,如图8所示,该电子设备包括:存储器801、处理器802以及通信组件803。[0113]存储器801,用于存储计算机程序,并可被配置为存储其它各种数据以支持在电子设备上的操作。这些数据的示例包括用于在电子设备上操作的任何应用程序或方法的指[0114]其中,存储器801可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。[0115]处理器802,与存储器801耦合,用于执行存储器801中的计算机程序,以用于:获取神经网络模型中的第一神经网络层所需的计算数据;根据所述计算数据,预测量化后的第一神经网络层发生算术溢出的频次;根据所述算术溢出的频次和所述计算数据,确定用于对所述第一神经网络层进行量化训练的目标计算数据,以对所述第一神经网络层进行量化[0116]进一步可选地,处理器802在根据所述计算数据,预测量化后的第一神经网络层发生算术溢出的频次时,具体用于:推理对所述计算数据的量化操作,得到量化后的计算数据;根据所述量化后的计算数据,推理量化后的第一神经网络层的计算过程,得到所述第一神经网络层的中间计算结果以及输出数据;根据所述中间计算结果、所述输出数据以及设定的数据存储范围,计算所述算术溢出的频次。[0117]进一步可选地,处理器802在推理对所述计算数据的量化操作时,具体用于:根据所述计算数据所属的数值范围以及设定位数的整型数据所属的数值范围,确定量化映射关系;根据所述量化映射关系,将所述计算数据映射为所述设定位数的整型的计算数据。[0118]进一步可选地,所述设定位数的整型的计算数据包括:整型的模型参数以及整型的输入数据;处理器802在根据所述量化后的计算数据,推理量化后的第一神经网络层的计算过程时,具体用于:根据所述整型的模型参数和所述整型的输入数据,按照第一神经网络层的计算逻辑,对所述第一神经网络层量化后的计算过程进行整数计算。[0120]进一步可选地,处理器802在根据所述算术溢出的频次和所述计算数据,确定用于对所述第一神经网络层进行量化训练的目标计算数据时,具体用于:若所述算术溢出的频次小于或者等于设定溢出频次阈值,则将所述计算数据作为所述目标计算数据;若所述算术溢出的频次大于设定溢出频次阈值,则对所述计算数据进行调整,并根据调整后的所述计算数据重新执行所述预测的步骤。[0121]进一步可选地,处理器802在对所述计算数据进行调整时,具体用于:按照设定的缩放倍数对所述计算数据所属的数值范围进行缩放处理。[0122]进一步可选地,处理器802在按照设定的缩放倍数对所述计算数据所属的数值范围进行缩放处理时,执行以下至少一种操作:按照第一缩放倍数,对所述第一神经网络层的模型参数所属的数值范围进行缩放处理;按照第二缩放倍数对所述第一神经网络层的输入数据所属的数值范围进行缩放处理。[0123]进一步可选地,所述第一缩放倍数和/或所述第二缩放倍数,根据所述算术溢出的频次确定。[0124]进一步,如图8所示,该电子设备还包括:显示器804、电源组件805等其它组件。图8中仅示意性给出部分组件,并不意味着电子设备只包括图8所示组件。[0125]其中,通信组件803被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如WiFi,2G、3G、4G或5G,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件可基于近场通信(NFC)其他技术来实现。[0126]其中,显示器804包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压[0127]其中,电源组件805,为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。[0128]本实施例中,在对神经网络模型进行量化训练的过程中,预测神经网络模型中任一神经网络层量化后发生算术溢出的频次,并根据预测的算术溢出的频次确定用于对第一神经网络层进行量化训练的目标计算数据。基于这种方式,便于对量化后的神经网络模型的溢出情况进行控制,有利于提升神经网络模型的量化操作的灵活性。[0129]相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述方法实施例中可由电子设备执行的各步骤。[0130]本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。[0131]本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年吉林省教育学院马克思主义基本原理概论期末考试笔试真题汇编
- 2025年二手奢侈品寄卖线上交易规范报告
- 2025年正德职业技术学院马克思主义基本原理概论期末考试参考题库
- 2025年重庆轻工职业学院马克思主义基本原理概论期末考试笔试题库
- 第04讲 利用导数研究函数的零点(方程的根) 高频考点精练(解析版)
- 2025年湖北商贸学院马克思主义基本原理概论期末考试真题汇编
- 2025年郑州汽车工程职业学院马克思主义基本原理概论期末考试真题汇编
- 2025年湖北商贸学院马克思主义基本原理概论期末考试参考题库
- 2025年北京物资学院马克思主义基本原理概论期末考试真题汇编
- 2024年南京林业大学马克思主义基本原理概论期末考试笔试真题汇编
- 人教版(2024)三年级上册数学总复习第4课时 图形的认识与测量课件
- 2025年汽车维修行业汽车维修行业维修企业应对市场变化的策略可行性研究报告
- 服装导购培训专业知识内容课件
- 基于IEC61850协议解析的变电站流量异常检测:技术、挑战与实践
- 江苏省苏州工业园区星澄学校2026届数学九上期末统考试题含解析
- 中国法制史试题题库(附答案)
- 医院保洁人员院感培训
- (高清版)DB44∕T 1031-2012 《制浆废液中甲醇含量的测定 顶空气相色谱法》
- 鹤颜堂中医苏子老师课件
- 冷板液冷标准化及技术优化白皮书
- 人工智能在艺术史研究中的应用与创新-洞察及研究
评论
0/150
提交评论