掌桥专利:专业的专利平台
掌桥专利
首页

基于移位量化操作的全定点卷积计算方法、系统及设备

文献发布时间:2023-06-19 11:29:13


基于移位量化操作的全定点卷积计算方法、系统及设备

技术领域

本发明属于卷积神经网络领域,具体涉及了一种基于移位量化操作的全定点卷积计算方法、系统及设备。

背景技术

随着深度学习技术的不断发展,以卷积神经网络为代表的一系列模型在图像分类、目标检测等领域取得了良好的效果,并在生活中得到了广泛应用。但目前的卷积运算通常为浮点运算,在模型设计越来越复杂的情况下,浮点计算所带来的内存占用和时间消耗都非常巨大,难以在嵌入式设备上进行部署,因此通常需要将浮点运算量化为定点运算,以提高网络前向推理的效率。

现有的量化方法虽然将权值量化为定点数,但在前向推理过程中仍然涉及部分浮点运算,这会给嵌入式设备带来一定的性能损耗,另外,现有量化方法通常对每层卷积层的多个通道分别进行量化,导致每一层需要多个量化参数,这会增加嵌入式设备尤其是FPGA设备调度的复杂性。因此,设计一种更为简洁的全定点卷积计算方法尤为必要。

发明内容

为了解决现有技术中的上述问题,即现有的卷积计算只能通过浮点运算,内存占用和时间消耗都非常巨大,难以在嵌入式设备上进行部署的问题,本发明提供了一种基于移位量化操作的全定点卷积计算方法,所述方法包括:

步骤S100,获取校正集图像,并输入浮点模型获得各卷积层输出的特征图;

步骤S200,基于各卷积层输出的特征图,获取各卷积层特征图的量化尺度参数;

步骤S300,计算各卷积层的卷积核参数的量化尺度参数;

步骤S400,基于所述特征图的量化尺度参数和卷积核参数的量化尺度参数计算偏置项参数的量化尺度参数;

步骤S500,基于所述各卷积层的卷积核参数的量化尺度参数和偏置项参数的量化尺度参数,将各卷积层权重进行量化获得量化后的卷积核参数和量化后的偏置项参数;

步骤S600,基于所述特征图的量化尺度参数、量化后的卷积核参数和量化后的偏置项参数进行卷积运算获得最终卷积特征。

在一些优选的实施方式中,所述计算特征图的量化尺度参数,其具体步骤为:

步骤A10,基于所述各卷积层输出的特征图,获取各卷积层特征图的绝对值最大值;

步骤A20,基于所述各卷积层特征图的绝对值最大值,通过量化尺度参数公式计算各卷积特征图的量化尺度参数;

所述量化尺度参数公式为:

其中,

在一些优选的实施方式中,,所述计算各卷积层的卷积核参数的量化尺度参数,其具体步骤为:

步骤B10,统计各卷积层卷积核的绝对值最大值;

步骤B20,基于所述卷积核的绝对值最大值,根据所述量化尺度参数公式生成各卷积层卷积核的量化尺度参数。

在一些优选的实施方式中,偏置项参数的量化尺度参数,其获得方法为:

由当前层上一层的特征图的量化尺度参数和当前卷积层的卷积核参数的量化尺度参数加和获得偏置项的量化尺度参数。

在一些优选的实施方式中,所述卷积核参数和量化后的偏置项参数,其获得方法为:

基于各卷积层的卷积核参数的量化尺度参数和偏置项参数的量化尺度参数,通过量化后权重参数公式,分别获得量化后的卷积核参数和量化后的偏置项参数;

所述量化后权重参数公式为:

其中,

在一些优选的实施方式中,步骤S600包括:

步骤S610,对于每一层卷积层,将当前卷积层输入的量化后的特征图与当前卷积层的量化后的卷积核参数进行卷积运算,并加上当前卷积层的量化后的偏置项参数获得当前卷积层的中间结果;

步骤S620,若当前卷积层配置有relu激活函数,则对所述中间结果进行relu激活获得激活后的中间结果;

步骤S630,对所述中间结果或激活后的中间结果进行饱和运算,获得饱和运算后的中间结果;

步骤S640,基于所述饱和运算后的中间结果,进行向右移位量化操作,获得当前卷积层输出的量化后的特征图像,最后一层卷积层输出的量化后的特征图像即为最终卷积特征;所述向右移位量化操作,其右移的位数为当前卷积层的中间结果的量化尺度参数,所述中间结果的量化尺度参数为当前卷积层输入的特征图的量化尺度参数加上当前卷积层卷积核参数的量化尺度参数减去当前卷积层特征图的量化尺度参数。

在一些优选的实施方式中,所述饱和运算,其具体步骤为:

对所述第

其中,

若所述第

本发明的另一方面,提出了一种基于移位量化操作的全定点卷积计算系统,所述系统包括:特征图获取模块、卷积层特征图的量化尺度参数获取模块、卷积核参数的量化尺度参数获取模块、偏置项参数的量化尺度参数获取模块、权重参数量化模块、量化后的特征图获取模块和卷积计算结果获取模块;

所述特征图获取模块,配置为获取校正集图像,并输入浮点模型获得各卷积层输出的特征图;

所述卷积层特征图的量化尺度参数获取模块,配置为基于各卷积层输出的特征图,获取各卷积层特征图的量化尺度参数;

所述卷积核参数的量化尺度参数获取模块,配置为计算各卷积层的卷积核参数的量化尺度参数;

所述偏置项参数的量化尺度参数获取模块,配置为基于所述特征图的量化尺度参数和卷积核参数的量化尺度参数计算偏置项参数的量化尺度参数;

所述权重参数量化模块,配置为基于所述各卷积层的卷积核参数的量化尺度参数和偏置项参数的量化尺度参数,将各卷积层权重进行量化获得量化后的卷积核参数和量化后的偏置项参数;

所述卷积计算结果获取模块,配置为基于所述特征图的量化尺度参数、量化后的卷积核参数和量化后的偏置项参数进行卷积运算获得最终卷积特征。

本发明的第三方面,提出了一种电子设备,其特征在于,包括:至少一个处理器;以及与至少一个所述处理器通信连接的存储器;其中,所述存储器存储有可被所述处理器执行的指令,所述指令用于被所述处理器执行以实现上述的基于移位量化操作的全定点卷积计算方法。

本发明的第四方面,提出了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于被所述计算机执行以实现上述的基于移位量化操作的全定点卷积计算方法。

本发明的有益效果:

(1)本发明基于移位量化操作的全定点卷积计算方法,通过将中间结果进行移位操作进行量化,使得在前向计算过程中避免了浮点运算的参与,在保证量化后精度损失较小的情况下,减小卷积模型在嵌入式设备上的内存占用,每一层仅需一个量化参数,提高模型的前向推理效率。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1是本发明基于移位量化操作的全定点卷积计算方法实施例的流程示意图;

图2是本发明基于移位量化操作的全定点卷积计算方法实施例中前向推理过程中某一层卷积计算过程的流程示意图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。

本发明基于移位量化操作的全定点卷积计算方法,包括:

步骤S100,获取校正集图像,并输入浮点模型获得各卷积层输出的特征图;

步骤S200,基于各卷积层输出的特征图,获取各卷积层特征图的量化尺度参数;

步骤S300,计算各卷积层的卷积核参数的量化尺度参数;

步骤S400,基于所述特征图的量化尺度参数和卷积核参数的量化尺度参数计算偏置项参数的量化尺度参数;

步骤S500,基于所述各卷积层的卷积核参数的量化尺度参数和偏置项参数的量化尺度参数,将各卷积层权重进行量化获得量化后的卷积核参数和量化后的偏置项参数;

步骤S600,基于所述特征图的量化尺度参数、量化后的卷积核参数和量化后的偏置项参数进行卷积运算获得最终卷积特征。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

为了更清晰地对本发明基于移位量化操作的全定点卷积计算方法进行说明,下面结合图1对本发明实施例中各步骤展开详述。

在本实施例中;

本发明第一实施例的基于移位量化操作的全定点卷积计算方法,包括步骤S100-步骤S600,各步骤详细描述如下:

本发明实施例主要包括三个部分:第一部分为求解特征图的量化尺度参数,第二部分为对卷积核参数的量化及对偏置的量化,第三部分为前向推理过程中对中间结果的处理。

在本实施例中,以将特征图量化到8bit,将卷积核参数量化到7bit为例,则运用到的

步骤S100,获取校正集图像,并输入浮点模型获得各卷积层输出的特征图;

在本实施例中,将输入图像待计算图像设置为第0层特征,输入的待计算图像的绝 对值最大值为255,则通过量化尺度参数公式即公式(1)计算得到

第一部分,求解特征图的量化尺度参数主要为步骤S200的内容。

步骤S200,基于各卷积层输出的特征图,获取各卷积层特征图的量化尺度参数;

其具体步骤为:

步骤A10,基于所述各卷积层输出的特征图,获取各卷积层特征图的绝对值最大值;

步骤A20,基于所述各卷积层特征图的绝对值最大值,通过量化尺度参数公式计算各卷积特征图的量化尺度参数;在本实施例中,各卷积特征图的量化尺度参数表示为scale_feature [n],n表示第n层卷积;

所述量化尺度参数公式为:

其中,

第二部分,对卷积核参数的量化及对偏置的量化主要包括步骤S300-步骤S400的内容。

步骤S300,计算各卷积层的卷积核参数的量化尺度参数;

在本实施例中,所述计算各卷积层的卷积核参数的量化尺度参数,其具体步骤包括:

步骤B10,统计各卷积层卷积核的绝对值最大值;

步骤B20,基于所述卷积核的绝对值最大值,根据所述量化尺度参数公式即公式(1),生成各卷积层卷积核的量化尺度参数scale_kernel[n]。

步骤S400,基于所述特征图的量化尺度参数和卷积核参数的量化尺度参数计算偏置项参数的量化尺度参数;本实施例中,偏置项统一量化为int32。

在本实施例中,由当前层输入的特征图的量化尺度参数scale_feature[i-1]和当前卷积层的卷积核参数的量化尺度参数scale_kernel[i]加和获得当前层的偏置项的量化尺度参数bias_scale[i]。即bias_scale[i] =scale_feature[i-1]+scale_kernel[i]。通过本步骤的偏置项量化尺度参数计算方法可以有效地保持各卷积层特征图尺度的统一。

步骤S500,基于所述各卷积层的卷积核参数的量化尺度参数和偏置项参数的量化尺度参数,将各卷积层权重进行量化获得量化后的卷积核参数和量化后的偏置项参数;在本步骤中,即将浮点转换为定点进行后续计算。

在本实施例中,所述量化后卷积核参数和量化后的偏置项参数,其获得方法为:

基于各卷积层的卷积核参数的量化尺度参数和偏置项参数的量化尺度参数,通过量化后权重参数公式,分别获得量化后的卷积核参数和量化后的偏置项参数;在本申请中,权重包括卷积层的卷积核参数和偏置项参数,对权重的量化即问对卷积核参数的量化和对偏置项参数的量化;

所述量化后权重参数公式为:

其中,

步骤S600,基于所述特征图的量化尺度参数、量化后的卷积核参数和量化后的偏置项参数进行卷积运算获得最终卷积特征。

在获取了特征图的量化尺度参数、量化后的卷积核参数和量化后的偏置项参数后,输入任意图像均可进行卷积运算,此时输入图像视为第0层特征,在将特征图量化到8bit的情况下其量化尺度参数为-1。后续即可通过如步骤S600的方法完成计算。

在本实施例中,步骤S600如图2所示,包括:

步骤S610,对于每一层卷积层,将当前卷积层输入的量化后的特征图feature_q[i-1]与当前卷积层的量化后的卷积核参数kernel_q[i]进行卷积运算,并加上当前卷积层的量化后的偏置项参数int32_bias[i]获得当前卷积层的中间结果int32_feat[i];即int32_feat[i]= feature_q[i-1]*kernel_q[i]+ int32_bias[i];

步骤S620,若当前卷积层配置有relu激活函数,则对所述中间结果进行relu激活获得激活后的中间结果;

步骤S630,对所述中间结果或激活后的中间结果int32_feat[i]进行饱和运算,获得饱和运算后的中间结果,即int32_feat[i]=saturate(relu(int32_feat[i]));

步骤S640,基于所述饱和运算后的中间结果int32_feat[i],进行向右移位量化操作,获得当前卷积层输出的量化后的特征图像,最后一层卷积层输出的量化后的特征图像即为最终卷积特征;所述向右移位量化操作,其右移的位数为当前卷积层的中间结果的量化尺度参数scale[i],所述中间结果的量化尺度参数为当前卷积层输入的特征图的量化尺度参数scale_feature[i-1]加上当前卷积层卷积核参数的量化尺度参数scale_kernel[i]减去当前卷积层特征图的量化尺度参数scale_feature[i],即scale[i]=scale_feature[i-1]+scale_kernel[i]-scale_feature[i]。则步骤S640可以表示为feauture_q[i]=int32_feat[i]>>scale[i],>>表示向右移位操作;在本实施例中,取低8bit为当前卷积层的输出结果。

在本实施例中,所述饱和运算,其具体步骤为:

对当前卷积层的中间结果设置最大值和最小值:

其中,

若所述第

本方案将权值和特征图量化到低比特后,在卷积计算过程中没有浮点计算的参与,且对卷积层中间结果的量化使用了移位量化操作,这些优化大大提高了模型在嵌入式设备上运行的效率

本发明第二实施例的基于移位量化操作的全定点卷积计算系统,包括:特征图获取模块、卷积层特征图的量化尺度参数获取模块、卷积核参数的量化尺度参数获取模块、偏置项参数的量化尺度参数获取模块、权重参数量化模块、量化后的特征图获取模块和卷积计算结果获取模块;

所述特征图获取模块,配置为获取校正集图像,并输入浮点模型获得各卷积层输出的特征图;

所述卷积层特征图的量化尺度参数获取模块,配置为基于各卷积层输出的特征图,获取各卷积层特征图的量化尺度参数;

所述偏置项参数的量化尺度参数获取模块,配置为基于所述特征图的量化尺度参数和卷积核参数的量化尺度参数计算偏置项参数的量化尺度参数;

所述权重参数量化模块,配置为基于所述各卷积层的卷积核参数的量化尺度参数和偏置项参数的量化尺度参数,将各卷积层权重进行量化获得量化后的卷积核参数和量化后的偏置项参数;

所述卷积计算结果获取模块,配置为基于所述特征图的量化尺度参数、量化后的卷积核参数和量化后的偏置项参数进行卷积运算获得最终卷积特征。

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

需要说明的是,上述实施例提供的基于移位量化操作的全定点卷积计算系统,仅以上述各功能模块的划分进行举例说明,在实际应用中,可以根据需要而将上述功能分配由不同的功能模块来完成,即将本发明实施例中的模块或者步骤再分解或者组合,例如,上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块,以完成以上描述的全部或者部分功能。对于本发明实施例中涉及的模块、步骤的名称,仅仅是为了区分各个模块或者步骤,不视为对本发明的不当限定。

本发明第三实施例的一种电子设备,其特征在于,包括:至少一个处理器;以及与至少一个所述处理器通信连接的存储器;其中,所述存储器存储有可被所述处理器执行的指令,所述指令用于被所述处理器执行以实现上述的基于移位量化操作的全定点卷积计算方法。

本发明第四实施例的一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于被所述计算机执行以实现上述的基于移位量化操作的全定点卷积计算方法。

所属技术领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的存储装置、处理装置的具体工作过程及有关说明,可以参考前述方法实施例中的对应过程,在此不再赘述。

附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

术语“第一”、 “第二”等是用于区别类似的对象,而不是用于描述或表示特定的顺序或先后次序。

术语“包括”或者任何其它类似用语旨在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备/装置不仅包括那些要素,而且还包括没有明确列出的其它要素,或者还包括这些过程、方法、物品或者设备/装置所固有的要素。

至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征做出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。

相关技术
  • 基于移位量化操作的全定点卷积计算方法、系统及设备
  • 基于移位量化操作的全定点卷积计算方法、系统及设备
技术分类

06120112940111