System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种后量化网络Conv2D算子bias量化的优化方法技术_技高网

一种后量化网络Conv2D算子bias量化的优化方法技术

技术编号:41222684 阅读:2 留言:0更新日期:2024-05-09 23:42
本发明专利技术提供一种后量化网络Conv2D算子bias量化的优化方法,所述方法包括:S1:按照神经网络的算子排序逐层访问Conv2D算子;S2:获取当前算子的SumScale数组信息,获取SumScale数组的最大值maxValue;S3:当maxValue大于1时,对maxValue进行移位操作,直到maxValue是小于1时,记录移位信息为shift_factor;S4:使用shift_factor参与bias移位量化,同时更新Conv2D算子后量化公式推理和SumScale数组。本方法对Conv2D算子bias量化进行有效的移位处理,解决bias不做任何处理或者移位处理无效的问题。本优化方法在每层算子量化时选择动态的shift_factor参数,使用shift_factor参数在bias量化过程进行移位操作以减少bias信息损失。

【技术实现步骤摘要】

本专利技术属于神经网络,特别涉及一种后量化网络conv2d算子bias量化的优化方法。


技术介绍

1、当前,后量化算法conv2d算子量化重点是对算子激活、权重量化进行的,减少激活、权重量化信息损失,但是忽略bias参数量化过程的信息丢失。然而,对bias量化的优化方法,能够有效减少量化带来的信息损失,提升后量化模型整体的精度。

2、当前对conv2d算子bias参数量化是根据算子输入和权重量化参数共同决定,而不是根据bias参数分布进行量化功能。当算子输入和权重量化参数之积sumscale参数过大时,对bias的量化过程丢失有效信息,从而导致模型精度丢失。感知量化过程发生过类似问题,在bias量化过程使用固定shift_factor参数进行移位。但是后量化过程相较感知量化过程算子分布差异大,使用固定shift_factor对bias移位效果并不理想。

3、因此,现有技术存在的缺陷在于:

4、1.由于后量化的原生模型复杂性、多样性,导致不同的模型推理结果分布不同,同个模型的不同算子推理结果分布不同,固定的shift_factor不能满足要求:

5、1)不能有效减少bias的损失;

6、2)可能带来线上int32位卷积操作的溢出;

7、2.同时固定的shift_fatcor移位操作要求所有的后量化conv2d算子需要进行移位,影响效率。


技术实现思路

1、为了解决上述问题,本申请的目的在于:对conv2d算子bias量化进行有效的移位处理,解决bias不做任何处理或者移位处理无效的问题。本优化方法在每层算子量化时选择动态的shift_factor参数,使用shift_factor参数在bias量化过程进行移位操作以减少bias信息损失。

2、具体地,本专利技术提供一种后量化网络conv2d算子bias量化的优化方法,所述方法包括以下步骤:

3、s1:按照神经网络的算子排序逐层访问conv2d算子;

4、s2:获取当前算子的sumscale数组信息,获取sumscale数组的最大值maxvalue;

5、s3:当maxvalue大于1时,对maxvalue进行移位操作,直到maxvalue是小于1时,记录移位信息为shift_factor;

6、s4:使用shift_factor参与bias移位量化,同时更新conv2d算子后量化公式推理和sumscale数组。

7、所述步骤s2中的bias量化,包括以下步骤:

8、s2.1,算子输入inputscale计算,8比特对称量化公式如下:

9、

10、s2.2,权重weightscale计算,8比特对称量化公式如下:

11、

12、s2.3,权重量化过程

13、wi8=round(wf/weightscale);

14、s2.4,bias的量化sumscale参数是算子输入的inputscale参数和权重的weightscale参数之积:

15、sumscale=inputscale×weightscale;

16、s2.5,对bias直接进行量化操作时:

17、biasint32=round(bias/sumscale);

18、conv2d算子浮点计算公式转换后量化计算公式:

19、

20、

21、

22、s2.6,得到最终conv2d算子后量化计算公式:

23、yf=(∑(xi8×wi8)+bi32)×sumscale。

24、所述bias移位量化,包括以下步骤:

25、当量化sumscale数组中存在值大于1的参数,即表示为sumscale>1时,导致bias值域处于(0,1)量化结果为零,导致信息丢失严重;

26、从而在bias量化过程引入shift_factor变量移位操作,保存量化bias有效信息:

27、biasint32=round(bias/sumscale×2shift_factor);

28、使用shift_factor参数完成bias移位量化后,为了保证conv2d算子在线上推理正常进行,更新上述推导的后量化算子公式:

29、yf=(∑(xi8×wi8×2shift_factor)+bi32)×sumscale÷2shift_factor;

30、conv2d算子在线上进行推理时,为了保持和量化bias对齐,对量化的输入和量化的权重值之积进行shift_factor移位:

31、xi8×wi8×2shift_factor;

32、sumscale数组是浮点数组同时是静态参数,为了节省计算资源,线下完成sumscale数组和shift_factor参数合并工作:

33、sumscale=inputscale×weightscale/2shift_factor;

34、完成合并后,推理得到的引入shift_factor参数conv2d算子后量化计算公式:

35、yf=(∑(xi8×wi8×2shift_factor)+bi32)×sumscale

36、在线下完成对量化bias左移位操作,减少bias在量化过程信息丢失;在线上计算输入和权重之积要完成左移位操作,需要量化bias进行对齐操作才能求和;为了节约计算资源,将线上进行还原的对应右移位信息在线下完成和sumscale数组的合并操作。

37、所述方法是对模型后量化conv2d算子bias量化选择动态的shift_factor参数,有效减少bias量化过程信息损失,因为在训练量化使用统一mul_factor参数对模型全局conv2d算子bias量化进行位移操作,但是应用于后量化过程,mul_factor参数设置较小时,对bias量化损失召回不明显,mul_factor参数设置较大时,能导致线性计算溢出问题。

38、由此,本申请的优势在于:本申请方法简单,并且:

39、1.相比直接进行bias量化工作,动态shift_factor移位操作能够有效的保存bias信息;当统一的移位shift_factor较大时,有效减少线上推理过程发生的整型数溢出;当统一的移位shift_factor较小时,无法有效减少量化bias损失,减少统一移位操作带来线上推理开销,动态选择shift_factor功能,可以使满足要求conv2d算子不进行移位操作。

40、2.动态shift_factor移位能够有效选择需要进行移位的算子,提升线上推理效率。

本文档来自技高网...

【技术保护点】

1.一种后量化网络Conv2D算子bias量化的优化方法,其特征在于,所述方法包括以下步骤:

2.根据权利要求1所述的一种后量化网络Conv2D算子bias量化的优化方法,其特征在于,所述步骤S2中的bias量化,包括以下步骤:

3.根据权利要求2所述的一种后量化网络Conv2D算子bias量化的优化方法,其特征在于,所述bias移位量化,包括以下步骤:

4.根据权利要求1所述的一种后量化网络Conv2D算子bias量化的优化方法,其特征在于,所述方法是对模型后量化Conv2D算子bias量化选择动态的shift_factor参数,有效减少bias量化过程信息损失,因为在训练量化使用统一mul_factor参数对模型全局Conv2D算子bias量化进行位移操作,但是应用于后量化过程,mul_factor参数设置较小时,对bias量化损失召回不明显,mul_factor参数设置较大时,能导致线性计算溢出问题。

【技术特征摘要】

1.一种后量化网络conv2d算子bias量化的优化方法,其特征在于,所述方法包括以下步骤:

2.根据权利要求1所述的一种后量化网络conv2d算子bias量化的优化方法,其特征在于,所述步骤s2中的bias量化,包括以下步骤:

3.根据权利要求2所述的一种后量化网络conv2d算子bias量化的优化方法,其特征在于,所述bias移位量化,包括以下步骤:

4.根据权利要求1所述的一种后量化...

【专利技术属性】
技术研发人员:张传
申请(专利权)人:合肥君正科技有限公司
类型:发明
国别省市:

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

1