一种分通道量化权重的方法与流程

文档序号:27832044发布日期:2021-12-07 22:32阅读:439来源:国知局
一种分通道量化权重的方法与流程

1.本发明涉及神经网络加速技术领域,特别涉及一种分通道量化权重的方法。


背景技术:

2.近年来,随着科技的飞速发展,大数据时代已经到来。深度学习以深度神经网络(dnn)作为模型,在许多人工智能的关键领域取得了十分显著的成果,如图像识别、增强学习、语义分析等。卷积神经网络(cnn)作为一种典型的dnn结构,能有效提取出图像的隐层特征,并对图像进行准确分类,在近几年的图像识别和检测领域得到了广泛的应用。
3.特别地,根据全局极值量化权重:先从权重中获取整个权重的极值然后再根据这该值将权重量化为低比特。
4.然而,现有技术中对卷积神经网络权重进行量化时,由于是统计权重中整体的极值,完成对权重的量化,没有考虑到各个通道之间的差异,导致有的通道量化后可能只有少数几个值,从而降低了模型的精度。
5.此外,现有技术中的常用术语如下:
6.卷积神经网络(convolutional neural networks,cnn):是一类包含卷积计算且具有深度结构的前馈神经网络。
7.量化:量化指将信号的连续取值(或者大量可能的离散取值)近似为有限多个(或较少的)离散值的过程。
8.低比特:将数据量化为位宽为8bit,4bit或者2bit的数据。
9.推理:神经网络训练结束后,利用保存的数据进行运算的过程。


技术实现要素:

10.本技术提出了一种分通道量化权重的方法,旨在克服上述现有技术中存在的缺陷,解决现有低比特模型量化时低比特数据利用不充分,集中在少量几个数值,降低了模型的精度的问题。
11.具体地,本发明提供一种分通道量化权重的方法,所述方法是根据模型的输出通道数来量化权重,即卷积神经网络的权重是4维的[height,width,input_channel,output_channel],根据output_channel分别统计其他3个维度数据的极值,然后再量化为低比特,根据每个通道的分布特性来量化数据。
[0012]
所述方法具体包括以下步骤:
[0013]
s1,卷积神经网络训练:用全精度算法训练模型,得到一个用于目标分类的网络,即获得模型推理过程中的相关参数,所述相关参数包括,卷积的权重,biasadd算子的偏置,batchnormal算子的gamma,beta,均值和方差;
[0014]
s2,微调量化后的模型:
[0015]
s2.1,对于从s1得到的模型按照公式1要求对权重进行量化,
[0016]
公式1:其中,为w
f
中某一个通道的数据,为w
q
中某一个通道的数据,即对w
f
数据中的每一个通道数据分别进行公式1的操作得到w
q
,w
f
为全精度数据,w
q
为量化后的数据,max
w
全精度数据的最大值,b为量化后的位宽,c代表输出通道中的某个通道;
[0017]
s2.2,对于量化后的值需要再除以(2
b-1)即其中,w
q
为s2.1中对w
f
量化得到的数据,w为模型微调阶段送到卷积的权重的数据,便于模型微调的时候能有效的收敛;
[0018]
s3,feature map的量化:在微调阶段将激活函数设置为relu6,由relu6激活函数的特性可知,该激活函数输出结果的数值范围在0到6之间,所以此时feature map的最大值为6,然后再按照公式1对数据进行量化。
[0019]
所述步骤s3中的所述的relu6激活函数为:
[0020]
relu6(x)=min(max(x,0),6)∈[0,6];
[0021][0022]
所述步骤s3中在微调阶段将激活函数设置一个比relu6更小的值。
[0023]
所述的设置一个比relu6更小的值为将激活函数的最大值设置为4.0即relu4(x)=min(max(x,0)4)。
[0024]
由此,本技术的优势在于:
[0025]
1.对权重采用分通道的方法来量化,可以提高低比特数据的利用率。
[0026]
2.采用分通道量化权重可以消除某些层中异常通道对整个模型的影响。
[0027]
3.由于每一层权重低比特数据利用更充分,从而模型在微调的时候可以大大提高模型的收敛速度和最终的精度。
附图说明
[0028]
此处所说明的附图用来提供对本发明的进一步理解,构成本技术的一部分,并不构成对本发明的限定。
[0029]
图1是本发明方法的流程示意图。
[0030]
图2是现有技术中relu函数及其导函数对应的图像。
[0031]
图3是本发明方法的中relu6激活函数和导函数对应的图像。
具体实施方式
[0032]
为了能够更清楚地理解本发明的技术内容及优点,现结合附图对本发明进行进一步的详细说明。
[0033]
如图1所示,本发明的一种分通道量化权重的方法具体包括以下步骤:
[0034]
s1,卷积神经网络训练:用全精度算法训练模型,全精度算法是以resnet-50为神经网络结构的图像分类算法,得到一个用于目标分类的网络,即获得模型推理过程中的相关参数,所述相关参数包括,卷积的权重,biasadd算子的偏置,batchnormal算子的gamma,beta,均值和方差;
[0035]
s2,微调量化后的模型:
[0036]
s2.1,对于从s1得到的模型按照公式1要求对权重进行量化,
[0037]
公式1:
[0038]
其中,为w
f
中某一个通道的数据,为w
q
中某一个通道的数据,即对w
f
数据中的每一个通道数据分别进行公式1的操作得到w
q
,w
f
为全精度数据,w
q
为量化后的数据,max
w
全精度数据的最大值,b为量化后的位宽,c代表输出通道中的某个通道;
[0039]
s2.2,对于量化后的值需要再除以(2
b-1)即其中,w
q
为s2.1中对w
f
量化得到的数据,w为模型微调阶段送到卷积的权重的数据,便于模型微调的时候能有效的收敛;
[0040]
s3,feature map的量化:在微调阶段将激活函数设置为relu6,由relu6激活函数的特性可知,该激活函数输出结果的数值范围在0到6之间,所以此时feature map的最大值为6,然后再按照公式1对数据进行量化。
[0041]
本技术方法还可以表述为,包括以下步骤:
[0042]
1)卷积神经网络训练:用全精度算法训练模型,得到一个可以用于目标分类的网络,即获得模型推理过程中的相关参数。
[0043]
2)微调量化后的模型:对于得到的模型按照公式1要求对权重进行量化,不过对于量化后的值需要再除以(2
b-1)即便于模型微调的时候能有效的收敛。
[0044]
公式1:
[0045]
变量说明:为w
f
中某一个通道的数据,为w
q
中某一个通道的数据,即对w
f
数据中的每一个通道数据分别进行公式1的操作得到w
q
,w
f
为全精度数据,w
q
为量化后的数据,max
w
全精度数据的最大值,b为量化后的位宽,c代表输出通道中的某个通道。
[0046]
3)feature map的量化:由于feature map时模型推理过程中实时计算出来的,所以无法预先知道他的极值,不过由于卷积神经网络现在的激活函数采用的是relu或者relu6,所以在微调阶段我们将激活函数设置为relu6或者更小的一个值,这样feature map的极值就会是已知的了,然后再按照公式1对数据进行量化。
[0047]
激活函数(relu函数),神经网络中的每个神经元节点接受上一层神经元的输出值
作为本神经元的输入值,并将输入值传递给下一层,输入层神经元节点会将输入属性值直接传递给下一层(隐层或输出层)。在多层神经网络中,上层节点的输出和下层节点的输入之间具有一个函数关系,这个函数称为激活函数(又称激励函数),如图2所示,relu=max(0,x),relu函数及其导数的图像。
[0048]
如图3所示,所述的relu6激活函数为:
[0049]
relu6(x)=nin(max(x,0),6)∈[0,6];
[0050][0051]
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1