实时量化方法及实时量化系统转让专利

申请号 : CN202110759386.4

文献号 : CN113255901B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 梁军

申请人 : 上海齐感电子信息科技有限公司

摘要 :

本发明提供了一种实时量化方法及用于执行所述实时量化方法的实时量化系统。所述实时量化方法包括输入原始特征图,依据所述原始特征图得到数据最大值和数据最小值;依据所述数据最大值和所述数据最小值,计算初始量化因子;进行速度量化流程和优化量化流程中的任一流程,依据所述初始量化因子,依次计算量化因子对、第一特征图和第二特征图,直接在线上实时量化原始特征图,避免了线下量化不能很好地量化全部的输入数据的问题,解决了深度神经网络计算量高的问题,提高了深度神经网络的计算效率。通过计算量化因子对,提高了量化精度。适用性更广,量化数据更完整,量化结果更可靠。

权利要求 :

1.一种实时量化方法,其特征在于,包括步骤:S1:输入原始特征图,依据所述原始特征图得到数据最大值和数据最小值;

S2:依据所述数据最大值和所述数据最小值,计算初始量化因子;

S3:进行速度量化流程和优化量化流程中的任一流程,其中,所述速度量化流程包括步骤:

S300:依据所述初始量化因子,计算量化因子对;

S301:依据所述量化因子对计算第一特征图;

S302:依据所述第一特征图计算零点值;

S303:依据步骤S301的所述第一特征图和步骤S302的所述零点值,计算第二特征图;或所述优化量化流程包括步骤:

S310:预设搜索范围和遍历次数;

S311:依据所述初始量化因子、所述搜索范围和所述遍历次数,计算若干二次量化因子;

S312:依次计算每个所述二次量化因子的量化因子对和所述初始量化因子的量化因子对,得到若干量化因子对;

S313:依据所述若干量化因子对,计算得到若干第一特征图;

S314:依据所述若干第一特征图,依次计算每一个所述第一特征图对应的零点值和第二特征图;

S315:依次计算步骤S314中的所述第二特征图的指标分数,根据所述指标分数选择最优的第二特征图作为量化结果输出。

2.如权利要求1所述的实时量化方法,其特征在于,步骤S2中,所述计算初始量化因子包括:

依据所述原始特征图得到原始特征图的数据总量、原始数据最大值和原始数据最小值,计算所述原始数据最大值和原始数据最小值的差值;

将所述原始数据最大值和原始数据最小值的差值除以所述原始特征图的数据总量,得到所述初始量化因子。

3.如权利要求2所述的实时量化方法,其特征在于,所述原始特征图的数据总量为所述原始特征图的数据中所有的浮点值和所有的整数的数量总和。

4.如权利要求1所述的实时量化方法,其特征在于,步骤S302中,所述依据所述第一特征图计算零点值包括,依据所述第一特征图得到第一数据最大值和第一数据最小值,计算所述第一数据最大值和所述第一数据最小值的中点,得到所述零点值。

5.如权利要求1所述的实时量化方法,其特征在于,步骤S314中,所述零点值为所述第一特征图的数据最大值和数据最小值的中点值。

6.如权利要求1所述的实时量化方法,其特征在于,步骤S315中,计算所述第二特征图的指标分数包括:依次计算每一个所述第二特征图相对于所述原始特征图的KL散度得到若干KL散度,并对若干所述KL散度进行排序,判定所述KL散度最小的所述第二特征图为所述最优的第二特征图。

7.如权利要求1所述的实时量化方法,其特征在于,步骤S315中,计算所述第二特征图的指标分数包括:依次计算每一个所述第二特征图与所述原始特征图的余弦相似度得到若干余弦相似度,并对若干所述余弦相似度进行排序,判定最大的所述余弦相似度对应的所述第二特征图为所述最优的第二特征图。

8.如权利要求1所述的实时量化方法,其特征在于,步骤S315中,计算所述第二特征图的指标分数包括:依次计算每一个所述第二特征图相对于所述原始特征图的KL散度和余弦相似度;

设置第一系数和第二系数,所述第一系数和所述第二系数的和为1;

使用所述第一系数分别乘以所述KL散度得到若干优化KL散度;

分计算1减去每个余弦相似度得到若干差值,使用第二系数乘以所述若干差值得到若干优化余弦相似度;

对每个第二特征图对应的优化KL散度和优化余弦相似度分别进行求和,得到若干综合指标分数,在所述若干综合指标分数中判定取值最小的所述综合指标分数对应的所述第二特征图为最优的第二特征图。

9.如权利要求1所述的实时量化方法,其特征在于,还包括步骤S4:将所述第一特征图和神经网络权重的卷积计算转换为所述第二特征图和神经网络权重的卷积与所述零点值和神经网络权重的卷积的和;

计算所述神经网络权重的在其不同维度方向上的和,得到权重自累加值;

将所述零点值和神经网络权重的卷积转换为所述零点值和所述权重自累加值的乘积。

10.如权利要求9所述的实时量化方法,其特征在于,计算所述神经网络权重的在其不同维度方向上的和,得到权重自累加值包括:将所述神经网络权重拆分为若干子权重,所述子权重为立方体矩阵;

分别计算每一个所述立方体矩阵在不同维度方向上的元素累加的和,得到若干子权重的值;对所有的所述子权重的值进行求和,得到所述权重自累加值。

11.如权利要求9所述的实时量化方法,其特征在于,所述第二特征图和所述神经网络权重的卷积计算与所述零点值和所述神经网络权重的卷积计算同时进行。

12.一种实时量化系统,用于执行权利要求1至11任意一项所述的实时量化方法,其特征在于,包括:

输入模块,用于输入原始特征图;

排序模块,与所述输入模块连接,依据所述原始特征图得到数据最大值和数据最小值;

计算模块,与所述排序模块和所述输入模块连接,用于计算初始量化因子;

选择模块,与所述输入模块和所述计算模块连接,用于选择速度量化流程和优化量化流程中的任一流程;

存储模块,与所述输入模块和所述选择模块连接,用于存储所述原始特征图、第一特征图和第二特征图。

13.如权利要求12所述的实时量化系统,其特征在于,所述计算模块还用于依据所述初始量化因子计算所述量化因子对、所述第一特征图和所述第二特征图。

说明书 :

实时量化方法及实时量化系统

技术领域

[0001] 本发明涉及深度神经网络技术领域,尤其涉及一种实时量化方法及实时量化系统。

背景技术

[0002] 深度神经网络是基于学习的方法的一种,其通过逐层抽象特征 ,组合底层抽象形成高层特征抽象,来发现数据的特征,解决不同的数据表示问题。其拓扑结构和计算方式模
拟人脑神经系统 ,事实证明可准确地感知数据特征。深度神经网络包括CNN,DNN,RNN等结
构。近年基于深度神经网络的方法的目标图像识,语音识别,大数据分析等方面别得到很好
的效果。
[0003] 但是深度神经网络结构复杂,规模大,计算量高,对应用深度神经网络的使用条件提出较高要求,这成为现在主要问题之一。
[0004] 公开号为CN 112200275 A的发明专利,公开了人工神经网络的量化方法及装置,所述量化方法包括:根据图像集中的部分图像,来计算理想分布p;根据理想分布p,来从图
像集中筛选出用于对该人工神经网络进行量化的量化图集;采用所述量化图集来对该人工
神经网络进行量化。该发明提高了人工神经网络的量化精度,降低因网络压缩而造成的性
能损失,实现筛选量化图片的自动化,在原始数据集较大时可极大地提升图像选择的效率,
同时也大量节省人的时间与精力。该发明采用从图片集的部分图像中选取一个量化因子使
得最终的推理结果和原始数据推理结果的相似度最大,从而实现人工神经网络的量化。而
这一过程中并不是网络推理过程实时进行的,而是在部署推理之前提前计算好的,提前计
算好网络每一层图像的量化因子存在以下不足:
[0005] 其一,对于不同
[0006] 的输入使用同一套量化因子进行优化,只能对多数输入进行量化,不能很好地量化的所有的个体输入,即有少数的输入数据得不到很好地量化。
[0007] 其二,线下量化时选取的图片集并不能包含所有可能的输入分布,即输入分布中未选取的图片集不能得到很好的量化,所以得出的量化位不能对所有可能的输入分布都有
很好的表现。
[0008] 因此,有必要提供实时量化方法及实时量化系统以解决上述的现有技术中存在的问题。

发明内容

[0009] 本发明的目的在于提供一种实时量化方法及实时量化系统,以解决深度神经网络计算量高、线下量化不能很好的量化全部输入数据的问题。
[0010] 为实现上述目的,本发明的所述实时量化方法包括步骤:
[0011] S1:输入原始特征图,依据所述原始特征图得到数据最大值和数据最小值;
[0012] S2:依据所述数据最大值和所述数据最小值,计算初始量化因子;
[0013] S3:进行速度量化流程和优化量化流程中的任一流程,依据所述初始量化因子,依次计算量化因子对、第一特征图和第二特征图。
[0014] 本发明的所述实时量化方法的有益效果在于:
[0015] 先输入原始特征图,然后依据所述原始特征图计算出量化因子、量化因子对,并依据量化因子对进一步计算第一特征图和第二特征图,直接在线上实时量化原始特征图,因
此不用提前预设量化因子,避免了线下量化不能很好地量化全部的输入数据的问题,解决
了深度神经网络计算量高的问题,提高了深度神经网络的计算效率。通过计算量化因子对,
提高了量化精度。并且可以依据量化需求选择速度量化流程或优化量化流程,为量化提供
了更多的选择和更大的容错率的同时,也使得本发明的所述实时量化方法适用于不同的应
用场景,适用性更广,量化数据更完整,量化结果更可靠。
[0016] 优选地,步骤S3中,所述计算初始量化因子包括:
[0017] 依据所述原始特征图得到原始特征图的数据总量、原始数据最大值和原始数据最小值,计算所述原始数据最大值和原始数据最小值的差值;
[0018] 将所述原始数据最大值和原始数据最小值的差值除以所述原始特征图的数据总量,得到所述初始量化因子。其有益效果在于:本发明的所述初始量化因子依据所述原始特
征图中原始数据最大值和原始数据最小值来计算而得出,兼顾了原始特征图中的最大数据
值和最小数据值,适用于原始特征图中的数据在0的左右两侧分布不均匀的场景,从而求得
的所述初始量化因子更加准确可靠,可对在原始特征图中0的两侧分布不均匀的的所有数
据进行量化。
[0019] 优选地,所述原始特征图的数据总量为所述原始特征图的数据中所有的浮点值和所有的整数的数量总和。
[0020] 优选地,步骤S3中,进行所述速度量化流程包括步骤:
[0021] S300:依据所述初始量化因子,计算所述量化因子对;
[0022] S301:依据所述量化因子对计算所述第一特征图;
[0023] S302:依据所
[0024] 述第一特征图计算零点值;
[0025] S303:依据步骤S301的所述第一特征图和步骤S302的所述零点值,计算第二特征图。步骤S300至步骤S303的有益效果在于:依次计算量化因子对、第一特征图、零点值和第
二特征图,以最快速率地量化原始特征图中的数据,提高了量化速度。
[0026] 进一步优选地,步骤S302中,所述依据所述第一特征图计算零点值包括,依据所述第一特征图得到第一数据最大值和第一数据最小值,计算所述第一数据最大值和所述第一
数据最小值的中点,得到所述零点值。其有益效果在于:计算的所述零点值和所述量化因子
对,可以在所述原始特征图中的0的两侧数据不均匀的情况下实现非对称量化,并且可以利
用0两侧值域的数据,充分利用所述原始特征图的所有值域范围,从而提升了量化精度。
[0027] 优选地,步骤S3中,进行所述优化量化流程包括步骤:
[0028] S310:预设搜索范围和遍历次数;
[0029] S311:依据所述初始量化因子、所述搜索范围和所述遍历次数,计算若干二次量化因子;
[0030] S312:依次计算每个所述二次量化因子的量化因子对和所述原始量化因子的量化因子对,得到若干量化因子对;
[0031] S313:依据所述若干量化因子对,计算得到若干第一特征图;
[0032] S314:依据所述若干第一特征图,依次计算每一个所述第一特征图对应的零点值和第二特征图;
[0033] S315:依次计算步骤S314中的所述第二特征图的指标分数,根据所述指标分数选择最优的第二特征图作为量化结果输出。步骤S310至步骤S315的有益效果在于:通过预设
搜索范围和遍历次数,依次计算若干二次量化因子、若干量化因子对、若干第一特征图和若
干第二特征图,并通过计算所述第二特征图的指标分数,从而选择最优的第二特征图作为
量化结果输出,进一步优化量化操作,对原始特征图进行多次量化操作,取其最佳量化结
果,从而进一步提高量化精度,提高量化结果的可靠性。
[0034] 进一步优选地,步骤S314中,所述零点值为所述第一特征图的数据最大值和数据最小值的中点值。
[0035] 进一步优选地,步骤S315中,计算所述第二特征图的指标分数包括:依次计算每一个所述第二特征图相对于所述原始特征图的KL散度,并对若干所述KL散度进行排序,判定
所述KL散度最小的所述第二特征图为所述最优的第二特征图。
[0036] 进一步优选地,步骤S315中,计算所述第二特征图的指标分数包括:依次计算每一个所述第二特征图与所述原始特征图的余弦相似度得到若干余弦相似度,并对所述若干所
述余弦相似度进行排序,判定最大的所述余弦相似度对应的所述第二特征图为所述最优的
第二特征图。
[0037] 进一步优选地,步骤S315中,计算所述第二特征图的指标分数包括:依次计算每一个所述第二特征图相对于所述原始特征图的KL散度和余弦相似度;
[0038] 设置第一系数和第二系数,所述第一系数和所述第二系数的和为1;
[0039] 使用所述第一系数分别乘以每个所述KL散度得到若干优化KL散度;
[0040] 分别计算1减去每个余弦相似度得到若干差值,使用第二系数分别乘以每个所述差值得到若干优化余弦相似度;
[0041] 对每个第二特征图对应的优化KL散度和优化余弦相似度分别进行求和,得到若干综合指标分数,在所述若干综合指标分数中判定取值最小的所述综合指标分数对应的所述
第二特征图为最优的第二特征图。
[0042] 优选地,还包括步骤S4:将所述第一特征图和神经网络权重的卷积计算转换为所述第二特征图和所述神经网络权重的卷积与所述零点值和所述神经网络权重的卷积的和;
[0043] 计算所述神经网络权重的在不同维度方向上的和,得到权重自累加值;
[0044] 将所述零点值和神经网络权重的卷积转换为所述零点值和所述权重自累加值的乘积。其有益效果在于:将第一特征图与神经网络权重的卷积计算转化为第二特征图和神
经网络权重的卷积与所述零点值和所述神经网络权重的卷积的和,并将零点值和神经网络
权重的卷积转换为零点值和神经网络权重自累加值的乘积,从而极大地减少了卷积计算步
骤,大大降低了量化的计算量和计算难度。
[0045] 进一步优选地,计算所述神经网络权重的在其不同维度方向上的和,得到权重自累加值包括:
[0046] 将所述神经网络权重拆分为若干子权重,所述子权重为立方体矩阵;
[0047] 分别计算每一个所述立方体矩阵在不同维度方向上的元素累加的和,得到若干子权重的值,对所有的所述子权重的值进行求和,得到所述权重自累加值。
[0048] 进一步优选地,所述第二特征图和所述神经网络权重的卷积计算与所述零点值和所述神经网络权重的卷积计算同时进行。其有益效果在于:第二特征图和神经网络权重的
卷积计算与零点值和神经网络权重的卷积计算同时进行,零点值和神经网络权重的卷积计
算不占用第二特征图和所述神经网络权重的卷积的计算时间,而零点值和神经网络权重的
卷积计算步骤少、时间短,从而降低了第一特征图和神经网络权重的卷积计算步骤和时间,
提高了卷积计算效率。
[0049] 本发明还提供一种实时量化系统,包括:
[0050] 输入模块,用于输入原始特征图;
[0051] 排序模块,与所述输入模块连接,依据所述原始特征图得到数据最大值和数据最小值;
[0052] 计算模块,与所述排序模块和所述输入模块连接,用于计算初始量化因子;
[0053] 选择模块,与所述输入模块和所述计算模块连接,用于选择速度量化流程和优化量化流程中的任一流程;
[0054] 存储模块,与所述输入模块和所述选择模块连接,用于存储所述原始特征图、第一特征图和第二特征图。
[0055] 本发明的所述实时量化系统的有益效果在于:
[0056] 通过输入模块输入原始特征图,然后通过计算模块计算初始量化因子,直接在线上实时量化原始特征图,避免了线下量化不能很好地量化全部的输入数据的问题。选择模
块依据量化需求选择速度量化流程或优化量化流程,为量化提供了更多的选择和更大的容
错率的同时,也使得本发明的所述实时量化方法适用于不同的应用场景,适用性更广,量化
数据更完整,量化结果更可靠。
[0057] 优选地,所述计算模块还用于依据所述初始量化因子计算所述量化因子对、所述第一特征图和所述第二特征图。其有益效果在于:通过计算量化因子对,提高了量化精度。

附图说明

[0058] 图1为本发明的实时量化方法的流程图;
[0059] 图2为本发明的速度量化流程的流程图;
[0060] 图3为本发明的优化量化流程的流程图;
[0061] 图4为本发明的实时量化系统的结构示意图。

具体实施方式

[0062] 为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实
施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造
性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。除非另外定义,此处使
用的技术术语或者科学术语应当为本发明所属领域内具有一般技能的人士所理解的通常
意义。本文中使用的“包括”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该
词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。
[0063] 针对现有技术存在的问题,本发明的实施例提供了一种实时量化方法,图1为本发明的实时量化方法的流程图。参照图1,本发明的所述实时量化方法包括步骤:
[0064] S1:输入原始特征图,依据原始特征图得到数据最大值和数据最小值;
[0065] S2:依据数据最大值和数据最小值,计算初始量化因子;
[0066] S3:进行速度量化流程和优化量化流程中的任一流程,依据初始量化因子,依次计算量化因子对、第一特征图和第二特征图;
[0067] S4:将第一特征图和神经网络权重的卷积计算转换为第二特征图和神经网络权重的卷积与零点值和神经网络权重的卷积的和;
[0068] 计算神经网络权重的在其不同维度方向上的和,得到权重自累加值;
[0069] 将零点值和神经网络权重的卷积转换为零点值和神经网络权重自累加值的乘积。步骤S4的优点在于:将第一特征图与神经网络权重的卷积计算转化为第二特征图和神经网
络权重的卷积与零点值和神经网络权重的卷积的和,并将零点值和神经网络权重的卷积计
算转换为零点值和神经网络权重自累加值的乘积计算,从而极大地减少了卷积计算步骤,
大大降低了量化的计算量和计算难度。
[0070] 本发明的实时量化方法的优点在为:
[0071] 先输入原始特征图,然后依据原始特征图计算出量化因子、量化因子对,并依据量化因子对计算第一特征图和第二特征图,直接在线上实时量化原始特征图,避免了线下量
化不能很好地量化全部的输入数据的问题,解决了深度神经网络计算量高的问题,提高了
深度神经网络的计算效率。通过计算量化因子对,提高了量化精度。并且可以依据量化需求
选择速度量化流程或优化量化流程,为量化提供了更多的选择和更大的容错率的同时,也
使得本发明的实时量化方法适用于不同的应用场景,适用性更广,量化数据更完整,量化结
果更可靠。
[0072] 作为本发明一种优选的实施方式,步骤S3中,计算初始量化因子包括:
[0073] 依据原始特征图得到原始特征图的数据总量、原始数据最大值和原始数据最小值,计算原始数据最大值和原始数据最小值的差值;
[0074] 将原始数据最大值和原始数据最小值的差值除以原始特征图的数据总量,得到初始量化因子。其优点为:本发明的初始量化因子依据原始特征图中原始数据最大值和原始
数据最小值来计算而得出,兼顾了原始特征图中的最大数据值和最小数据值,适用于原始
特征图中的数据在0的左右两侧分布不均匀的场景,从而求得的初始量化因子更加准确可
靠,可对在原始特征图中0的两侧分布不均匀的的所有数据进行量化。
[0075] 作为本发明一种优选的实施方式,原始特征图的数据总量为原始特征图的数据中所有的浮点值和所有的整数的数量总和。
[0076] 作为本发明一种优选的实施方式,图2为本发明的速度量化流程的流程图。参照图2,进行速度量化流程包括步骤:
[0077] S300:依据初始量化因子,计算量化因子对;
[0078] S301:依据量化因子对计算第一特征图;
[0079] S302:依据第一特征图计算零点值;
[0080] S303:依据步骤S301的第一特征图和步骤S302的零点值,计算第二特征图。步骤S300至步骤S303的优点为:依次计算量化因子对、第一特征图、零点值和第二特征图,以最
快速率地量化原始特征图中的数据,提高了量化速度。
[0081] 作为本发明一种优选的实施方式,步骤S302中,计算零点值包括:依据第一特征图得到第一数据最大值和第一数据最小值,计算第一数据最大值和第一数据最小值的中点,
得到零点值。其优点在于:计算的零点值和量化因子对,可以在原始特征图中的0的两侧数
据不均匀的情况下实现非对称量化,并且可以利用0两侧值域的数据,充分利用原始特征图
的所有值域范围,从而提升了量化精度。
[0082] 作为本发明一种优选的实施方式,图2为本发明的速度量化流程的流程图。参照图3,进行优化量化流程包括步骤:
[0083] S310:预设搜索范围和遍历次数;
[0084] S311:依据初始量化因子、搜索范围和遍历次数,计算若干二次量化因子;
[0085] S312:依次计算每个所述二次量化因子的量化因子对和所述初始量化因子的量化因子对,得到若干量化因子对;
[0086] S313:依据若干量化因子对,计算得到若干第一特征图;
[0087] S314:依据若干第一特征图,依次计算每一个第一特征图对应的零点值和第二特征图;
[0088] S315:依次计算步骤S314中的第二特征图的指标分数,根据所述指标分数选择最优的第二特征图作为量化结果输出。步骤S310至步骤S315的优点在于:通过预设搜索范围
和遍历次数,依次计算若干二次量化因子、若干量化因子对、若干第一特征图和若干第二特
征图,并通过计算第二特征图的指标分数,从而选择最优的第二特征图作为量化结果输出,
优化量化操作,对原始特征图进行多次量化操作,取其最佳量化结果,从而提高量化精度,
提高量化结果的可靠性。
[0089] 作为本发明一种优选的实施方式,步骤S314中,零点值为第一特征图的数据最大值和数据最小值的中点值。
[0090] 作为本发明一种优选的实施方式,步骤S315中,计算第二特征图的指标分数包括:依次计算每一个第二特征图相对于原始特征图的KL散度得到若干KL散度,并对若干KL散度
进行排序,判定KL散度最小的第二特征图为最优的第二特征图。
[0091] 作为本发明一种优选的实施方式,步骤S315中,计算第二特征图的指标分数包括:依次计算每一个第二特征图与原始特征图的余弦相似度得到若干余弦相似度,并对若干余
弦相似度进行排序,判定最大的余弦相似度对应的第二特征图为最优的第二特征图。
[0092] 作为本发明一种优选的实施方式,步骤S315中,计算第二特征图的指标分数包括:依次计算每一个第二特征图相对于原始特征图的KL散度和余弦相似度;
[0093] 设置第一系数和第二系数,第一系数和第二系数的和为1;
[0094] 使用第一系数分别乘以KL散度得到若干优化KL散度;
[0095] 分别计算1减去每个余弦相似度得到若干差值,使用第二系数乘以若干差值得到优化余弦相似度;
[0096] 对每个第二特征图对应的优化KL散度和优化余弦相似度进行求和,得到若干综合指标分数,在若干综合指标分数中判定取值最小的综合指标分数对应的第二特征图为最优
的第二特征图。
[0097] 在本发明的一种具体实施方式中,综合指标分数的计算公式为:
[0098] ,
[0099] ;
[0100] 其中,fraction为综合指标分数,α为第一参数,β为第二参数,KL为KL散度,cosine similarity为余弦相似度。
[0101] 在一些实施方式中,α=0.5,β=0.5。
[0102] 作为本发明一种优选的实施方式,第二特征图等于第一特征图减去零点值的差。
[0103] 作为本发明一种优选的实施方式,计算神经网络权重的在其不同维度方向上的和,得到权重自累加值包括:
[0104] 将神经网络权重拆分为若干子权重,子权重为立方体矩阵;
[0105] 分别计算每一个立方体矩阵在不同维度方向上的元素累加的和,得到若干子权重的值;对所有的子权重的值进行求和,得到权重自累加值。
[0106] 作为本发明一种优选的实施方式,第二特征图和神经网络权重的卷积计算与零点值和神经网络权重的卷积计算同时进行。其优点在于:第二特征图和神经网络权重的卷积
计算与零点值和神经网络权重的卷积计算同时进行,零点值和神经网络权重的卷积计算不
占用第二特征图和神经网络权重的卷积计算时间,而零点值和神经网络权重的卷积计算步
骤少、时间短,从而降低了第一特征图和神经网络权重的卷积计算步骤和时间,提高了卷积
计算效率。
[0107] 图4为本发明的实时量化系统的结构示意图。参照图4,本发明还提供一种实时量化系统,包括:
[0108] 输入模块1,用于输入原始特征图;输入模块1包括预设单元10,用于预设相关参数,如预设搜索范围和遍历次数。
[0109] 排序模块2,与输入模块1连接,依据原始特征图得到数据最大值和数据最小值;
[0110] 计算模块3,与排序模块2和输入模块1连接,用于计算初始量化因子;
[0111] 选择模块4,与输入模块1和计算模块3连接,用于选择速度量化流程和优化量化流程中的任一流程;
[0112] 存储模块5,与输入模块1和选择模块4连接,用于存储原始特征图、第一特征图和第二特征图。
[0113] 还包括判定选出模块6,判定选出模块6与排序模块2连接,判定选出模块2的排序结果,判定最优的第二特征图,并将最优的第二特征图作为量化的结果输出。
[0114] 本发明的实时量化系统的优点在于:
[0115] 通过输入模块1输入原
[0116] 始特征图,然后通过计算模块3计算初始量化因子,直接在线上实时量化原始特征图,避免了线下量化不能很好地量化全部的输入数据的问题。选择模块4依据量化需求选择
速度量化流程或优化量化流程,为量化提供了更多的选择和更大的容错率的同时,也使得
本发明的实时量化方法适用于不同的应用场景,适用性更广,量化数据更完整,量化结果更
可靠。
[0117] 作为本发明一种优选的实施方式,计算模块4还用于依据初始量化因子计算量化因子对、第一特征图和第二特征图。其优点在于:通过计算量化因子对,提高了量化精度。
[0118] 作为本发明一种具体地实施方式,计算模块3包括乘法器40、加法器31、卷积计算单元32和移位单元33,移位单元33用于对特征图中的数据进行左移或右移操作,如1<<10表
示对数据1右移10位。乘法器30和加法器31用于计算量化因子、第一特征图和第二特征图。
乘法器30、加法器31和移位单元33的组合用来计算量化因子对。优选地,用移位单元33代替
除法器,降低计算量。卷积计算单元32用于计算第二特征图与神经网络权重的卷积。
[0119] 计算模块3还用于计算第二特征图相对于原始特征图的KL散度,并通过排序模块2对若干KL散度进行排序,通过判定选出模块6判定KL散度最小的第二特征图为最优的第二
特征图。
[0120] 计算模块3还用于计算每一个第二特征图与原始特征图的余弦相似度,通过排序模块2对若干余弦相似度进行排序,通过判定选出模块6判定最大的余弦相似度对应的第二
特征图为最优的第二特征图。
[0121] 另外,计算模块3还用于计算依次计算每一个第二特征图相对于原始特征图的KL散度和余弦相似度,然后通过0.5×KL散度+ 0.5×(1‑余弦相似度)计算每一个第二特征图
的指标分数,通过排序模块2对指标分数进行排序,通过判定选出模块6判定指标分数最小
的第二特征图为最优的第二特征图。
[0122] 下面结合具体实施例来说明本发明的实时量化方法和装置的效果:
[0123] 以一张RGB图片(IMG)为原始特征图,其数据的值域为[0,255], IMG = [0,1…255], 将原始特征图量化,并用int8格式表示。
[0124]  可说明的是,int8是指使用8个bit表示的有符号的数值, 值域为[‑128, 127]。
[0125] 由于用int8表示原始特征图IMG,因此现有的量化方法为:用128除以256得到量化因子,此时量化因子为0.5。依据量化公式可以得出量化结果:
[0126] 。由此可以得出以下结论:
[0127] (a)上述得到量化因子0.5是个浮点值,也就是说原始特征图IMG要先转换为浮点之后再与浮点量化因子进行浮点运算。然而在神经网络计算芯片中,在同等吞吐量和算力
的情况下,浮点运算需要占用较大的神经网络计算芯片面积,不确定的浮点也会占用芯片
较大面基,而且功耗也大,相应地增加了神经网络计算芯片的成本。
[0128] (b)这个量化过程没有利用int8值域的负数部分,即为利用值域[‑128, ‑1]中的数据,所以这种使用单一侧量化方法在原始特征图中数据在0左右分布不均或值域严重不
平衡的情况下,单一侧量化方法不能够充分利用int8的有效值域范围,从而使得神经网络
的量化精度不佳,量化结果不可靠。
[0129] 为了解决上述的现有量化方法的问题,本发明的设计了实时量化方法。实时量化方法包括步骤:
[0130] S1:输入原始特征图 FM32,依据原始特征图得到数据最大值和数据最小值;原始特征图FM32包括若干浮点值和若干整数,即FM32包括FMf32和FMi32。可说明的是,FMf32表示特
征图的数据是32位浮点组成的,FMi32表示特征图的数据是32位整数组成的。
[0131] S2:依据原始特征图FM32的数据最大值max(FM)和数据最小值min(FM),计算初始量化因子SCALE;
[0132] S3:进行速度量化流程或优化流程;
[0133] 实施例一
[0134] 进行速度量化流程步骤为:
[0135] S300:依据初始量化因子SCALE,计算量化因子对SCALE_MULTI,SCALE_SHIFT;
[0136] S301:依据量化因子SCALE_MULTI,SCALE_SHIFT对计算第一特征图FMi9;
[0137] S302:依据第一特征图FMi9计算零点值ZP;
[0138] S303:依据步骤S301的第一特征图FMi9和步骤S302的零点值ZP,计算第二特征图FMi8。
[0139] 具体地,量化因子对是采用分数的方法来表示浮点量化因子。由于一个浮点可以用一个分数近似表示,如 0.3 = 300/1000≈307/1024。为了硬件计算的高效性且避免设计
复杂度,可以避免使用除法器,用移位单元代替除法器。 FM * 0.3 ≈ (FM * 307) >> 10。
其中“>>”表示右移,(FM * 307) >> 10表示(FM * 307)右移10个单位,其等价于(FM * 
10 
307) 除以2 。
[0140] 由于上述设计,将现有技术的浮点乘法计算转换为了定点乘法和右移计算,由于定点乘法的硬件设计复杂度远比浮点乘法的硬件设计复杂度低,且能量效率更高,而且右
移操作硬件设计简单,几乎不消耗时间。所以使用量化因子对来代替浮点量化因子,可以极
大的简化硬件设计复杂度,提高能量利用率,提高计算速度,降低成本。进一步的,在该设计
中如果确定了该分数的分母,那么也可确定其分数的分子。例如一个浮点数0.3,设分母为 
1<<10, 那么分子为307,即307/1024 = 0.2998≈0.3。其中1<<10表示1左移10位,1<<10等
10
于1乘以2 。这样一来,设计相关硬件可以快速地根据浮点量化因子计算出量化因子对。
[0141] 非对称量化是对采用以FM数值值域的中点作为零点值进行量化。以上述的RGB图片(IMG)。采用非对称量化,量化因子的计算公式如下。
[0142]
[0143] SCALE为量化因子,256为RGB图片的数据总量。
[0144] 可补充的是,下述的实施例二的优化量化流程的量化因子的计算公式与上述的实施例一的速度量化流程的计算公式相同。
[0145] 再根据量化因子SCALE求出相应的量化因子对SCALE_MULTI, SCALE_SHIFT。根据不同的量化精度需要可以设计出相应的位宽的量化右移因子寄存器,和相应的位宽量化乘
法因子寄存器。若量化精度为10,则采用以下步骤计算量化因子对:
[0146] (1)若判断SCALE=1,无需计算量化因子对,跳过量化流程。
[0147] (2)若判断SCALE<1,设置SCALE_SHIFT = 10,SCALE_MULTI=1023,并逐步减小SCALE_MULTI 使得 的结果和SCALE的值最接近,即
[0148] ,其中 表示趋向于, 表示1左移SCALE_SHIFT位。
[0149] (3)若判断SCALE>1, 设置SCALE_MULTI = 1024,SCALE_SHIFT = 9,先逐步减小SCALE_SHIFT使得(1*SCALE_MULTI)>>SCALE_SHIFT = ceil(SCALE),其中(1*SCALE_MULTI)
>>SCALE_SHIFT表示(1*SCALE_MULTI)右移SCALE_SHIFT位,ceil(SCALE)表示对SCALE进行
向上取整,即取大于或者等于SCALE的最小整数。  再逐步减小SCALE_MULTI, 使得
的结果和SCALE的值最接近,即使 。
[0150] 可补充的是,下文的实施例二的优化量化流程的量化因子对的计算方法和上述的实施例一的速度量化流程的量化因子对的计算方法相同。
[0151] 再根据公式计算FMi9,因为经过量化后,FM的数值值域最大不会超过int9的范围,所以可以使用int9的位宽接收结果,而不用int32的位宽接收结果。这样可以进一步节省带
宽,降低硬件成本。FMi9的计算公式如下:
[0152]
[0153] 最后计算零点值 , 零点值即为FMi9的数值最大值和FMi9的数值最小值的中点。
[0154] FMi9与FMi8的关系公式如下:
[0155]
[0156] 进一步地,为了更准确计算本发明的第二特征图,对上述的第二特征图的公式进行优化,得到第二特征图FMi8的的计算公式:
[0157]
[0158] 其中E表示对浮点数进行四舍五入。
[0159] 可补充的是,下文的优化量化流程的第一特征图FMi9的计算方法和上述的速度量化流程的第二特征图FMi9计算方法和计算公式均相同。相应的,优化量化流程的零点值和速
度量化流程的零点值的计算公式也相同。
[0160] 实施例二
[0161] 进行优化优化流程包括步骤:
[0162] S310:预设搜索范围R和遍历次数N;
[0163] S311:依据初始量化因子 SCALE、搜索范围R和遍历次数N,计算若干二次量化因子SCALE1,SCALE2…SCALE2N。
[0164] 二次量化因子的具体计算公式如下:
[0165] 当i≤N时, ;
[0166] 当i>N时, ;
[0167] 在一些具体地实施方式中,SCALE=1,搜索范围R=20,遍历次数N=4,依据上述公式得到8个二次量化因子,8个二次量化因子分别为 0.8, 0.85, 0.90, 0.95, 1.05, 1.10, 
1.15, 1.20。加上初始的量化因子 SCALE,总共有9个待选量化因子。
[0168] S312:依次计算二次量化因子SCALE1,SCALE2…SCALE2N的量化因子对和初始量化因子SCALE的量化因子对 SCALE_MULTI, SCALE_SHIFT,得到若干量化因子对 SCALE_
MULTI1,SCALE_SHIFT1,SCALE_MULTI2, SCALE_SHIFT2, …SCALE_MULTI2N, SCALE_SHIFT2N。
可说明的是,依据二次量化因子计算量化因子对,及依据初始量化因子对计算量化因子对
的方法与上述的速度量化流程中计算量化因子对的方法相同,因此不在赘述。
[0169] S313:依据若干量化因子对,计算得到若干第一特征图FMi9,FM1i9,FM2i9…FM2Ni9;
[0170] S314:依据第一特征图,依次计算每一个第一特征图对应的零点值ZP,ZP1,ZP2…ZP2N和第二特征图FMi8,FM1i8,FM2i8…FM2Ni8;
[0171] S315:依次计算步骤S314中的第二特征图的指标分数,选择最优的第二特征图作为量化结果输出。具体地,计算第二特征图的指标分数可采用下述三种方法中的任意一种
方法:
[0172] (1)依次计算每一个第二特征图相对于原始特征图的KL散度,并对若干KL散度进行排序,判定KL散度最小的第二特征图为最优的第二特征图。
[0173] KL散度公式如下:
[0174]
[0175] 其中,p(x)表示数据x在第二特征图中的概率分布,q(x)表示数据x在原始特征图的概率分布, 表示第二特征图相对于原始特征图的散度。
[0176] (2)依次计算每一个第二特征图与原始特征图的余弦相似度,并对若干余弦相似度进行排序,判定最大的余弦相似度对应的第二特征图为最优的第二特征图。
[0177] 余弦相似度公式如下:
[0178]
[0179]  cosine similarity表示第二特征图与原始特征图的余弦相似度,A表示第二特征图的向量,B表示原始特征图的向量,θ为向量A与向量B的夹角,Ai表示第二特征图中的数
据,Bi表示原始特征图中的数据。
[0180] 可说明的是,余弦相似度表示两个向量的夹角的余弦值,值域为[‑1, 1], 余弦值越大表示两个向量越相似,余弦值越小表示两个向量越不相似。
[0181] (3)依次计算每一个第二特征图相对于原始特征图的KL散度和余弦相似度,然后通过指标分数=0.5×KL散度+ 0.5×(1‑余弦相似度)计算每一个第二特征图的指标分数,
并对指标分数进行排序,判定指标分数最小的第二特征图为最优的第二特征图。
[0182] 在卷积神经网络(Convolutional Neural Networks,CNN)中,卷积的计算量占比非常大,所以为了加速卷积计算和减少位宽,应该使用 int8计算卷积而不是 int9。所以
的卷积公式可以转换为下述公式:
[0183]
[0184] 其中,⊙表示卷积操作,WT表示神经网络权重。
[0185] 上述的 的卷积计算可以被优化 ,具体地优化步骤如下:
[0186] 等价于ZP ×(WT在不同维度方向的自累加值)。
[0187] 卷积中的WT的一般可以表示为 N*C*H*W。WT可以拆分为N个子权重,每个子权重可以记作WTi,每个子权重WTi是一个立方体矩阵。因为子权重WTi是立方体矩阵,因此可以用三
个维度方向的维度尺寸表示,即立方体矩阵用C*H*W表示, 其中C、H、W分别表示不同的维度
方向的维度尺寸,C为深度,H为高度,W为宽度。每个子权重WTi的值等于对应的立方体矩阵
在维度方向C、H、W上的所有元素之和。因此WT在不同维度方向的自累加值等于N个WTi的值
的和。
[0188] 所以WT和ZP的卷积最后的结果就是 N个数组成的向量,相当于是一个偏置BIAS。
[0189] WT的尺寸一般不大,相比于传统的卷积神经网络的卷积计算量,用ZP×WT在不同维度方向的自累加值计算 ,将卷积计算换算成了乘法计算和求和的加法计算,
降低了计算步骤,从而大大节省了计算时间,而且计算 不需要等待卷积的结
果,即 可以和 的卷积计算可以同时进行,因此计算 是
不需要增加额外的时间的,也不会占用或延长 的计算时间。由于FMi8的位数
比FMi9的位数少,因此 的卷积计算比 的卷积计算的计算量更
小,计算速度更快。因此,上述的卷积换算公式
,并将
转换为ZP ×WT在不同维度方向的自累加值可以极大地减少神经网络的卷积
计算时间。
[0190] 虽然在上文中详细说明了本发明的实施方式,但是对于本领域的技术人员来说显而易见的是,能够对这些实施方式进行各种修改和变化。但是,应理解,这种修改和变化都
属于权利要求书中的本发明的范围和精神之内。而且,在此说明的本发明可有其它的实施
方式,并且可通过多种方式实施或实现。