【技术实现步骤摘要】
一种量化推理超参数大于1时确保推理精度的方法
[0001]本专利技术涉及图像处理
,特别涉及一种量化推理超参数大于1时确保推理精度的方法。
技术介绍
[0002]现有技术中,对模型进行定点化,即对网络进行的权重和feature输出进行定点化处理,使得网络前向传播过程中避免float数的存在,从而提升网络的运行效率及速度;然而由于模型在训练的过程中scale存在多种因素的影响,会导致scale大于1(正常模型的scale值是小于1的float数)的情况,使得模型定点化无法进行移位操作。
[0003]原始网络模型定点化公式中对scale的处理需满足scale小于1的要求,scale小于1时,通过移位转化scale至[0.5,1]的区间,然后对scale乘以2的32次方进行定点化;然而网络训练时,模型合并的scale会存在value大于1的情况,因此需要对大于1的scale超参进行额外的处理;换句话说,现有技术中对scale参数进行定点化时,需要满足scale小于1的要求,模型训练的过程中scale值无法保证scale一定小于1,从而导致模型训练完之后无法在定点化推理模型上运行。
[0004]现有技术中的常用术语如下:
[0005]量化定点化推理:将权重和feature根据超参数进行定点化推理,量化至定点化位宽;
[0006]超参数:定点化过程中对超参数(scale)定点化求解过程。
技术实现思路
[0007]为了解决上述问题,本方法的目的在于:修改模型的定点化过程,使 ...
【技术保护点】
【技术特征摘要】
1.一种量化推理超参数大于1时确保推理精度的方法,其特征在于,所述方法包括:假设第i层的量化计算如下所示:化计算如下所示:Xq=scale(Q
f
*Q
w
+bias)然后把scale进行31位定点化运算:其中,增加scale大于1.0的定点化过程,即增加left_shift参数,所述left_shift参数为右移操作值,在对模型超参数量化移位过程中减去left_shift参数,确保网络在scale推理参数能够满足模型的定点化通用性。2.根据权利要求1所述的一种量化推理超参数大于1时确保推理精度的方法,其特征在于,所述方法进一步包括以下步骤:S1,初始化:其中包括:left_shift参数并赋值为0;S2,对scale进行小于1.0的定点化;S3,对scale进行大于1.0的定点化:当scale值大于1.0时:即while(scale>1.0f);Scale值除以2并赋值给scale:scale=scale/2.0;left_shift加1并赋值给left_shift:left_shift=left_shift+1;定点化:int32_t mul=static_cast<int32_t>(round(real_multiplier*(1ll<<max_precision)));S4,进行超参数量化,增加scale大于1.0的超参数量化:增加scale定点化过程中左移与右移的值,同时在定点化过程中减去对右移left_right的值:使得网络的输入通过右移的形式还原到网络量化的结果,避免网络float的运算,同时由于scale大于1时求取得右移left_right,所以需要减去left_right值,确保量化结果一致性:int32_t ab=static_cast<int32_t>((xw*mul)>>(max_precision
‑
left_right)),左移:const int32_t mask=(1<<right_shift)
‑
1;const int32_t one=1;通过ab和mask两者结果的与操作,确保量化输出的精度,决定0.5是向上保留还是向下:int32_t remainder=ab&mask;const int32_t threshold=mask>>1;int3...
【专利技术属性】
技术研发人员:周飞飞,
申请(专利权)人:合肥君正科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。