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

卷积神经网络在量化过程前向推理降低精度损失的方法

文献发布时间:2023-06-19 11:45:49


卷积神经网络在量化过程前向推理降低精度损失的方法

技术领域

本发明涉及卷积神经网络8bit量化反量化技术领域,特别涉及一种卷积神经网络在量化过程前向推理降低精度损失的方法。

背景技术

卷积神经网络(CNN)是一种用于进行图像处理的、包含卷积计算且具有深度结构的前馈神经网络,其被广泛用于图像分类、图像识别等。近年来,随着科技的飞速发展,大数据时代已经到来。深度学习以深度神经网络(DNN)作为模型,在许多人工智能的关键领域取得了十分显著的成果。卷积神经网络(CNN)作为一种典型的DNN结构,能有效提取出图像的隐层特征,并对图像进行准确分类,在近几年的图像识别和检测领域得到了广泛的应用。

量化网络最初的动机是减小模型文件尺寸,利用8-bit量化能缩小到原来的四分之一,在模型载入后仍转换回浮点数。具体方法是在网络权值保存为文件时,将每层最小值、最大值存储下来,然后将每个浮点数值采用8-bit整数表示(在最大值、最小值范围内空间线性划分256段,每段用一个唯一的8-bit整数表示在该段内的实数值)。将计算移植到8-bit可以帮助你更快地运行模型,功耗更低,在移动设备上特别重要。google量化反量化首先需要把batchnorm值合并入权重值,对合并之后权重值进行整体量化及反量化操作。

现有技术中的术语和解释:

卷积神经网络(Convolutional Neural Networks,CNN):是一类包含卷积计算且具有深度结构的前馈神经网络。

检测模型:根据目标任务定位图像中的目标对象的位置。

量化反量化:量化指将全精度模型中权重值以离散值形式进行8bit存储,反量化指将8bit离散值反量化到全精度;

batchnorm:训练过程中对神经网络每一层进行归一化的方法,能有效加速收敛速度及模型稳定性;

前向传播:利用已固化神经网络进行前向运算,获得预测结果。

推理:在深度学习中,推理是指将一个预先训练好的神经网络模型部署到实际业务场景中,如图像分类、物体检测、在线翻译等。由于推理直接面向用户,因此推理性能至关重要,尤其对于企业级产品而言更是如此。

现有技术中batchnorm是按照通道合并,不可避免出现某个通道值偏大,进一步影响整体量化精度,使得模型整体精度损失严重。

发明内容

为了解决上述问题,特别是模型推理和模型后处理之间产生等待的问题,本发明的目的在于:让模型推理和模型结果后处理可以并行运行,从而提高检测模型的整体效率。

具体地,本发明提供卷积神经网络在量化过程前向推理降低精度损失的方法,所述方法包括:在进行权重量化反量化过程中,提取batchnorm值,避免batchnorm值异常值对权重量化影响;卷积之后32bit反量化输出与batchnorm提取值相乘,从而避免精度损失。

所述的量化过程是直接对权重进行量化,不对权重合并任何batchnorm参数值。

进一步包括:

假设第i层的量化计算如下所示:

X

其中Q(W)为权重量化操作,D(X)至整体进行反量化操作,scale、b分别为batchnorm提取之后对应的系数。

所述的scale值操作与反量化之后值进行相乘,同时和合并之后偏置相加。

所述提取batchnorm值,避免batchnorm值异常值对权重量化影响是通过对batchnorm通道值进行单独处理,避免权重合并batchnorm时出现通道异常值问题。

当权重未合并batchnorm之前,整体权重分布符合正态分布,最大值与最小值符合预期。

当权重合并batchnorm之后,整体权重最大值与最小值不符合预期,分布被破坏,产生量化损失。

由此,本申请的优势在于:本申请属于深度神经网络基于全精度模型本地进行量化、反量化的一种技术,通过此种方法能有效降低batchnorm参数异常值对权重的影响,提升8bit量化过程中前向传播精度,降低精度损失。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。

图1是本发明方法的示意图。

图2是本发明方法在权重未合并batchnorm的示意图。

图3是本发明方法在权重合并batchnorm的示意图。

具体实施方式

为了能够更清楚地理解本发明的技术内容及优点,现结合附图对本发明进行进一步的详细说明。

本发明涉及一种卷积神经网络在量化过程前向推理降低精度损失的方法,所述方法的优点在于:

1.直接对权重进行量化,不对权重合并任何batchnorm参数值,消除batchnorm参数值对权重分布影响;

2.scale值操作与反量化之后值进行相乘,同时和合并之后偏置相加。

如图1所示,一种卷积神经网络在量化过程前向推理降低精度损失的方法,所述方法包括:在进行权重量化反量化过程中,提取batchnorm值,避免batchnorm值异常值对权重量化影响;卷积之后32bit反量化输出与batchnorm提取值相乘,从而避免精度损失。

所述的量化过程是直接对权重进行量化,不对权重合并任何batchnorm参数值。

进一步包括:

假设第i层的量化计算如下所示:

X

其中Q(W)为权重量化操作,D(X)至整体进行反量化操作,scale、b分别为batchnorm提取之后对应的系数。

所述的scale值操作与反量化之后值进行相乘,同时和合并之后偏置相加。

所述提取batchnorm值,避免batchnorm值异常值对权重量化影响是通过对batchnorm通道值进行单独处理,避免权重合并batchnorm时出现通道异常值问题。

如图2所示,当权重未合并batchnorm之前,整体权重分布符合正态分布,最大值与最小值符合预期。

如图3所示,当权重合并batchnorm之后,整体权重最大值与最小值不符合预期,分布被破坏,产生量化损失。

本专利提出基于google量化反量化操作过程中提升模型精度,降低精度损失的方法,通过对batchnorm通道值进行单独处理,避免权重合并batchnorm时出现通道异常值问题,发明创造的技术方案是这样实现的:

而原始google量化反量化操用,通过把batchnorm合并之后scale系数合并至权重,google量化反量化是通过对整体权重值分别求取量大值、量小值进行8bit离散值量化,权重合并scale之后,使得权重整体正态分布特性因此被打乱,量化损失进一步加强,整体模型量化效果降低。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

相关技术
  • 卷积神经网络在量化过程前向推理降低精度损失的方法
  • 一种降低低比特卷积神经网络推理运算复杂度的方法
技术分类

06120113046551