基于复合贪心算法的神经网络量化自适应方法和系统技术方案

技术编号:38202687 阅读:10 留言:0更新日期:2023-07-21 16:46
本发明专利技术提供了一种基于复合贪心算法的神经网络量化自适应方法和系统,包括:步骤1:对神经网络的张量进行排序;步骤2:对排序后的张量进行整体搜索,得到与之相联通的所有张量;步骤3:对于每个张量,根据贪心算法获取张量每前进一步的最优前进方向;步骤4:当神经网络所有张量全部搜索完毕,或搜索过程中精度达到预设要求时停止搜索。本发明专利技术通过复合贪心算法对于影响精度较大的张量的量化参数进行快速搜索,以期能够提升量化神经网络精度表现。以期能够提升量化神经网络精度表现。以期能够提升量化神经网络精度表现。

【技术实现步骤摘要】
基于复合贪心算法的神经网络量化自适应方法和系统


[0001]本专利技术涉及神经网络量化
,具体地,涉及一种基于复合贪心算法的神经网络量化自适应方法和系统。

技术介绍

[0002]对于量化过程来说,就是一个寻找最优截断区间的过程,例如nvidia通过kl算法寻找等,但是对于有些数据分布(例如多峰分布)来说,当前各种算法均不能找到最优区间,比较典型的densenet,efficientnet等都有发现这种情况,因为通过搜索的方式逐步递归的根据量化表现调整截断区间发现能够将int8精度调整到fp32,效果非常可观。
[0003]专利文献CN113159298A(申请号:CN202110482327.7)公开了一种数据驱动的深度神经网络量化方法、系统、介质和设备,旨在解决现有量化方法无法准确判断最佳截断值的问题。为此目的,本专利技术的方法包括:准备校准数据集;选择所述深度神经网络的需要量化的层;针对所选择的层,以校准数据的误差函数最小为目标,以scale和zero_point值为变量,使用最优化算法逐层进行迭代,从而获得最佳的scale和zero_point值;基于所述最佳的scale和zero_point值对所述深度神经网络进行量化。该专利虽然比较类似,都是通过搜索寻找较优的量化参数,但与我专利技术所用贪心方法并不相同。

技术实现思路

[0004]针对现有技术中的缺陷,本专利技术的目的是提供一种基于复合贪心算法的神经网络量化自适应方法和系统。
[0005]根据本专利技术提供的基于复合贪心算法的神经网络量化自适应方法,包括:
[0006]步骤1:对神经网络的张量进行排序;
[0007]步骤2:对排序后的张量进行整体搜索,得到与之相联通的所有张量;
[0008]步骤3:对于每个张量,根据贪心算法获取张量每前进一步的最优前进方向;
[0009]步骤4:当神经网络所有张量全部搜索完毕,或搜索过程中精度达到预设要求时停止搜索。
[0010]优选的,所述步骤1包括:根据预设浮点模型与定点模型,获取神经网络每一层张量在量化前后的均方误差,依据均方误差大小对所有张量进行排序。
[0011]优选的,所述步骤2包括:从大至小对均方误差对应的张量进行整体搜索,找到与神经网络中每一个张量相联通的所有张量。
[0012]优选的,所述步骤3包括:在当前张量前进一步以获取最优前进方向时,设定预设次数,每次乘一个系数,系数随次数增加呈指数增长,得到当前截断区间相对于整体参数分布最大值的比例。
[0013]优选的,在搜索过程中记录每一个对精度提升有正影响的张量和当前截断区间相对于整体参数分布最大值的比例。
[0014]根据本专利技术提供的基于复合贪心算法的神经网络量化自适应系统,包括:
[0015]模块M1:对神经网络的张量进行排序;
[0016]模块M2:对排序后的张量进行整体搜索,得到与之相联通的所有张量;
[0017]模块M3:对于每个张量,根据贪心算法获取张量每前进一步的最优前进方向;
[0018]模块M4:当神经网络所有张量全部搜索完毕,或搜索过程中精度达到预设要求时停止搜索。
[0019]优选的,所述模块M1包括:根据预设浮点模型与定点模型,获取神经网络每一层张量在量化前后的均方误差,依据均方误差大小对所有张量进行排序。
[0020]优选的,所述模块M2包括:从大至小对均方误差对应的张量进行整体搜索,找到与神经网络中每一个张量相联通的所有张量。
[0021]优选的,所述模块M3包括:在当前张量前进一步以获取最优前进方向时,设定预设次数,每次乘一个系数,系数随次数增加呈指数增长,得到当前截断区间相对于整体参数分布最大值的比例。
[0022]优选的,在搜索过程中记录每一个对精度提升有正影响的张量和当前截断区间相对于整体参数分布最大值的比例。
[0023]与现有技术相比,本专利技术具有如下的有益效果:
[0024](1)本专利技术通过复合贪心算法对于影响精度较大的张量的量化参数进行快速搜索,以期能够提升量化神经网络精度表现;
[0025](2)本专利技术通过采用一种复合的贪心算法搜索定点模型的量化参数,解决了一些量化网络精度降低明显的问题。
附图说明
[0026]通过阅读参照以下附图对非限制性实施例所作的详细描述,本专利技术的其它特征、目的和优点将会变得更明显:
[0027]图1为实验结果图;
[0028]图2为对整体量化搜索的示意图。
具体实施方式
[0029]下面结合具体实施例对本专利技术进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本专利技术,但不以任何形式限制本专利技术。应当指出的是,对本领域的普通技术人员来说,在不脱离本专利技术构思的前提下,还可以做出若干变化和改进。这些都属于本专利技术的保护范围。
[0030]实施例:
[0031]本专利技术提供了一种基于复合贪心算法的神经网络量化自适应方法,包括如下步骤:
[0032]步骤1:首先依据浮点模型与定点模型每一层张量tensor的张量在量化前后的均方误差mse,对所有tensor进行排序;
[0033]浮点模型和定点模型的区别主要就是模型里面的参数以及前向过程的格式是float还是int,比如矩阵相乘时,浮点模型可能是0.1*0.3,定点模型就是对应的8*10。
[0034]步骤2:从mse较大tensor开始整体搜索流程,然后找到每一个tensor所有相联通
的tensors,即未通过scale,elementwise,conv等会对数据分布产生影响的算子;
[0035]步骤3:对于每个tensor,按照贪心算法,一共有5次机会,每次乘一个系数,系数随次数增加呈指数增长,即scaler=scaler

0.04*2
i
,公式中scaler代表当前截断区间相对于整体参数分布最大值的比例,公式中参数为经验参数所得。举例,若第一次scaler乘0.96,精度未提升,会再次乘0.8以期避免未正确寻找区间导致错失的问题;
[0036]贪心算法可以简单的理解为首先往各方向前进一步,找到最优的方向,然后基于当前最优再走一步,直到找到最优解,如图2。
[0037]步骤4:记录每一个对精度提升有正影响的tensor及scaler,并在后续搜索中叠加使用;
[0038]步骤5:当网络所有tensor全部搜索完毕,或搜索过程中精度达到要求即可停止搜索,在搜索过程中,每前进一步都会有精度的提升。
[0039]如图1,为实验所得结果,本专利技术共对目前常见的分类网络及检测网络的复杂及简单模型进行了测试,第一列为模型名称,第二列为测试集上浮点推理精度,第三列为采用maxmin量化方法定点推理精度,第四列为采用nvidia的kl量化方法定点推理精度,第五列为自动搜索定点推理精度,可以看到相比于前面两种量化方法,自动搜索能够有效提高模型量化表现本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于复合贪心算法的神经网络量化自适应方法,其特征在于,包括:步骤1:对神经网络的张量进行排序;步骤2:对排序后的张量进行整体搜索,得到与之相联通的所有张量;步骤3:对于每个张量,根据贪心算法获取张量每前进一步的最优前进方向;步骤4:当神经网络所有张量全部搜索完毕,或搜索过程中精度达到预设要求时停止搜索。2.根据权利要求1所述的基于复合贪心算法的神经网络量化自适应方法,其特征在于,所述步骤1包括:根据预设浮点模型与定点模型,获取神经网络每一层张量在量化前后的均方误差,依据均方误差大小对所有张量进行排序。3.根据权利要求1所述的基于复合贪心算法的神经网络量化自适应方法,其特征在于,所述步骤2包括:从大至小对均方误差对应的张量进行整体搜索,找到与神经网络中每一个张量相联通的所有张量。4.根据权利要求1所述的基于复合贪心算法的神经网络量化自适应方法,其特征在于,所述步骤3包括:在当前张量前进一步以获取最优前进方向时,设定预设次数,每次乘一个系数,系数随次数增加呈指数增长,得到当前截断区间相对于整体参数分布最大值的比例。5.根据权利要求4所述的基于复合贪心算法的神经网络量化自适应方法,其特征在于,在搜索过程中记录每一个对精度提升有正影响的张量和当前截断区间相对于整体参数分布最大值的比例。6.一种基于复...

【专利技术属性】
技术研发人员:高扬缪冉栗书敬姚海平沈泊钟琪
申请(专利权)人:合肥酷芯微电子有限公司
类型:发明
国别省市:

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

1