[发明专利]一种优化int8的量化方法及系统在审
申请号: | 202010863091.7 | 申请日: | 2020-08-25 |
公开(公告)号: | CN111950716A | 公开(公告)日: | 2020-11-17 |
发明(设计)人: | 谢远东 | 申请(专利权)人: | 云知声智能科技股份有限公司;厦门云知芯智能科技有限公司 |
主分类号: | G06N3/04 | 分类号: | G06N3/04;G06N3/063;G06N3/08 |
代理公司: | 北京冠和权律师事务所 11399 | 代理人: | 安琪 |
地址: | 100000 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 优化 int8 量化 方法 系统 | ||
1.一种优化int8的量化方法,其特征在于,所述方法执行以下步骤:
步骤1:获取训练神经网络后保存的浮点模型;
步骤2:计算所述神经网络各层中各通道中的权重量化缩放因子;
步骤3:采用KL散度算法计算所述神经网络各层中的激活值量化缩放因子;
步骤4:根据余弦距离确定所述神经网络各层中的最优权重量化缩放因子和最优激活值量化缩放因子;
步骤5:基于所述最优权重量化缩放因子和所述最优激活值量化缩放因子,得到int8的整型结果。
2.如权利要求1所述的方法,其特征在于,在所述步骤2中,根据以下公式计算所述神经网络各层中各通道中的权重量化缩放因子:
scale=127/xmax (1)
其中,scale表示权重量化缩放因子,xmax表示当前通道中的最大权重。
3.如权利要求1所述的方法,其特征在于,所述步骤3:采用KL散度算法计算所述神经网络各层中的激活值量化缩放因子,执行以下步骤:
步骤S31:获取校准数据集;
步骤S32:根据所述校准数据集中的初始化激活值分布,得到每一个间隔样本的数量;
步骤S33:对所述间隔样本的数量分布进行归一化,得到归一化数量分布,并基于所述归一化数量分布,得到神经网络各层中的激活值量化缩放因子。
4.如权利要求3所述的方法,其特征在于,所述步骤S32中:根据所述校准数据集中的初始化激活值分布,得到每一个间隔样本的数量,执行以下步骤:
步骤S321:对所述校准数据集中的每一个激活值设置初始采样个数和初始采样间隔,以得到所述初始化激活值分布;
步骤S322:采用对称量化获取所述初始化激活值分布中每一个间隔样本的数量。
5.如权利要求4所述的方法,其特征在于,基于所述归一化数量分布,得到神经网络各层中的激活值量化缩放因子,执行以下步骤:
步骤S331:将所述归一化数量分布中大于预设阈值的分布相加,得到总阈值,并将所述总阈值赋值到所述归一化数量分布中的预设阈值点,并去除大于所述预设阈值点的分布,得到第一矩阵;
步骤S332:设置目标采样个数,并按照所述预设阈值与所述目标采样个数的比值设置重采样间隔,对所述第一矩阵进行重采样,得到第二矩阵;
步骤S333:采用KL散度算法计算最小KL散度所对应的阈值;
步骤S334:根据所述阈值和所述重采样间隔,计算所述神经网络各层中的激活值量化缩放因子。
6.如权利要求5所述的方法,其特征在于,在所述步骤S333中,根据以下公式计算最小KL散度所对应的阈值:
其中,DKL(p||q)表示所述第一矩阵和所述第二矩阵的KL散度,p(i)表示第一矩阵中第i个采样点的值,q(i)表示第二矩阵中第i个采样点的值,M表示目标采样个数。
7.如权利要求5所述的方法,其特征在于,在所述步骤S334中,采样以下公式计算所述神经网络各层中的激活值量化缩放因子:
scaleact=127/(threshold+0.5)*re-interval (3)
其中,scaleact表示激活值量化缩放因子,threshold表示阈值,re-interval表示重采样间隔。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于云知声智能科技股份有限公司;厦门云知芯智能科技有限公司,未经云知声智能科技股份有限公司;厦门云知芯智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010863091.7/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种钻头导向调节装置
- 下一篇:一种醋酸艾替班特的制备方法