神经网络模型量化方法、装置及电子设备与流程

文档序号:21440882发布日期:2020-07-10 17:20阅读:200来源:国知局
神经网络模型量化方法、装置及电子设备与流程

本发明涉及机器学习技术领域,尤其是涉及一种神经网络模型量化方法、装置及电子设备。



背景技术:

目前神经网络模型在语音识别、文字识别、以及图像视频识别等许多领域中已经有了广泛而成功的应用。在一些指定的目标任务中,训练好的神经网络模型需要进一步部署到目标设备进行加速,由于一般的神经网络模型都是双精度或单精度浮点数运算,为了使尽可能多地目标设备满足运算需求,研究人员对神经网络模型进行了量化,以降低神经网络模型的运算复杂度及运算单元开销。然而,现有的量化后的神经网络模型在归一化层依然存在浮点参数,所以仍需要浮点运算单元,无法运行在只支持定点或低位宽运算的目标设备上。因此,现有的量化后的神经网络模型,还存在因计算复杂度较高而无法运行在只支持定点或低位宽运算的目标设备上的问题。



技术实现要素:

有鉴于此,本发明的目的在于提供一种神经网络模型量化方法、装置及电子设备,降低了神经网络模型的运算复杂度,使得量化后的神经网络模型在只支持定点或低位宽运算的目标设备上可以加速运行。

为了实现上述目的,本发明实施例采用的技术方案如下:

第一方面,本发明实施例提供了一种神经网络模型量化方法,包括:获取神经网络模型;其中,所述神经网络模型包括卷积层、归一化层和量化激活层,所述量化激活层的输出特征为整数型特征;将所述卷积层的参数转换为整数型参数;对所述归一化层和所述量化激活层进行合并,得到合并层;将所述合并层的参数转换为整数型参数,得到量化后的神经网络模型。

进一步,本发明实施例提供了第一方面的第一种可能的实施方式,其中,所述对所述归一化层和所述量化激活层进行合并的步骤,包括:将所述归一化层的输出特征作为所述量化激活层的输入特征,对所述归一化层和所述量化激活层进行合并,得到合并层的初始输出特征;对所述合并层的初始输出特征进行限值运算,得到所述合并层的目标输出特征。

进一步,本发明实施例提供了第一方面的第二种可能的实施方式,其中,所述对所述合并层的初始输出特征进行限值运算,得到所述合并层的目标输出特征的步骤,包括:将所述合并层的初始输出特征的大小限值在[0,2f-1]内,当所述合并层的初始输出特征小于0时,将所述合并层的目标输出特征设置为0,当所述合并层的初始输出特征大于2f-1时,将所述合并层的目标输出特征设置为2f-1。

进一步,本发明实施例提供了第一方面的第三种可能的实施方式,其中,所述合并层的初始输出特征为其中,n为所述归一化层的输入特征,b为所述合并层的偏移量,t为所述合并层的量化间隔,b和t均为浮点数,b和t均是基于所述归一化层和所述量化激活层的参数合并得到的。

进一步,本发明实施例提供了第一方面的第四种可能的实施方式,其中,所述将所述合并层的参数转换为整数型参数的步骤,包括:利用预设的运算等效算法确定所述合并层的公用正整数;基于所述公用正整数将所述合并层的参数b和t分别由浮点数转换为整数型参数,得到所述合并层的目标输出特征为其中,b为整数型偏移量,t为整数型量化间隔,k为所述公用正整数。

进一步,本发明实施例提供了第一方面的第五种可能的实施方式,其中,所述利用预设的运算等效算法确定所述合并层的公用正整数的步骤,包括:从预设范围中选取满足预设条件的各个候选序列;其中,所述预设范围为[1,2f-1];从各个所述候选序列中提取最小值,得到目标序列;将所述目标序列中的最大值作为所述合并层的公用正整数。

进一步,本发明实施例提供了第一方面的第六种可能的实施方式,其中,所述将所述卷积层的参数转存为整数型参数的步骤,包括:对所述卷积层的权重进行缩放和偏移处理,得到所述卷积层的整数型权重。

进一步,本发明实施例提供了第一方面的第七种可能的实施方式,其中,所述神经网络模型通过以下方式训练:在神经网络模型的迭代训练过程中,基于预设的量化位宽值确定所述卷积层的权重的候选取值,并根据所述候选取值和所述卷积层的原始权重确定所述卷积层的量化权重;其中,所述卷积层的量化权重为浮点数;将所述归一化层中的各个参数设置为浮点数;其中,各个所述参数包括均值、方差、缩放值和偏移量;基于所述预设的量化位宽值确定所述量化激活层的输出特征。

进一步,本发明实施例提供了第一方面的第八种可能的实施方式,其中,基于所述预设的量化位宽值确定所述卷积层的权重的候选取值,并根据所述候选取值和所述卷积层的原始权重确定所述卷积层的量化权重的步骤,包括:基于所述预设的量化位宽值确定所述卷积层的量化权重的候选取值为其中,f为所述预设的量化位宽值,所述卷积层的权重的取值范围为[0,1];从所述候选取值中选取满足预设条件的数值作为所述卷积层的量化权重。

进一步,本发明实施例提供了第一方面的第九种可能的实施方式,其中,所述基于所述预设的量化位宽值确定所述量化激活层的输出特征的步骤,包括:基于所述预设的量化位宽值对所述量化激活层的输出参数进行限值运算,得到所述量化激活层的输出特征;其中,所述限值运算的计算算式为:

其中,clip为限值运算符,为所述量化激活层的输出特征,当时,所述量化激活层的输出特征为0,当时,所述量化激活层的输出特征为2f-1,m为所述量化激活层的输入特征,s为所述量化激活层的量化间隔,f为所述预设的量化位宽值。

进一步,本发明实施例提供了第一方面的第十种可能的实施方式,其中,将所述量化后的神经网络模型发送至目标电子设备,以通过所述目标电子设备执行所述量化后的神经网络模型所对应的目标任务。

第二方面,本发明实施例还提供了一种神经网络模型量化装置,包括:获取模块,用于获取神经网络模型;其中,所述神经网络模型包括卷积层、归一化层和量化激活层;其中,所述量化激活层的输出特征为整数型特征;处理模块,用于将所述卷积层的参数转换为整数型参数;合并模块,用于对所述归一化层和所述量化激活层进行合并,得到合并层;量化模块,用于将所述合并层的参数转换为整数型参数,得到量化后的神经网络模型。

第三方面,本发明实施例提供了一种电子设备,包括:处理器和存储装置;所述存储装置上存储有计算机程序,所述计算机程序在被所述处理器运行时执行上述第一方面任一项所述的方法。

第四方面,本发明实施例提供了一种移动设备,与上述第一方面任一项所述的电子设备通信连接;所述移动设备用于获取所述电子设备运行得到的量化后的神经网络模型,并基于所述量化后的神经网络模型进行图像处理;其中,所述移动设备包括智能终端和/或智能相机。

第五方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述第一方面任一项所述的方法的步骤。

本发明实施例提供了一种神经网络模型量化方法、装置及电子设备,首先通过获取神经网络模型(包括卷积层、归一化层和量化激活层,量化激活层的输出特征为整数型特征);然后将卷积层的参数转换为整数型参数;再对归一化层和量化激活层进行合并,得到合并层;最后将合并层的参数转换为整数型参数,得到量化后的神经网络模型。通过将训练完成的神经网络模型的卷积层的权重转存为整数型权重,并基于预设的运算等效算法将归一化层和量化激活层合并得到的合并层中的参数转存为整数型参数,降低了神经网络模型的运算复杂度,使得量化后的神经网络模型在只支持定点或低位宽运算的目标设备上可以加速运行。

本发明实施例的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本发明实施例的上述技术即可得知。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出了本发明实施例所提供的一种电子设备的结构示意图;

图2示出了本发明实施例所提供的一种神经网络模型量化方法流程图;

图3示出了本发明实施例所提供的一种卷积神经网络量化流程图;

图4示出了本发明实施例所提供的一种卷积神经网络的参数转存与部署流程图;

图5示出了本发明实施例所提供的一种神经网络模型量化装置结构示意图;

图6示出了本发明实施例所提供的另一种神经网络模型量化装置结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。

考虑到现有的量化后的神经网络模型,还存在因计算复杂度较高而无法运行在只支持定点或低位宽运算的目标设备上的问题,为改善此问题,本发明实施例提供的一种神经网络模型量化方法、装置及电子设备,可以应用于降低神经网络模型的运算复杂度,使得量化后的神经网络模型在只支持定点或低位宽运算的目标设备上可以加速运行。以下对本发明实施例进行详细介绍。

实施例一:

首先,参照图1来描述用于实现本发明实施例的一种神经网络模型量化方法、装置及电子设备的示例电子设备100。

如图1所示的一种电子设备的结构示意图,电子设备100包括一个或多个处理器102、一个或多个存储装置104、输入装置106、输出装置108以及图像采集装置110,这些组件通过总线系统112和/或其它形式的连接机构(未示出)互连。应当注意,图1所示的电子设备100的组件和结构只是示例性的,而非限制性的,根据需要,所述电子设备也可以具有其他组件和结构。

所述处理器102可以采用数字信号处理器(dsp)、现场可编程门阵列(fpga)、可编程逻辑阵列(pla)中的至少一种硬件形式来实现,所述处理器102可以是中央处理单元(cpu)、图形处理单元(gpu)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元中的一种或几种的组合,并且可以控制所述电子设备100中的其它组件以执行期望的功能。

所述存储装置104可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(rom)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器102可以运行所述程序指令,以实现下文所述的本发明实施例中(由处理器实现)的客户端功能以及/或者其它期望的功能。在所述计算机可读存储介质中还可以存储各种应用程序和各种数据,例如所述应用程序使用和/或产生的各种数据等。

所述输入装置106可以是用户用来输入指令的装置,并且可以包括键盘、鼠标、麦克风和触摸屏等中的一个或多个。

所述输出装置108可以向外部(例如,用户)输出各种信息(例如,图像或声音),并且可以包括显示器、扬声器等中的一个或多个。

所述图像采集装置110可以拍摄用户期望的图像(例如照片、视频等),并且将所拍摄的图像存储在所述存储装置104中以供其它组件使用。

示例性地,用于实现根据本发明实施例的神经网络模型量化方法、装置及电子设备的示例电子设备可以被实现为诸如智能手机、平板电脑、计算机等智能终端。

实施例二:

本实施例提供了一种神经网络模型量化方法,该方法可以由诸如计算机等上述电子设备执行,参见图2所示的神经网络模型量化方法流程图,该方法主要包括以下步骤s202~步骤s208:

步骤s202,获取神经网络模型;其中,神经网络模型包括卷积层、归一化层和量化激活层,量化激活层的输出特征为整数型特征。

上述神经网络模型可以是完成量化神经网络模型训练的模型,该神经网络模型可以是卷积神经网络,其中,该卷积神经网络网络层中的卷积层、归一化层和量化激活层依次连接,由于完成量化神经网络模型训练的模型中依然存在浮点型参数,在需要将模型加载至目标设备的情况下,对模型的运算能力要求较高,因此,还需要对完成量化神经网络模型训练的模型进行进一步量化,在不影响神经网络模型精度的情况下,将神经网络模型中的浮点型参数等效转换为整数型参数,进而降低神经网络模型的运算复杂度,降低对于目标设备的硬件条件要求。

步骤s204,将卷积层的参数转换为整数型参数。

上述卷积层的参数可以是卷积层的权重,由于量化前上述神经网络模型的卷积层的权重为浮点型参数,在神经网络执行识别任务时,计算复杂度较大,通过对卷积层的权重进行缩放和偏移处理,得到卷积层的整数型权重,从而可以降低模型推导时的计算复杂度,还可以降低神经网络模型占用内存的大小。基于预设的量化位宽值将神经网络模型的卷积层的权重由浮点型参数转存为整数型参数,具体的,首先对上述卷积层的权重进行预设倍数的缩放,再减小或增加预设数值(诸如,该预设数值可以是0),从而得到整数型权重。上述预设倍数可以根据预设的量化位宽值确定,诸如,该预设倍数可以是2f-1,f为预设的量化位宽值,预设的量化位宽值的大小可以根据实际要适配的目标设备的硬件配置确定,诸如,该预设的量化位宽的大小可以是2、4或8。

步骤s206,对归一化层和量化激活层进行合并,得到合并层。

将神经网络模型的归一化层(也可以称为批归一化层)和量化激活层整合为一个合并的网络层,且该合并层包括了归一化层和量化激活层原有的运算,该合并层的输入特征与上述归一化层的输入特征相同,该合并层的输出特征与上述量化激活层的输出特征相同。

步骤s208,将合并层的参数转换为整数型参数,得到量化后的神经网络模型。

对合并层中的运算算式进行转换化简,使等效转换后的算式与转换前的算式相等,从而将合并层的运算算式中的浮点型参数转存为整数型参数。通过将神经网络模型的卷积层和合并层的参数均转换为整型参数,得到进一步量化后的神经网络模型,通过将该量化后的神经网络模型加载在目标设备,可以使该量化后的神经网络模型在目标设备上实现推理加速。

本实施例提供的上述神经网络模型量化方法,通过将训练完成的神经网络模型的卷积层的权重转存为整数型权重,并基于预设的运算等效算法将归一化层和量化激活层合并得到的合并层中的参数转存为整数型参数,降低了神经网络模型的运算复杂度,使得量化后的神经网络模型在只支持定点或低位宽运算的目标设备上可以加速运行。

为了降低神经网络模型的运算复杂度,本实施例提供了对归一化层和量化激活层进行合并的实施方式,具体可参照如下步骤(1)~步骤(2)执行:

步骤(1):将归一化层的输出特征作为量化激活层的输入特征,对归一化层和量化激活层进行合并,得到合并层的初始输出特征。

上述归一化层的算式为量化激活层的算式为其中,m为量化激活层的输入特征,s为量化激活层的量化间隔,上述量化激活层的算式中的[]为取整符号。将上述归一化层的输入特征n代入上述归一化层的算式中,得到上述归一化层的输出特征再将上述归一化层的输出特征作为量化激活层的输入特征m代入量化激活层的算式中,得到合并层的初始输出特征

通过以下算式对合并层的初始输出特征进行化简运算,化简得到合并层的初始输出特征为

其中,n为归一化层的输入特征,b为合并层的偏移量,t为合并层的量化间隔,b和t均为浮点数,b和t均是基于归一化层和量化激活层的参数合并得到的,mean为均值,variance为方差,γ为归一化层的缩放量,β为归一化层的偏移量,∈为人为设置的常量,诸如,该常量的值可以是一个远远小于1且不为0的数值,以防止∈所在分母的值为0。

步骤(2):对合并层的初始输出特征进行限值运算,得到合并层的目标输出特征。

利用限值运算对合并层的初始输出特征进行限值运算,得到合并层的目标输出特征

其中,clip为限值运算,b为合并层的偏移量,t为合并层的量化间隔,b和t均为浮点数,f为预设的量化位宽值,为合并层的初始输出特征,[]为取整符号,为了使上述合并层的输出特征也为整数型参数,基于预设的量化位宽值及限值运算对合并层的输出特征进行定点限值,上述限制运算的目的是将合并层的目标输出特征限值在[0,2f-1]之间,当合并层的初始输出特征处于[0,2f-1]范围内时,合并层的目标输出特征为当合并层的初始输出特征时,合并层的目标输出特征为0,当合并层的初始输出特征时,合并层的目标输出特征为2f-1。

为了进一步降低神经网络模型的运算复杂度,本实施例提供了将合并层的参数转存为整数型参数的实施方式,具体可参照如下步骤1)~步骤2)执行:

步骤1):利用预设的运算等效算法确定合并层的公用正整数。

从预设范围中选取满足预设条件的各个候选序列;其中,预设范围为[1,2f-1]。从各个候选序列中提取最小值,得到目标序列。将目标序列中的最大值作为合并层的公用正整数。从预设范围为[1,2f-1]中选取满足预设条件的候选序列,该候选序列可以是一个或多个。上述预设条件可以根据实际情况确定,诸如,设上述候选序列s的中的元素s[i]=[it-b],b为合并层的偏移量,t为合并层的量化间隔,从预设范围[1,2f-1]中递推式选取数值i和j,将满足以下算式的i和j代入候选序列中:

上述不等式是将满足j>i的条件的i和j代入中,提取满足j>i条件时的最大值;将满足j<i的条件的i和j代入中,提取满足j<i条件时的最小值。搜索各个候选序列,并从每个候选序列中提取该序列的最小值,再从提取到的各个最小值中选取最大值作为合并层的运算算式中的公用正整数。在一种具体的实施方式中,还可以采用暴力搜索算法从上述预设范围中搜索可以将合并层中的运算算式等效转存为整型参数的公用正整数。

步骤2):基于公用正整数将合并层的参数b和t分别由浮点数转换为整数型参数,得到合并层的初始输出特征为

其中,b为整数型偏移量,t为整数型量化间隔,k为公用正整数。根据上述搜索得到的符合预设条件的公共正整数k确定与等效的从而将合并层的偏移量b由浮点型参数转存为整型参数b,将合并层的量化间隔由浮点型参数t转存为整型参数t。通过对转换整数型参数后的初始输出特征进行限制运算,可以得到转换整数型参数后合并成的目标输出特征

在一种具体的实施方式中,可以首先根据公共正整数k设定整数型量化间隔t,再根据公式转换关系得到整数型偏移量b。诸如,可以设t为与t×k相邻的两个整数,并对这两个整数进行逐一验证是否满足以下不等式:

maxi(it-k[it-b])<mini(it-k[it-b])+k

其中,上述i为预设范围[1,2f-1]中的任意一个整数,将预设范围[1,2f-1]中的整数逐一作为值代入上述不等式,当(it-k[it-b])中的最大值小于(it-k[it-b])+k的最小值时,即得到满足上述不等式的i和t。将满足上述不等式的i和t代入b=maxi(it-k[it-b]),从而求解出整数型偏移量b和整数型量化间隔t。

在一种具体的实施方式中,上述神经网络模型的训练方式可参照如下步骤a~步骤c执行:

步骤a:在神经网络模型的迭代训练过程中,基于预设的量化位宽值确定卷积层的权重的候选取值,并根据候选取值和卷积层的原始权重确定卷积层的量化权重;其中,卷积层的量化权重为浮点数。

在神经网络模型训练的每一轮迭代中,基于预设的量化位宽值确定卷积层的量化权重的候选取值为其中,f为预设的量化位宽值,卷积层的权重的取值范围为[0,1]。从候选取值中选取满足预设条件的数值作为卷积层的量化权重。上述预设的量化位宽值可以限制卷积层权重的值域范围和表达空间,使卷积层的权重转存为符合预设的量化位宽的浮点数。上述预设条件可以是与卷积层的权重之差的绝对值最小的数值,即与卷积层的权重最为接近的数值。诸如,当上述预设的量化位宽值为2时,上述卷积层的量化权重的候选取值的个数限制为2f=22=4个,这4个候选取值是从[0,1]中均匀获取到的,即这4个候选取值分别是若上述卷积层的权重为0.6223,计算该卷积层的权重与各个候选取值之差的绝对值,将与卷积层权重之差的绝对值最小的0.67作为上述卷积层的量化权重。从而在神经网络模型训练中实现了对于卷积层参数的量化,使卷积层的权重转换成符合预设的量化位宽的浮点数。

步骤b:将归一化层中的各个参数设置为浮点数;其中,各个参数包括均值、方差、缩放值和偏移量。

对归一化层的参数进行量化,上述归一化层的算式为将归一化层中的各个参数均设置为浮点数。

步骤c:基于预设的量化位宽值确定量化激活层的输出特征。

基于预设的量化位宽值对量化激活层的输出参数进行限值运算,得到量化激活层的输出特征;其中,上述限值运算的计算算式为:

其中,clip为限值运算符,为量化激活层的输出特征,当时,量化激活层的输出特征为0,当时,量化激活层的输出特征为2f-1,m为量化激活层的输入特征,s为量化激活层的量化间隔,f为预设的量化位宽值。上述限值运算是将量化激活层的输出特征限制在[0,2f-1]之间,当在0到2f-1之间时,将量化激活层的运算算式计算得到的值作为量化激活层的输出特征输出,当时,将0作为量化激活层的输出特征输出,当时,将2f-1作为量化激活层的输出特征输出。

在一种具体的实施方式中,本实施例提供的神经网络模型量化方法,还包括:将量化后的神经网络模型发送至目标电子设备,以通过目标电子设备执行量化后的神经网络模型所对应的目标任务。将各个网络层均为整型参数的量化后的卷积神经网络发送至需要进行目标识别的目标电子设备,通过目标电子设备执行量化后的神经网络模型所对应的目标任务,可以实现目标任务的加速推理。该目标任务可以与神经网络模型的训练过程相关,诸如,目标任务为识别图像中的目标,神经网络模型是基于该目标训练得到的。

本实施例提供的上述神经网络模型量化方法,将神经网络模型中有浮点运算的归一化层和量化的激活函数整合成一个只用整型参数运算的网络层,使量化后的神经网络模型可以运行在只支持定点运算或整型运算的目标设备上,降低了神经网络模型的运算复杂度和资源开销。

实施例三:

在前述实施例的基础上,本实施例提供了一种应用前述神经网络模型量化方法对卷积神经网络进行量化的示例,参见如图3所示的卷积神经网络量化流程图,具体可参照如下步骤s302~步骤s306执行:

步骤s302:在卷积神经网络的迭代训练中,对卷积神经网络的目标网络层的参数进行量化,直至迭代训练结束,得到训练后的卷积神经网络。

上述目标网络层包括卷积层、归一化层和量化激活层,还可以包括其他网络层。在卷积神经网络的训练阶段,参见如图4所示的卷积神经网络的参数转存与部署流程图,在每一轮迭代训练中,基于预设的量化位宽值将目标网络层的参数转化为浮点型参数,并对量化激活层的输出特征进行限值运算,将目标网络层的输出限值在[0,2f-1]之间,以使目标网络层的输出特征符合预设的量化位宽值。

步骤s304:对上述训练后的卷积神经网络进行网络层合并和参数部署,基于预设的运算等效算法将训练后的卷积神经网络中的浮点型参数转存为整型参数,得到量化后的卷积神经网络。

如图4所示,在卷积神经网络的部署阶段,将卷积神经网络的归一化层和量化激活层进行合并,使用一个合并层进行合并运算。对卷积层的权重进行缩放、偏移,以将卷积层的参数转存为整型参数,然后将合并层的运算算式中的参数转存为整型参数。

步骤s306:将上述量化后的卷积神经网络加载进目标设备,以使量化后的卷积神经网络在目标设备中实现推理加速。

如图4所示,在卷积神经网络的加速阶段,将带有整型参数的量化后的卷积神经网络移植或加载至需要进行目标识别的目标设备,由于上述量化后的卷积神经网络降低了运算复杂度,因此量化后的卷积神经网络在目标设备中可以实现目标识别过程的加速推理。

本实施例提供的上述神经网络模型量化方法,可以使量化后的卷积神经网络可以运行在只支持定点运算或整型运算的目标设备上,降低了卷积神经网络的运算复杂度和资源开销。

实施例四:

对应于实施例二中所提供的神经网络模型量化方法,本发明实施例提供了一种神经网络模型量化装置,参见图5所示的一种神经网络模型量化装置结构示意图,该装置包括以下模块:

获取模块51,用于获取神经网络模型;其中,神经网络模型包括卷积层、归一化层和量化激活层;其中,量化激活层的输出特征为整数型特征。

处理模块52,用于将卷积层的参数转换为整数型参数。

合并模块53,用于对归一化层和量化激活层进行合并,得到合并层。

量化模块54,用于将合并层的参数转换为整数型参数,得到量化后的神经网络模型。

本实施例提供的上述神经网络模型量化装置,通过将训练完成的神经网络模型的卷积层的权重转存为整数型权重,并基于预设的运算等效算法将归一化层和量化激活层合并得到的合并层中的参数转存为整数型参数,降低了神经网络模型的运算复杂度,使得量化后的神经网络模型在只支持定点或低位宽运算的目标设备上可以加速运行。

在一种实施方式中,上述合并模块53,进一步用于将归一化层的输出特征作为量化激活层的输入特征,对归一化层和量化激活层进行合并,得到合并层的初始输出特征;对合并层的初始输出特征进行限值运算,得到合并层的目标输出特征。

在一种实施方式中,上述合并模块53,进一步用于将合并层的初始输出特征的大小限值在[0,2f-1]内,当合并层的初始输出特征小于0时,将合并层的目标输出特征设置为0,当合并层的初始输出特征大于2f-1时,将合并层的目标输出特征设置为2f-1。

在一种实施方式中,上述合并层的初始输出特征为其中,n为归一化层的输入特征,b为合并层的偏移量,t为合并层的量化间隔,b和t均为浮点数,b和t均是基于归一化层和量化激活层的参数合并得到的。

在一种实施方式中,上述量化模块54,进一步用于利用预设的运算等效算法确定合并层的公用正整数;基于公用正整数将合并层的参数b和t分别由浮点数转换为整数型参数,得到合并层的初始输出特征为其中,b为整数型偏移量,t为整数型量化间隔,k为公用正整数。

在一种实施方式中,上述量化模块54,进一步用于从预设范围中选取满足预设条件的各个候选序列;其中,预设范围为[1,2f-1];从各个候选序列中提取最小值,得到目标序列;将目标序列中的最大值作为合并层的公用正整数。

在一种实施方式中,上述处理模块52,进一步用于对卷积层的权重进行缩放和偏移处理,得到卷积层的整数型权重。

在一种实施方式中,参见图6所示的另一种神经网络模型量化装置结构示意图,上述装置还包括:

训练模块60,用于在神经网络模型的迭代训练过程中,基于预设的量化位宽值确定卷积层的权重的候选取值,并根据候选取值和卷积层的原始权重确定卷积层的量化权重;其中,卷积层的量化权重为浮点数;将归一化层中的各个参数设置为浮点数;其中,各个参数包括均值、方差、缩放值和偏移量;基于预设的量化位宽值确定量化激活层的输出特征。

在一种实施方式中,上述训练模块60,进一步用于基于预设的量化位宽值确定卷积层的量化权重的候选取值为其中,f为预设的量化位宽值,卷积层的权重的取值范围为[0,1];从候选取值中选取满足预设条件的数值作为卷积层的量化权重。

在一种实施方式中,上述训练模块60,进一步用于基于预设的量化位宽值对量化激活层的输出参数进行限值运算,得到量化激活层的输出特征;其中,限值运算的计算算式为:

其中,clip为限值运算符,为量化激活层的输出特征,当时,量化激活层的输出特征为0,当时,量化激活层的输出特征为2f-1,m为量化激活层的输入特征,s为量化激活层的量化间隔,f为量化位宽值。

在一种实施方式中,上述装置还包括:

发送模块,用于将量化后的神经网络模型发送至目标电子设备,以通过目标电子设备执行量化后的神经网络模型所对应的目标任务。

本实施例提供的上述神经网络模型量化装置,将神经网络模型中有浮点运算的归一化层和量化的激活函数整合成一个只用整型参数运算的网络层,使量化后的神经网络模型可以运行在只支持定点运算或整型运算的目标设备上,降低了神经网络模型的运算复杂度和资源开销。

本实施例所提供的装置,其实现原理及产生的技术效果和前述实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。

实施例五:

本发明实施例提供了一种移动设备,其中,该移动设备与上述实施例一提供的电子设备通信连接,该电子设备用于执行上述实施例二提供的神经网络模型量化方法。

上述移动设备用于获取电子设备运行得到的量化后的神经网络模型,并基于量化后的神经网络模型进行图像处理;其中,该移动设备包括智能终端和/或智能相机。

实施例六:

本发明实施例提供了一种计算机可读介质,其中,所述计算机可读介质存储有计算机可执行指令,所述计算机可执行指令在被处理器调用和执行时,所述计算机可执行指令促使所述处理器实现上述实施例所述的神经网络模型量化方法。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统具体工作过程,可以参考前述实施例中的对应过程,在此不再赘述。

本发明实施例所提供的神经网络模型量化方法、装置及电子设备的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。

另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

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

在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。

最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1