基于自适应动态移位的8位整型全量化推理方法及装置制造方法及图纸

技术编号:26378655 阅读:17 留言:0更新日期:2020-11-19 23:47
本发明专利技术提供了一种基于自适应动态移位的8位整型全量化推理方法及装置,该方法包括:获取训练后的浮点模型;获取所述浮点模型中的每个通道的权重;通过KLD计算所述浮点模型中每一层的激活值;基于所述激活值,针对所述浮点模型的跳层和卷积通道打乱操作,确定转换因子,并预存所有定点化值和移位值;根据量化表获取浮点模型的定点的权重scale,并基于该权重,输出整型结果。本发明专利技术实施例提供的方法,按通道全定点量化大大减少了浮点转换到定点的误差,在推理过程中不涉及浮点操作,全定点移位操作,可以验证模型全量化后结果误差是否符合人工智能芯片需求,且自适应动态移位,避免固定移位带来的溢出误差,中间值由int32优化成int8进一步减少片上内存。

【技术实现步骤摘要】
基于自适应动态移位的8位整型全量化推理方法及装置
本专利技术书一个或多个实施例涉及卷积神经网络(ConvolutionalNeuralNetworks,CNNs)
,尤其涉及一种基于自适应动态移位的8位整型全量化推理方法及装置。
技术介绍
本部分旨在为权利要求书中陈述的本专利技术的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。CNNs在图像分类、目标检测、人脸识别等领域取得了优越的成果,但由于网络结构的复杂性和计算延时,在存储资源和计算资源相对不足的嵌入式平台实现CNNs的实时前向推理,需要在控制精度损失的条件下,压缩神经网络的模型大小以及提升模型计算效率现有技术对神经网络每一层进行均匀量化,对于权重和激活值进行量化,然后进行定点乘加,达到加速效果。该技术存在以下问题:第一、激活值采用均匀量化虽然计算量小,但是量化误差很大,几乎不可用;第二、权重按层量化,对于多通道卷积层误差远大于按通道量化;第三、现有技术在推理中依然需要进行浮点计算,在人工智能芯片AIChip这种仅支持定点运算设备不可用。
技术实现思路
有鉴于此,本说明书一个或多个实施例描述了一种于自适应动态移位的8位整型全量化推理方法,可解决解决AIChip型定点化性能验证问题,进一步减少片上内存。本说明书一个或多个实施例提供的技术方案如下:为解决上述问题,第一方面,本专利技术提供了一种基于自适应动态移位的8位整型全量化推理方法,该方法包括:获取训练后的浮点模型;按通道计算所述浮点模型中的每一层的权重;计算所述浮点模型中每一层的激活值;基于所述权重和所述激活值,针对所述浮点模型的跳层和卷积通道打乱操作,确定转换因子,并预存所有定点化值和移位值至量化表;基于所述量化表,将每一层接受int8类型量化输入并生成int8量化输出。在一个实施例中,,通过如下公式按通道计算所述浮点模型中的每一层的权重:127/xmax其中,xmax为该通道权重的最大值。在一个实施例中,所述计算所述浮点模型中每一层的激活值,具体为:准备校准数据集;根据所述校准数据集初始化激活值分布;对分布归一化处理,得到最小kl散度对应的threshold;基于所述threshold,求得所述浮点模型中每一层的激活值。在一个实施例中,所述归一化处理具体为:设置分块数target_bins为128,对[target_bins,2048]的每一个threshold做以下处理:将[threshold,2048]的分布相加为threshold_sum,并将原始distribution[threshold]赋值为threshold_sum,将新的分布称为P矩阵;划分采样间隔为threshold/target_bins,对原始分布进行重新采样,维度和P矩阵相同,称之为Q矩阵;根据公式得到最小kl散度对应的threshold;其中,p为目标分布;q为去匹配的分布;DKL(p||q)表示KL散度,衡量p和q两个分布的相似性,也称之为q相对于p的信息损耗。在一个实施例中,所述基于所述threshold,求得所述浮点模型中每一层的激活值,具体为:通过公式127/((threshold+0.5)*间隔)求得激活值;其中,所述间隔为采样间隔。在一个实施例中,基于所述权重和所述激活值,针对所述浮点模型的跳层和卷积通道打乱操作,确定转换因子,并预存所有定点化值和移位值至量化表,具体为:浮点scale的定点化;浮点模型权重移位转定点;二进制预存所有定点化值和移位值。在一个实施例中,通过如下公式获取定点化值和移位值:Shift=8-log2(A_max)Aint8=Int(Afloat/(pow(2,-Shift)))其中,Shift是移位;log2(A_max)是对于激活值最大值求二阶对数;Aint8为8比特激活值;Afloat为浮点激活值;pow(2,-Shift)是2的-Shift次幂。在一个实施例中,所述基于所述量化表,将每一层接受int8类型量化输入并生成int8量化输出,具体为:每一层输入激活值移位转定点;定点输入和定点权重乘累加;输出整型结果。第二方面,本专利技术提供了一种基于自适应动态移位的8位整型全量化推理装置,该装置包括:获取模块,配置为获取训练后的浮点模型;权重模块,配置为按通道计算所述浮点模型中的每一层的权重;激活值模块,配置为计算所述浮点模型中每一层的激活值;量化表模块,配置为基于所述权重和所述激活值,针对所述浮点模型的跳层和卷积通道打乱操作,确定转换因子,并预存所有定点化值和移位值至量化表;int8量化输出模块,配置为基于所述量化表,将每一层接受int8类型量化输入并生成int8量化输出。第三方面,本专利技术提供了一种计算机可读存储介质,其上存储有计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行第一方面所述的方法。本专利技术实施例提供的方法,按通道全定点量化大大减少了浮点转换到定点的误差,在推理过程中不涉及浮点操作,全定点移位操作,可以验证模型全量化后结果误差是否符合人工智能芯片需求,且自适应动态移位,避免固定移位带来的溢出误差,中间值由int32优化成int8进一步减少片上内存。附图说明图1为专利技术总体流程示意图;图2为本专利技术实施例提供的基于自适应动态移位的8位整型全量化推理方法流程示意图;图3为计算浮点模型中每一层的激活值的流程示意图;图4为确定转换因子过程流程示意图之一;图5为确定转换因子过程流程示意图之二;图6为本专利技术实施例提供的基于自适应动态移位的8位整型全量化推理装置结构示意图。具体实施方式下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关专利技术,而非对该专利技术的限定。另外还需要说明的是,为便于描述,附图中仅示出了与有关专利技术相关的部分。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。为方便对本专利技术的理解,首先对涉及到的部分专业词汇进行解释说明:Split类似复制,Cube代表复制的块;Conv为普通卷积;DwConv为可分离卷积;BinaryOp为矩阵和向量操作;ShuffleChannel为卷积通道打乱操作;right_int8为图4的右边8比特输入;left_int8为图4的左边8比特输入;factor为因子,数字无意义;Factor_float为浮点因子;Scale_top为输出scale(这个是假定给的值);...

【技术保护点】
1.一种基于自适应动态移位的8位整型全量化推理方法,其特征在于,所述方法包括:/n获取训练后的浮点模型;/n按通道计算所述浮点模型中的每一层的权重;/n计算所述浮点模型中每一层的激活值;/n基于所述权重和所述激活值,针对所述浮点模型的跳层和卷积通道打乱操作,确定转换因子,并预存所有定点化值和移位值至量化表;/n基于所述量化表,将每一层接受int8类型量化输入并生成int8量化输出。/n

【技术特征摘要】
1.一种基于自适应动态移位的8位整型全量化推理方法,其特征在于,所述方法包括:
获取训练后的浮点模型;
按通道计算所述浮点模型中的每一层的权重;
计算所述浮点模型中每一层的激活值;
基于所述权重和所述激活值,针对所述浮点模型的跳层和卷积通道打乱操作,确定转换因子,并预存所有定点化值和移位值至量化表;
基于所述量化表,将每一层接受int8类型量化输入并生成int8量化输出。


2.根据权利要求1所述的方法,其特征在于,通过如下公式按通道计算所述浮点模型中的每一层的权重:
127/xmax
其中,xmax为该通道权重的最大值。


3.根据权利要求1所述的方法,其特征在于,所述计算所述浮点模型中每一层的激活值,具体为:
准备校准数据集;
根据所述校准数据集初始化激活值分布;
对分布归一化处理,得到最小kl散度对应的threshold;
基于所述threshold,求得所述浮点模型中每一层的激活值。


4.根据权利要求3所述的方法,其特征在于,所述归一化处理具体为:
设置分块数target_bins为128,对[target_bins,2048]的每一个threshold做以下处理:
将[threshold,2048]的分布相加为threshold_sum,并将原始distribution[threshold]赋值为threshold_sum,将新的分布称为P矩阵;
划分采样间隔为threshold/target_bins,对原始分布进行重新采样,维度和P矩阵相同,称之为Q矩阵;
根据公式得到最小kl散度对应的threshold;其中,p为目标分布;q为去匹配的分布;DKL(p||q)表示KL散度,衡量p和q两个分布的相似性,也称之为q相对于p的信息损耗。


5.根据权利要求3所述的方法,其特征在于,所述基于所述threshold,求得所述浮点模型中每一层的激活值...

【专利技术属性】
技术研发人员:谢远东
申请(专利权)人:云知声智能科技股份有限公司厦门云知芯智能科技有限公司
类型:发明
国别省市:北京;11

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

1