一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于优化的kl散度的模型量化方法、装置及设备与流程

2022-04-30 09:06:53 来源:中国专利 TAG:


1.本技术涉及人工智能技术领域,具体而言,本技术涉及一种基于优化的kl散度的模型量化方法、装置、电子设备、计算机可读存储介质及计算机程序产品。


背景技术:

2.通常,基于kl的量化方案在将浮点类型的模型量化为int8类型的模型时,包括以下步骤:设定不同的截断阈值,计算该截断阈值下量化后的输出分布与原始分布的kl散度值,该kl散度值能够衡量量化后的分布与原始分布的差异,基于kl散度值,选取最小的kl散度值对应的截断阈值作为最优截断阈值。
3.然而,基于kl的量化方案,其核心在于计算不同截断阈值下的kl散度值。对于具有特殊分布的输出,所得出的kl散度分布并不能准确地反映量化分布与原始分布的差异。
4.因此,基于现有的方案确定出的kl散度分布不能准确地反映量化后的分布和原始分布的差异,以致所确定的量化值是错误的。


技术实现要素:

5.本技术实施例的目的旨在能解决基于现有的方案确定出的kl散度分布不能准确地反映量化后的分布和原始分布的差异的问题。
6.根据本技术实施例的一个方面,提供了一种基于优化的kl散度的模型量化方法,该方法包括:
7.获取原始模型中任一层的初始kl散度集,其中,初始kl散度集包括与预设截断阈值集中每个截断阈值一一对应的初始kl散度值,任一初始kl散度值由以下概率分布确定:该任一层的输出数据集的原始概率分布、由相应的截断阈值确定的新的输出数据集的概率分布,该新的输出数据集的概率分布是根据目标量化类型获得;
8.根据预设滤波算法对初始kl散度集进行去噪处理,得到该任一层对应的优化kl散度集;
9.根据该任一层的目标截断阈值确定该任一层的输出量化值,以进行量化,其中,目标截断阈值为优化kl散度集中最小的kl散度值对应的截断阈值。
10.在一个可能的实现方式中,获取原始模型中任一层的初始kl散度集包括:
11.将校准矩阵输入原始模型中进行处理,得到原始模型每层的输出数据集和相应输出数据集的原始概率分布;
12.根据预设截断阈值集中每个截断阈值对的输出数据集进行以下操作:
13.根据截断阈值对该任一层的输出数据集进行截断处理,得到新的输出数据集;
14.根据目标量化类型对新的输出数据集进行量化,并确定新的输出数据集的概率分布;
15.根据新的输出数据集的概率分布和截断阈值对应的原始概率分布,计算截断阈值对应的初始kl散度值;
16.将所有截断阈值对应的初始kl散度值确定为该任一层的初始kl散度集。
17.在又一个可能的实现方式中,得到该任一层的输出数据集的原始概率分布的过程包括:
18.在得到该任一层的输出数据集之后,筛选该任一层的输出数据集的最大绝对值;
19.根据最大绝对值,确定该任一层的输出数据集的原始概率分布。
20.在又一个可能的实现方式中,根据预设滤波算法对初始kl散度集进行去噪处理,得到该任一层对应的优化kl散度集,包括:
21.根据一维高斯滤波算法对初始kl散度集进行去噪处理,得到优化kl散度集。
22.在又一个可能的实现方式中,该任一层包括共享权重,该方法还包括:
23.根据目标量化类型确定该任一层的共享权重的共享量化值。
24.在又一个可能的实现方式中,在确定该任一层的输出量化值和共享量化值之后,该方法还包括:
25.确定原始模型中除该任一层外的所有层中每一层的输出量化值和共享量化值;
26.根据原始模型层中每一层的输出量化值和共享量化值对原始模型进行量化。
27.根据本技术实施例的另一个方面,提供了一种基于优化的kl散度的模型量化装置,该装置包括:
28.获取模块,用于获取原始模型中任一层的初始kl散度集,其中,初始kl散度集包括与预设截断阈值集中每个截断阈值一一对应的初始kl散度值,任一初始kl散度值由以下概率分布确定:该任一层的输出数据集的原始概率分布、由相应的截断阈值确定的新的输出数据集的概率分布,该新的输出数据集的概率分布是根据目标量化类型获得;
29.处理模块,用于根据预设滤波算法对初始kl散度集进行去噪处理,得到该任一层对应的优化kl散度集;
30.确定模块,用于根据该任一层的目标截断阈值确定该任一层的输出量化值,以对该任一层进行量化,其中,目标截断阈值为优化kl散度集中最小的kl散度值对应的截断阈值。
31.根据本技术实施例的又一个方面,提供了一种电子设备,该电子设备包括:存储器、处理器及存储在存储器上的计算机程序,该处理器执行计算机程序以实现本技术所示的基于优化的kl散度的模型量化方法的步骤。
32.根据本技术实施例的又一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本技术所示的基于优化的kl散度的模型量化方法的步骤。
33.根据本技术实施例又一个方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现本技术所示的基于优化的kl散度的模型量化方法的步骤。
34.本技术实施例提供的技术方案带来的有益效果是:
35.本技术实施例提供的方法,先获取原始模型中任一层的初始kl散度集,然后根据预设滤波算法对初始kl散度集进行去噪处理,得到任一层对应的优化kl散度集,由于该优化kl散度集是通过预设滤波算法去噪后获得,因此,相邻的截断阈值所对应的kl散度值并不会相差太大,符合相邻的截断阈值对应的分布是极为相似的原理,在此基础上,根据该优化kl散度集确定出的目标截断阈值更准确。若基于该方法量化原始模型,量化所得模型的
处理效果和原始模型的处理效果相差不大。
附图说明
36.为了更清楚地说明本技术实施例中的技术方案,下面将对本技术实施例描述中所需要使用的附图作简单地介绍。
37.图1a为本技术实施例提供数据集a的直方图;
38.图1b为本技术实施例提供数据集a的概率分布图;
39.图2a为本技术实施例提供的googlenet任一层的输出数据集对应的直方图;
40.图2b为本技术实施例提供的googlenet任一层的输出数据集对应的kl散度曲线图;
41.图3为本技术实施例提供的优化后的kl散度曲线图;
42.图4为本技术实施例提供的一种基于优化的kl散度的模型量化方法的流程示意图;
43.图5为本技术实施例提供的一种基于优化的kl散度的模型量化装置的结构示意图。
具体实施方式
44.下面结合本技术中的附图描述本技术的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本技术实施例的技术方案的示例性描述,对本技术实施例的技术方案不构成限制。
45.本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本技术实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作、元件和/或组件,但不排除实现为本技术领域所支持其他特征、信息、数据、步骤、操作、元件、组件和/或它们的组合等。应该理解,当我们称一个元件被“连接”或“耦接”到另一元件时,该一个元件可以直接连接或耦接到另一元件,也可以指该一个元件和另一元件通过中间元件建立连接关系。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的术语“和/或”指示该术语所限定的项目中的至少一个,例如“a和/或b”可以实现为“a”,或者实现为“b”,或者实现为“a和b”。
46.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
47.首先对本技术涉及的几个名词进行介绍和解释:
48.acc指标,用来描述正例预测正确和负例预测正确的个数占总预测个数的比值,一般用来评价机器学习的性能。在本技术实施中,可以用来分别评价量化后的模型和原始模型的性能。例如,tp:正例预测正确的个数,fp:负例预测错误的个数,tn:负例预测正确的个数,fn:正例预测错误的个数,那么计算acc公式具体如下:
[0049][0050]
首先提供一个数据集a的分bins和确定概率分布的过程,数据集a包括:-1.8,-1,
0.1,1,2.1,2.5,3,5,6.5,8。该数据集a的最大绝对值为8,按照0~8这个范围,将该数据集分为4个bins,每个bins的宽度为2。
[0051]
1bins的范围为:[0,2),包括:-1.8,-1,0.1,1,总共4个数据;
[0052]
2bins的范围为:[2,4),包括:2.1,2.5,3,总共3个数据;
[0053]
3bins的范围为:[4,6),包括:5,总共1个数据;
[0054]
4bins的范围为:[6,8],包括:6.5、8,总共2个数据;
[0055]
则1bins~4bins对应的概率分别为:40%、30%、10%、20%,则数据集a的直方图为图1a,数据集a的概率分布图为图1b。
[0056]
应当指出,本技术实施例中涉及到的基于n个bins来确定数据集的概率分布的过程可以参考上述过程。在本技术实施例中,可以将bins称作分块。
[0057]
高斯滤波:包括一维高斯滤波和二维高斯滤波,用于对图像或者一维数组进行加权平均的过程。具体地,图像上每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到,或者一维数组中某个数值和其相邻的其他数值经过加权平均后得到。本技术实施例主要通过一维高斯函数对一维数组进行高斯滤波处理。一维高斯滤波用到的一维高斯函数如下所示:
[0058][0059]
float32类型的模型:该模型每一层的输入和输出的数据,都是以float32类型存储的,其优点是在处理过程中可以保留较多的信息,其缺点是占用过多内存资源,对于多层模型,不是很适用。
[0060]
int8类型的模型:该模型每一层的输入和输出的数据,都是以int8类型存储的,相对于float32类型的存储,保留的信息有限,但是占用的内存资源不多,对于多层模型,很合适。
[0061]
现有技术中,在某些场景中需将float32类型的模型量化成int8类型。因此,如何将float32类型的模型量化成int8类型的,成为现有技术中一个难题。
[0062]
kl散度:kullback-leibler散度,又称作相对熵,是两个概率分布之间差异的非对称性度量。在信息理论中,相对熵等价于两个概率分布的信息熵的插值。kl散度可以是一些优化算法,例如最大期望算法,此时参与计算的一个概率分布为真实分布,另一个为理论分布,相对熵表示使用理论分布拟合真实分布时产生的信息损耗。设定p、q是随机变量x上的两个概率分布p和q,其中p为随机变量x的真实分布,q为随机变量的拟合分布,则在离散变量的情形下,kl散度的定义为:
[0063][0064]
kl散度可以衡量两个随机分布之间的距离,当两个随机分布相同时,它们的kl散度值为零,当两个随机分布的差别增大时,它们的kl散度值也会增大。在具体应用时,kl散度可以用于比较文本的相似度。
[0065]
承接背景技术的记载,在本技术实施例中,kl散度用于判断不同截断阈值对应的拟合分布和真实分布之间的差异。由于对于具有特殊分布的输出,所得出的kl散度分布并不能准确地反映拟合分布与真实分布的差异。具体为,kl散度分布曲线不平滑,对于集中分
布有较大概率取到较小的截断阈值作为最优截断阈值。
[0066]
现有技术中提供了基于kl散度量化神经网络的原始方法,用于对googlenet(由google推出的基于inception模块的深度神经网络模型)进行量化。在对googlenet的某一层进行量化处理的过程中,得到该层的输出数据集对应的直方图,参见图2a所示。其中,横坐标为多个bins,纵坐标为每个bins中的数据个数,其中分布在最大绝对值附近的值较多,因此该处bins对应的数据个数较多。在根据不同的截断阈值对该层的输出数据集进行截断和重新量化之后,得到不同截断阈值对应的kl散度分布图,参见图2b。其中,图2b所示的kl散度曲线图,横坐标为截断阈值,纵坐标为kl散度值。
[0067]
根据图2b可知,该kl曲线图不平滑,并且对于集中分布,有较大概率取到较小的量化值。从原理上讲,相邻截断阈值对应的分布是极为相似,相邻截断阈值对应的kl散度值也应该相近,而不是像图2b中kl散度曲线中相邻截断阈值对应的kl散度值相差巨大。例如,截断阈值为128和129时,kl散度值差距大于15%。
[0068]
本技术实施例提供了一种基于优化的kl散度的模型量化方法、装置、电子设备、计算机可读存储介质及计算机程序产品,旨在解决现有技术的如上技术问题。其中,该方法适用于终端设备,该终端设备可以是计算机、服务器等设备。具体地,针对float32类型的模型进行int8类型的量化,得到基于int8类型的模型。本技术实施例还提供了优化后的kl散度集对应的kl散度曲线(也可以说是优化后的kl散度曲线图),该曲线相对于根据原始方法处理所得的kl散度曲线,较为平滑,更接近真实的kl散度分布。
[0069]
下面通过对几个示例性实施方式的描述,对本技术实施例的技术方案以及本技术的技术方案产生的技术效果进行说明。需要指出的是,下述实施方式之间可以相互参考、借鉴或结合,对于不同实施方式中相同的术语、相似的特征以及相似的实施步骤等,不再重复描述。
[0070]
参见图4,本技术提供了一种基于优化的kl散度的模型量化方法的流程示意图。该方法包括s410-s430,其中,
[0071]
s410,获取原始模型中任一层的初始kl散度集,其中,初始kl散度集包括与预设截断阈值集中每个截断阈值一一对应的初始kl散度值,任一初始kl散度值由以下概率分布确定:该任一层的输出数据集的原始概率分布、由相应的截断阈值确定的新的输出数据集的概率分布,该新的输出数据集的概率分布是根据目标量化类型获得。
[0072]
s420,根据预设滤波算法对初始kl散度集进行去噪处理,得到该任一层对应的优化kl散度集。
[0073]
s430,根据该任一层的目标截断阈值确定该任一层的输出量化值,以对该任一层进行量化,其中,目标截断阈值为优化kl散度集中最小的kl散度值对应的截断阈值。
[0074]
本技术实施例提供的方法,包括:先获取原始模型中任一层的初始kl散度集,然后根据预设滤波算法对初始kl散度集进行去噪处理,得到任一层对应的优化kl散度集,由于该优化kl散度集是通过预设滤波算法去噪后获得,因此,相邻的截断阈值所对应的kl散度值并不会相差太大,符合相邻的截断阈值对应的分布是极为相似的原理,在此基础上,根据该优化kl散度集确定出的目标截断阈值更准确。若基于该方法量化原始模型,量化所得模型的处理效果和原始模型的处理效果相差不大。
[0075]
本技术实施例提供了一种可能的实现方式,s410:获取原始模型中任一层的初始
kl散度集,具体可以包括s411-s412,其中,s412中包括s412a-s412d(附图均未示出以上步骤):
[0076]
s411,将校准矩阵输入原始模型中进行处理,得到原始模型每层的输出数据集和相应输出数据集的原始概率分布;
[0077]
其中,原始模型可以为float32类型的模型,包括多个层。该模型记录有每个层之间的连接关系,每个层的处理算法和共享权重信息等。原始模型的每个层包括一个输入端和一个输出端,输入端用于接收待处理的数据,输出端则输出该层的处理结果。在本技术实施例中,可通过原始模型的第一层的输入端接收多个校准矩阵,可以将每层的输出端输出的所有数据的集合,作为输出数据集。
[0078]
其中,图片在计算机中是以矩阵的形式进行存储和参与运算的,在本技术实施例中,上述多个校准矩阵就是多个校准图片。应当指出,针对输入于原始模型中的校准集图片是经过预处理的,该预处理的过程可以参考现有技术,本技术对此并不进行限制。
[0079]
在一种可能的实现方式中,得到该任一层的输出数据集的原始概率分布的过程包括:
[0080]
在得到该任一层的输出数据集之后,筛选该任一层的输出数据集的最大绝对值;根据最大绝对值,确定该任一层的输出数据集的原始概率分布。
[0081]
示例性地,受限于终端设备的计算资源和模型的深度等,一般采用两次处理来获取输出数据集和原始概率分布等信息。第一次,将多个校准矩阵输入到原始模型中进行处理,得到每一层的输出数据集。其中,计算该任一层的输出数据集的最大绝对值absmax(图片矩阵在经过处理之后,得到的矩阵中会出现负数的现象,可以取负数的绝对值,然后再将该绝对值列入计算绝对值的范围中,在后期确定输出数据集时,也是用负数的绝对值替代该负数,作为输出数据集中一员);第二次,再将多个校准矩阵输入到原始模型中进行处理,又得到每一层的输出数据集。其中,针对该任一层的输出数据集,将0-absmax分为n个bins(现有技术中,n一般取值为2048),得到每个bins的宽度为:absmax/2048,将输出数据集中所有的数据分别统计至相应的bins上,得到输出数据集的直方图,根据该直方图进一步确定概率分布。该概率分布即为输出数据集对应的原始概率分布。
[0082]
s412,根据预设截断阈值集中每个截断阈值对该任一层的输出数据集进行以下操作:
[0083]
s412a,根据截断阈值对该任一层的输出数据集进行截断处理,得到新的输出数据集;根据目标量化类型对新的输出数据集进行量化,并确定新的输出数据集的概率分布;
[0084]
其中,该目标量化类型包括但不限于以下任一类型:int2、int4、int8、int16中任一项。
[0085]
示例性地,若目标量化类型为int8,表示在对获取的新的输出数据集进行再次分割和统计时使用128个bins的标准,以及截断阈值集为128~2048。在上述示例中,将输出数据集分为2048个bins,那么从第128个bins开始,依次对输出数据集进行截断处理。具体地,在截断阈值为128时,统计第1bins~第128bins之间的数据(对应上述新的输出数据集),然后对统计的结果按照128个bins进行再次分割和统计,统计每个bins对应的概率,得到截断阈值为128所对应的概率分布;在截断阈值为1000时,统计第1bins~第1000bins之间的数据(对应上述新的输出数据集),然后将统计的数据按照128个bins的标准进行再次进行分
割和统计,统计每个bins对应的概率,得到截断阈值为1000所对应的概率分布。在基于每一个截断阈值,对输出数据集进行上述类似的处理过程之后,得到每个截断阈值对应的概率分布。
[0086]
需要说明的是,由于正常的int8的取值范围为:-128~127,但本技术实施例的终端设备能够允许的int8的范围为:-127~127,取绝对值后,其范围变为0~127,即总共有128个数,而本技术实施例中最小的截断阈值128和按照128个bins的标准进行量化中的数值“128”,便是参考该总数128。
[0087]
s412c,根据新的输出数据集的概率分布和截断阈值对应的原始概率分布,计算截断阈值对应的初始kl散度值。
[0088]
具体地,可以采用上述公式3来统计两个分布之间的kl散度值。应当指出,如何通过公式3来计算kl散度值的过程可以参考现有技术,在此不做过多说明。
[0089]
其中,确定截断阈值对应的原始概率分布的方式存在两种。第一种,将输出数据集的原始概率分布作为该截断阈值对应的概率分布。第二种,在对输出数据集做截断处理之后,将截断阈值之后的分块(bins)中的数据统计到最后一个分块中,从而得到新的概率分布,将该新的概率分布确定为截断阈值对应的原始概率分布。
[0090]
s412d,将所有截断阈值对应的初始kl散度值确定为该任一层的初始kl散度集。
[0091]
示例性地参见图2b所示的kl散度曲线,在得到该任一层的kl散度集之后,可以根据该任一层的kl散度集生成kl散度曲线。该曲线中相邻两个截断阈值之间相差较大,有很多kl散度值并不准确。
[0092]
本技术实施例提供了一种可能的实现方式,s420:根据预设滤波算法对初始kl散度集进行去噪处理,得到该任一层对应的优化kl散度集,具体可以包括:
[0093]
根据一维高斯滤波算法对初始kl散度集进行去噪处理,得到优化kl散度集。
[0094]
具体地,以采用上述公式2所示的一维高斯滤波算法对kl散度集进行滤波处理,得到优化kl散度集。示例性地参考图3,在得到该任一层的优化kl散度集之后,可以根据该任一层的优化kl散度集生成新的kl散度曲线,从该图中可以直观的了解到,相邻截断阈值对应的kl散度值相差不大,符合相邻截断阈值的分布是极为相似的原理。因此,可以将优化kl散度集作为确定目标截断阈值的参考。
[0095]
在一种可能的实现方式中,根据该任一层的目标截断阈值确定该任一层的输出量化值,以对该任一层进行量化,包括:根据目标截断阈值、分块的宽度确定该任一层的输出量化值。
[0096]
示例性地,目标截断阈值为m(m在截断阈值128到截断阈值2048之间),bins的宽度为将范围在0~absmax的数据分成2048个bins之后,每个bins的宽度,因此bins的宽度=absmax/2048。可以按照以下公式4计算出输出量化值out-scale:
[0097]
out-scale=(m 0.5)*(absmax/2048)/127
ꢀꢀꢀꢀꢀꢀꢀ
公式4
[0098]
需要说明的是,公式4中的127是参考上述int8的范围(即-127~127)中最大绝对值127。
[0099]
本技术实施例还提供了一种可能的实现方式,该任一层包括共享权重,该方法还包括:
[0100]
根据目标量化类型确定该任一层的共享权重的共享量化值。
[0101]
示例性地,目标量化类型为int8,共享权重在原始模型中是以矩阵的形式存在的。由于共享权重是原始模型中比较固定的参数,很少会出现调整,因此对其进行量化的过程,既可以参考上述量化输出数据集的过程,还可以通过统计共享权重的absmax,计算均值=absmax/127,将该均值作为共享量化值。
[0102]
本技术实施例还提供了一种可能的实现方式,在确定该任一层的输出量化值和共享量化值之后,该方法还包括:
[0103]
确定原始模型中除该任一层外的所有层中每一层的输出量化值和共享量化值;根据原始模型层中每一层的输出量化值和共享量化值对原始模型进行量化,从而得到量化后的模型。
[0104]
为了能够确定量化后的模型的优化后的性能,还可以通过acc指标进行来评估量化后的模型的性能。具体地,将多个校准图片依次输入原始模型和量化后的模型中分别进行处理,计算每张校准图片的识别准确率。最后,原始模型的acc指标为1,量化后模型的acc指标为0.9。也就是说,相比于原始模型,量化后的模型其性能仅下降了0.1。应当指出,如何获取acc指标的过程,可以具体参考现有技术。另外,还可以通过其他指标来衡量量化后的模型与原始模型的性能差异,本技术对此并不限制。
[0105]
参见图5,本技术实施例提供了一种基于优化的kl散度的模型量化装置的结构示意图,该装置500可以包括:
[0106]
获取模块510,用于获取原始模型中任一层的初始kl散度集,其中,初始kl散度集包括与预设截断阈值集中每个截断阈值一一对应的初始kl散度值,任一初始kl散度值由以下概率分布确定:该任一层的输出数据集的原始概率分布、由相应的截断阈值确定的新的输出数据集的概率分布,该新的输出数据集的概率分布是根据目标量化类型获得;
[0107]
处理模块520,用于根据预设滤波算法对初始kl散度集进行去噪处理,得到该任一层对应的优化kl散度集;
[0108]
确定模块530,用于根据该任一层的目标截断阈值确定该任一层的输出量化值,以对该任一层进行量化,其中,目标截断阈值为优化kl散度集中最小的kl散度值对应的截断阈值。
[0109]
在一种可能的实现方式中,获取模块510在获取原始模型中任一层的初始kl散度集中,具体用于:
[0110]
将校准矩阵输入原始模型中进行处理,得到原始模型每层的输出数据集和相应输出数据集的原始概率分布;
[0111]
根据预设截断阈值集中每个截断阈值对该任一层的输出数据集进行以下操作:
[0112]
根据截断阈值对该任一层的输出数据集进行截断处理,得到新的输出数据集;
[0113]
根据目标量化类型对新的输出数据集进行量化,并确定新的输出数据集的概率分布;
[0114]
根据新的输出数据集的概率分布和截断阈值对应的原始概率分布,计算截断阈值对应的初始kl散度值;
[0115]
将所有截断阈值对应的初始kl散度值确定为该任一层的初始kl散度集。
[0116]
在一种可能的实现方式中,获取模块510在得到该任一层的输出数据集的原始概率分布的过程中,具体用于:
[0117]
在得到该任一层的输出数据集之后,筛选该任一层的输出数据集的最大绝对值;
[0118]
根据最大绝对值,确定该任一层的输出数据集的原始概率分布。
[0119]
在一种可能的实现方式中,处理模块520在根据预设滤波算法对初始kl散度集进行去噪处理,得到该任一层对应的优化kl散度集中,具体用于:
[0120]
根据一维高斯滤波算法对初始kl散度集进行去噪处理,得到优化kl散度集。
[0121]
在一种可能的实现方式中,该任一层包括共享权重,确定模块530还可以用于:
[0122]
根据目标量化类型确定该任一层的共享权重的共享量化值。
[0123]
在一种可能的实现方式中,确定模块530在确定该任一层的输出量化值和共享量化值之后还可以用于:
[0124]
确定原始模型中除该任一层外的所有层中每一层的输出量化值和共享量化值;
[0125]
根据原始模型层中每一层的输出量化值和共享量化值对原始模型进行量化。
[0126]
本技术实施例中提供了一种电子设备,该电子设备包括:存储器、处理器及存储在存储器上的计算机程序,该处理器执行计算机程序以实现本技术所示的基于优化的kl散度的模型量化方法的步骤。
[0127]
本技术实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本技术所示的基于优化的kl散度的模型量化方法的步骤。
[0128]
本技术实施例还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现本技术所示的基于优化的kl散度的模型量化方法的步骤。
[0129]
本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”、“1”、“2”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除图示或文字描述以外的顺序实施。
[0130]
应该理解的是,虽然本技术实施例的流程图中通过箭头指示各个操作步骤,但是这些步骤的实施顺序并不受限于箭头所指示的顺序。除非本文中有明确的说明,否则在本技术实施例的一些实施场景中,各流程图中的实施步骤可以按照需求以其他的顺序执行。此外,各流程图中的部分或全部步骤基于实际的实施场景,可以包括多个子步骤或者多个阶段。这些子步骤或者阶段中的部分或全部可以在同一时刻被执行,这些子步骤或者阶段中的每个子步骤或者阶段也可以分别在不同的时刻被执行。在执行时刻不同的场景下,这些子步骤或者阶段的执行顺序可以根据需求灵活配置,本技术实施例对此不限制。
[0131]
以上仅是本技术部分实施场景的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术的方案技术构思的前提下,采用基于本技术技术思想的其他类似实施手段,同样属于本技术实施例的保护范畴。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献