一种对数后训练量化的权重编解码方法技术

技术编号:39521637 阅读:11 留言:0更新日期:2023-11-25 19:00
本发明专利技术公开了一种对数后训练量化的权重编解码方法,自定义编码为4比特位宽,最高比特位表示权重数据的正负性,最高比特位为0表示正数,最高比特位为1表示负数,码本中所有权重的量化结果都按照从小到大的顺序排列,并且映射到3比特位宽的整数编码,自定义解码是将4比特的权重值编码解码为1比特符号位

【技术实现步骤摘要】
一种对数后训练量化的权重编解码方法


[0001]本专利技术涉及编解码
,特别是涉及一种对数后训练量化的权重编解码方法


技术介绍

[0002]大多数后训练量化方法可以将卷积神经网络模型的权重数据量化到8比特精度并且准确率下降很小,许多量化方法将量化精度降低到4比特时,会出现很大的准确率下降;为了将后训练量化方法的精度降低到4位或更低,已经提出了各种技术,但这些技术都会伴随着大量额外的硬件开销,许多后训练量化技术并不适合硬件实现,这些后训练量化技术所引发的额外硬件开销会抵消比特宽度减少所带来的优势;编码是将权重数据经过量化后的结果映射到整数权重编码的过程,并生成一个在硬件计算时用于解码的码本;大多数量化方法采用的一般编码方案是将
2^N
个量化的权重值存储在码本中,并通过查找表在解码过程中实现一对一映射,其中
N
为量化比特数;但是在分段对数量化算法中,由于权重数据在做对数量化时会得较大的结果范围,若在硬件设计时采用查找表的形式实现会消耗大量的片上资源,效率很低;另外,分段对数量化算法包含以2为底数和以根号2为底数的计算结果,在编码过程中,如何区分这两种量化结果是一个具有挑战性的问题;在输入数据与权重编码计算过程中,输入数据与
T3
类别的权重编码计算时需要进行近似操作,如何在解码时判断某些权重编码是否属于
T3
类别也是一大难点

[0003]在卷积神经网络模型量化中,在量化粒度上分为逐层量化和逐通道量化;在逐层量化方法中,每个卷积层的所有权重数据在量化时采用的配置是相同的,而在逐通道量化方法中,每个卷积输出通道的权重数据在量化时都采用不同的量化参数;与逐层量化方法相比,采用逐通道量化方法需要在编码中添加额外信息来映射量化值,每个通道的码本都是相互独立的;虽然采用逐通道量化技术可以增加模型量化后的推理准确率,但是会增加额外的硬件开销,这可能抵消由于减少量化比特位宽所带来的收益

因此,在对量化后权重数据进行编码和解码的设计中,需要充分考虑硬件开销的影响


技术实现思路

[0004]本专利技术的目的在于提供一种对数后训练量化的权重编解码方法,从而利用分段量化的特点来提高编码效率和减小码本规模,充分考虑计算单元设计时的硬件开销

[0005]一种对数后训练量化的权重编解码方法,包括自定义编码和自定义解码;自定义编码为4比特位宽,最高比特位表示权重数据的正负性,为0表示正数,为1表示负数,低三位用于表示权重值编码,码本中所有权重的量化结果都按照从小到大的顺序排列,并且一一映射到3比特位宽的整数编码,自定义解码是将4比特的权重值编码解码为1比特符号位
、3
比特的移位比特数和1比特的根号2近似计算标志位的过程

[0006]进一步,在每个卷积计算的输出通道中,权重值编码共有
N

(N

N1+N2)
,分别为
N1
个采用以根号2为底数的对数量化编码和
N2
个以2位底数的对数量化编码,量化后的权重
分为三种类型:
1)T1
:以2为底数的对数量化,
2)T2
:以根号2为底数的对数量化,指数为偶数,
3)T3
:以根号2为底数的对数量化,指数为奇数

[0007]进一步,权重值编码除了4比特权重编码外,每个卷积输出通道还配备一个9比特辅助码本,辅助码本包含1比特奇偶校验位
chk_even
,3比特的
r
,以及5比特的缩放因子,其中
r

R
‑1,
R

N2

R
用于表示以2为底数的对数量化编码数量

[0008]进一步,奇偶校验位
chk_even
由分段对数量化中基于根号2的最大量化指数的奇偶性决定

[0009]进一步,5比特的缩放因子用于重新缩放每个输出通道的卷积计算结果

[0010]进一步,根号2近似计算为输入数据与采用以根号2为底数的对数量化编码计算,当编码以根号2为底数的对数量化指数为奇数时,输入数据需要进行近似计算才能完成移位计算,近似计算方法如下,首先将根号2做级数展开,近似计算采用前两项,根号2被近似为
1+1/2
,权重和输入数据之间的乘法操作公式如下:
[0011][0012][0013]其中
a
x

a
w
为缩放因子,
X
q
表示的是输入数据经过定点量化后的数值,表示的是
X
q
经过近似计算后的结果,表示经过量化后的权重数据,
W
q
表示的即为输入数据需要移位的比特数,
W
q
由权重编码
w_code、r
和奇偶校验参数
chk_even
共同决定,其中
w_code
为权重数据经过分段对数量化后的权重编码

[0014]根号2的近似计算采用二项级数展开式,原因是在神经网络量化推理中采用三项式和四项式相比于二项式带来的准确率提升并不高,但是采用二项式相比于三项式和四项式可以显著降低计算单元的硬件实现资源
(
如面积

功耗等
)。
这种近似方法的主要目的是在保证量化后模型准确率的前提下,减少计算单元的硬件开销

[0015]进一步,所述的移位比特数
Shift_bits
的计算公式如下:
[0016][0017]其中,
//
表示的是整除,用于获得除法的整数部分,权重编码小于等于
r
的部分是以2为底数的对数量化编码,大于
r
的部分是以根号2为底数的对数量化编码;
[0018]所述的移位比特数计算公式子中的计算公式如下:
[0019][0020]奇偶校验位
chk_even
是由以根号2为底数对数量化结果的最大量化指数的奇偶性决定,式中
chk_even、w_code

r
可以确定的数值为1还是0,进而确定移位比特数
Shift_bits。
[0021]量化后的权重分为三种类型:
1)T1:
以2为底数的对数量化,
2)T2:
以根号2为底数的对数量化,指数为偶数,
3)T3:
以根号2为底数的对数量化,指数为奇数

[0022]进一步,所述的近似计算标志位
Approx_flag
的计算公式如下:
[0023][0024][0025]公式<本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种对数后训练量化的权重编解码方法,其特征在于:包括自定义编码和自定义解码;自定义编码为4比特位宽,最高比特位表示权重数据的正负性,为0表示正数,为1表示负数,低三位用于表示权重值编码,码本中所有权重的量化结果都按照从小到大的顺序排列,并且一一映射到3比特位宽的整数编码,自定义解码是将4比特的权重编码解码为1比特符号位
、3
比特的移位比特数和1比特的根号2近似计算标志位的过程
。2.
根据权利要求1所述的一种对数后训练量化的权重编解码方法,其特征在于:所述的权重值编码共有
N

(N

N1+N2)
,分别为
N1
个采用以根号2为底数的对数量化编码和
N2
个以2为底数的对数量化编码,量化后的权重分为三种类型:
1)T1:
以2为底数的对数量化,
2)T2:
以根号2为底数的对数量化,指数为偶数,
3)T3:
以根号2为底数的对数量化,指数为奇数
。3.
根据权利要求1所述的一种对数后训练量化的权重编解码方法,其特征在于:所述的权重值编码除了4比特权重编码外,每个卷积输出通道还配备一个9比特辅助码本,辅助码本包含1比特奇偶校验位
chk_even
,3比特的
r
,以及5比特的缩放因子,其中
r

R
‑1,
R

N2,R
用于表示以2为底数的对数量化编码数量
。4.
根据权利要求3所述的一种对数后训练量化的权重编解码方法,其特征在于:所述的奇偶校验位
chk_even
由分段对数量化中基于根号2的最大量化指数的奇偶性决定
。5.
根据权利要求3所述的一种对数后训练量化的权重编解码方法,其特征在于:所述的5比特的缩放因子用于重新缩放每个输出通道的卷积计算结果
。6.
根据权利要求1所述的一种对数后训练量化的权重编解码方法,其特征在于:所述的根号2近似计算,包含输入数据与采用以根号2为底数的对数量化编码计算,当编码是以根号2为底数的对数量化且指数为奇数时,输入数据需要进行近似计算才能完成移位计算,近似计算方法如下,首先将根号2做级数展开,近似计算采用前两项,根号2被近似为
1+1/2
,权重和输入数据之间的乘法操作公式如下:重和输入数据之间的乘法操作公式如下:其中
a
x

a
w
为缩放因子,
X
...

【专利技术属性】
技术研发人员:徐佳唯环宇翔樊江山马宁郑立荣
申请(专利权)人:广东省智能科学与技术研究院
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1