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

模型的量化训练方法、装置、存储介质及电子设备与流程

2022-07-15 20:46:30 来源:中国专利 TAG:


1.本技术涉及电子设备技术领域,具体涉及一种模型的量化训练方法、装置、存储介质及电子设备。


背景技术:

2.随着ai(artificial intelligence,人工智能)技术的日益发展,越来越多的智能设备使用ai来替代传统的算法(如人脸识别、语义分割、语音识别等)。但是在实际的智能设备上,特别是端侧设备,受制于其中央处理器的算力、内存的大小或者神经网络处理器的运算要求,往往无法直接使用训练得到的浮点模型,需要将浮点模型首先转换为定点模型,这个转换过程就是我们常说的量化(quantization)。
3.目前,常用的模型量化方法有两种,一种是训练后量化,另一种是量化感知训练。其中,量化感知训练的基本思想是在模型训练阶段通过模拟量化过程来将量化造成的损失带入训练,再通过训练来减小这部分损失。在这个过程中,需要确定浮点数据的范围,再基于浮点数据的范围来将浮点数据转换为定点数据。目前的量化感知训练中,存在因卷积层的各通道激活值分布不均导致的量化效果差的现象。


技术实现要素:

4.本技术实施例提供一种模型的量化训练方法、装置、存储介质及电子设备,能够解决卷积层激活值分布不均导致的模型量化效果差的问题。
5.第一方面,本技术实施例提供一种模型的量化训练方法,包括:
6.从浮点模型的卷积层中确定出目标卷积层;
7.对所述浮点模型进行量化训练;
8.对经过量化训练的所述浮点模型进行前向计算,得到所述目标卷积层的激活值;
9.根据所述目标卷积层的激活值,计算所述目标卷积层的各通道之间的第一激活值分布距离;以及
10.根据所述第一激活值分布距离和第一损失函数计算第二损失函数的损失值,并返回执行对所述浮点模型进行量化训练的步骤,直至所述第二损失函数收敛,得到定点模型。
11.第二方面,本技术实施例还提供一种模型的量化训练装置,包括:
12.数据获取模块,用于从浮点模型的卷积层中确定出目标卷积层;
13.迭代训练模块,用于对所述浮点模型进行量化训练;
14.前向计算模块,用于对经过量化训练的所述浮点模型进行前向计算,得到所述目标卷积层的激活值;
15.距离计算模块,用于根据所述目标卷积层的激活值,计算所述目标卷积层的各通道之间的第一激活值分布距离;以及
16.损失计算模块,用于根据所述第一激活值分布距离和第一损失函数计算第二损失函数的损失值;
17.在所述损失计算模块计算得到第二损失函数的损失值之后,继续通过迭代训练模块对所述浮点模型进行量化训练,直至所述第二损失函数收敛,得到定点模型。
18.第三方面,本技术实施例还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行如本技术任一实施例提供的模型的量化训练方法。
19.第四方面,本技术实施例还提供一种电子设备,包括处理器和存储器,所述存储器有计算机程序,所述处理器通过调用所述计算机程序,用于执行如本技术任一实施例提供的模型的量化训练方法。
20.本技术实施例提供的技术方案,先从待量化训练的浮点模型中确定出一个目标卷积层,在对该浮点模型迭代训练的过程中,每进行一次迭代训练后,对本次迭代训练后的浮点模型进行前向计算,得到各卷积层的激活值,根据新的激活值计算目标卷积层中各通道之间的第一激活值分布距离,将该第一激活值分布距离代入到损失函数中计算损失值,按照上述过程进行迭代训练,直至损失函数收敛,得到定点模型。该方案在量化训练中将卷积层中各通道之间的激活值分布距离作为损失函数的一部分,通过迭代训练,逐渐缩小该激活值分布距离,使得各通道间的激活值分布达到均衡,解决了因为各通道间的激活值分布不均导致的模型量化效果差的问题,提升模型的量化训练效果。
附图说明
21.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
22.图1为同一个卷积层中多个不同的通道上的激活值的分布范围示意图。
23.图2为本技术实施例提供的模型的量化训练方法的第一种流程示意图。
24.图3为本技术实施例中提出的模型的量化方法中一神经网络结构示意图。
25.图4为本技术实施例提供的模型的量化训练方法的第二种流程示意图。
26.图5为本技术实施例提供的模型的量化训练装置的结构示意图。
27.图6为本技术实施例提供的电子设备的第一种结构示意图。
28.图7为本技术实施例提供的电子设备的第二种结构示意图。
具体实施方式
29.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本技术的保护范围。
30.在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本技术的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
31.通过模型的量化训练可以将浮点模型转换为定点模型,其中,浮点模型是指权重值和激活值等数据为浮点数据的神经网络模型,将这些浮点数据转换为定点数据后的神经网络模型为定点模型。模型的量化训练过程中会对各卷积层的权重值和激活值进行量化,量化基本过程可以用公式(1)表示:
32.r=s(q-z)(1)
33.其中,q为量化得到的整型数据,r表示量化前的浮点数据,z为浮点0所对应的整型表示,s为量化系数,可以通过式(2)得到:
[0034][0035]
式(2)的分子部分表示的是浮点的参数范围,maxr为最大浮点数,minr为最小浮点数分母部分表示的量化整数的表示范围,例如,如量化后数据为8bit,则该值为255。
[0036]
从上面的公式可以看出,由于分母部分在量化过程中为常数,因此要得到量化后的整型数据q,关键是得到式(2)分子部分,也就是浮点数据的范围。
[0037]
综上所述,可以看出,想要有良好的量化效果,关键是需要得到合理的浮点取值范围,如果该范围取得过大会导致过多浮点值用同一个整型值表示,导致量化后的网络精度出现剧烈下降,如果该范围取得过小,会导致很多浮点值处于所取范围之外,无法被量化。在模型的量化训练过程中,对于同一个卷积层来说,其多个不同的通道上激活值的浮点数据范围是共用的,每一个卷积层的激活值只有一个取值范围,而激活值在不同的通道之中的数据分布却常常有着较大的差距,请参阅图1,图1为同一个卷积层中多个不同的通道上的激活值的分布范围示意图。由于每一层的激活值只能存在一个范围,所以在实际操作中往往选取该层所有激活值中最大值和最小值组成最终该层的范围,与实际每一通道的范围有着较大的差别,由上述公式(2)可知,当取值范围不合理时,会使得该通道所用的系数s有较大误差,导致最终的量化效果差。
[0038]
为了解决这一问题,本技术实施例提供一种模型的量化训练方法,该模型的量化训练方法的执行主体可以是本技术实施例提供的模型的量化训练装置,或者集成了该模型的量化训练装置的电子设备,其中该模型的量化训练装置可以采用硬件或者软件的方式实现。其中,电子设备可以是智能手机、平板电脑、掌上电脑、笔记本电脑、或者台式电脑等设备。
[0039]
请参阅图2,图2为本技术实施例提供的模型的量化训练方法的第一种流程示意图。本技术实施例提供的模型的量化训练方法的具体流程可以如下:
[0040]
101、从浮点模型的卷积层中确定出目标卷积层。
[0041]
102、对所述浮点模型进行量化训练。
[0042]
获取需要进行量化训练的浮点模型,该浮点模型可以是任何包含有卷积层的神经网络模型。
[0043]
从该浮点模型的卷积层中选择一个卷积层作为目标卷积层。如果该浮点模型只有一个卷积层,则将该卷积层作为目标卷积层。如果该浮点模型包括多个(两个或者两个以上)卷积层,则从多个卷积层中选择一个卷积层作为目标卷积层。
[0044]
例如,在一实施例中,可以从多个卷积层中选择任意一个卷积层作为目标卷积层。
[0045]
又例如,在另一实施例中,所述浮点模型包括多个卷积层;从所述浮点模型的卷积
层中确定出目标卷积层的步骤,包括:计算所述浮点模型中每个卷积层内的各通道之间的第一激活值分布距离;根据第一激活值分布距离从多个卷积层中确定出目标卷积层。
[0046]
该实施例中,对于每一个卷积层,计算该卷积层中各通道之间的第一激活值分布距离,选择一个第一激活值分布距离较大的卷积层作为目标卷积层。比如,将第一激活值分布距离最大的卷积层,作为目标卷积层。
[0047]
示例性地,可以按照如下方式计算卷积层中各通道之间的第一激活值分布距离:计算所述目标卷积层内的各个通道上的激活值的平均值和方差;根据激活值的平均值和方差,确定各通道上激活值的分布范围;根据每个通道上激活值的分布范围,计算所述目标卷积层内每两个所述通道之间的第二激活值分布距离;根据每两个通道之间的所述第二激活值分布距离,计算所述目标卷积层内的各通道之间的第一激活值分布距离。
[0048]
对于一个卷积层来说,一般会包含多个通道,每一个通道又有多个神经元,每一个神经元的输出数据经过激活函数的激活后,得到一个激活值。因此,一个通道上若有n个神经元,则有n个激活值,而一个通道上神经元的数量等于输出数据的维度。这n个激活值的均值表示该通道上激活值分布的平均值,方式表示激活值数据排布的均匀程度,方差越大,数据分布越不均匀,方差越小,数据分布越均匀。因此,方差越小,数据分布越集中在均值附近。经过对多个模型数据的分析,一个通道上的激活值一般会满足高斯分布,而根据高斯分布的性质可知,95%的数据将处于[μ-2σ,μ 2σ]的区间当中,其中μ表示为数据均值,σ表示为数据方差。
[0049]
基于此,可以将通道c上的输出的激活值的数据范围记为[μ-2σ,μ 2σ]。进而可以基于这样的数据范围计算两个通道的激活值分布之间的距离。
[0050]
例如,在一些实施例中,对于所述目标卷积层内的每两个通道,根据所述两个通道各自的激活值的分布范围,计算所述两个通道的激活值分布的欧式距离,作为第二激活值分布距离。
[0051]
该实施例中,可以按照如下公式(3)计算通道c1与通道c2之间的第二激活值分布距离
[0052][0053]
其中,μ1,μ2分别表示不同通道上激活值的均值,σ1,σ2分别表示不同通道上激活值的方差。
[0054]
计算得到的的值越大,则通道c1与通道c2之间的激活值分布之间的差距越大,则对应的卷积层中各通道间激活值分布越不均衡。
[0055]
按照上述公式(3)可以计算得到目标卷积层中每两个通道之间的第二激活值分布距离。根据每两个通道之间的所述第二激活值分布距离,计算所述目标卷积层内的各通道之间的第一激活值分布距离的步骤,可以包括:将每两个通道之间的所述第二激活值分布距离进行相加,得到目标卷积层内的各通道之间的第一激活值分布距离d。例如,可按照如下公式(4)计算:
[0056][0057]
其中,假设目标卷积层有k个通道,则i和j的取值范围均为(0,k-1),为目标卷积层中第i个通道与第j个通道之间的第二激活值分布距离。
[0058]
计算得到每个卷积层对应的第一激活值分布距离之后,确定出第一激活值分布距离最大的卷积层作为目标卷积层。
[0059]
需要说明的是,上文中的“第一激活值分布距离”和“第二激活值分布距离”中的“第一”和“第二”仅为区分两个不同的激活值分布距离,不对本技术方案造成限制。其中,第二激活值分布距离为两个通道之间的激活值分布距离,第一激活值分布距离表示的是整个目标卷积层中每两个通道之间的激活值分布距离之和。假设目标卷积层有m个通道,则可以得到0.5*m*(m-1)个第二激活值分布距离,将这0.5*m*(m-1)个第二激活值分布距离相加,即可得到目标卷积层的第一激活值分布距离。
[0060]
可以理解的是,上文所举例子只选择了一个卷积层作为目标卷积层,将其第一激活值分布距离带入到损失函数进行迭代训练,在其他实施例中也可以选择两个或者两个以上的卷积层作为目标卷积层。
[0061]
在确定出目标卷积层之后,开始对浮点模型进行量化训练。
[0062]
103、对经过量化训练的所述浮点模型进行前向计算,得到所述目标卷积层的激活值。
[0063]
104、根据所述目标卷积层的激活值,计算所述目标卷积层的各通道之间的第一激活值分布距离。
[0064]
105、根据所述第一激活值分布距离和第一损失函数计算第二损失函数的损失值。
[0065]
若所述第二损失函数收敛,则执行106;若所述第二损失函数未收敛,则返回继续执行102。
[0066]
106、完成所述浮点模型的量化训练,得到定点模型。
[0067]
预先准备训练集,使用训练集对浮点模型进行量化训练,在训练过程中实现浮点数据的量化转换。
[0068]
在完成对浮点模型的一次迭代训练之后,对经过一次迭代训练的浮点模型进行前向计算,得到浮点模型中各卷积层的激活值。获取本次迭代后目标卷积层的激活值,基于该激活值按照上文中的计算方式重新计算目标卷积层的第一激活值分布距离,并将该第一激活值分布距离带入到损失函数中,来计算损失值。
[0069]
其中,第二损失函数f

包括第一损失函数f和第一激活值分布距离d,其中,f

=w1*f w2*d,w1为第一损失函数对应的第一权重,w2为第一激活值分布距离对应的第二权重,w1>0,w2>0;第一损失函数用于计算未加入所述第一激活值分布距的浮点模型在量化训练中的损失值,所述第二损失函数用于计算加入所述第一激活值分布距离后的浮点模型在量化训练中的损失值。
[0070]
第一损失函数为一般的量化训练模型的损失函数,没有考虑第一激活值分布距离。例如,第一损失函数可以是交叉熵损失函数、log损失函数等。本实施例中,将第一激活
值分布距离带入到损失函数中以后,可以将新的损失函数表示为原始的损失函数与第一激活值分布距离的线性相加。这里为了区分原始的损失函数和新的损失函数,将原始损失函数记为第一损失函数f,将新的损失函数记为第二损失函数f

。分别为第一损失函数和第一激活值分布距离赋予一个合理的权重值w1和w2。其中,w1和w2的具体数值可以通过模型评估指标,如准确率、确率和召回率等模型训练的评估指标确定出最优值。
[0071]
本技术实施例中,对于包含有多个卷积层的浮点模型来说,虽然只选择了其中的部分卷积层作为目标卷积层,将其激活值分布距离带入到损失函数中,但是基于神经网络各卷积层之间的传递性,上一个卷积层的输入数据为下一个卷积层的输出数据,同样可以缩小那些并不是目标卷积层的卷积层的激活值分布距离。比如,请参阅图3,图3为本技术实施例中提出的模型的量化方法中一神经网络结构示意图。该神经网络模型为浮点模型,包括第一卷积层、第二卷积层、第三卷积层、第四卷积层、第五卷积层共五个卷积层,第一卷积层的输出数据为第二卷积层的输入数据,第二卷积层的输出数据为第三卷积层的输入数据,第三卷积层的输出数据为第四卷积层的输入数据,第四卷积层的输出数据为第五卷积层的输入数据,基于这样层层传递的特性,无需将每一层的激活值分布距离都带入到损失函数中,同样可以减小均衡化通道差距所导致的误差。
[0072]
随着模型的迭代训练的次数逐渐增多,第二损失函数计算得到的损失值越来越小,也就意味着第一激活值分布距离d也越来越小。
[0073]
在计算得到第二损失函数的损失值之后,若未达到收敛,则返回102继续进行迭代训练,直至第二损失函数的损失值达到收敛。当迭代至损失值收敛,该第一激活值分布距离也达到最小,缩小了不同通道之间的浮点数据范围的差别,使得各通道间的激活值分布达到均衡,解决了因为各通道间的激活值分布不均导致的模型量化效果差的问题,提升模型的量化训练效果。
[0074]
具体实施时,本技术不受所描述的各个步骤的执行顺序的限制,在不产生冲突的情况下,某些步骤还可以采用其它顺序进行或者同时进行。
[0075]
由上可知,本技术实施例提供的模型的量化训练方法,先从待量化训练的浮点模型中确定出一个目标卷积层,在对该浮点模型迭代训练的过程中,每进行一次迭代训练后,对本次迭代训练后的浮点模型进行前向计算,得到各卷积层的激活值,根据新的激活值计算目标卷积层中各通道之间的第一激活值分布距离,将该第一激活值分布距离代入到损失函数中计算损失值,按照上述过程进行迭代训练,直至损失函数收敛,得到定点模型。该方案在量化训练中将卷积层中各通道之间的激活值分布距离作为损失函数的一部分,通过迭代训练,逐渐缩小该激活值分布距离,使得各通道间的激活值分布达到均衡,减小均衡化通道差距所导致的误差,解决了因为各通道间的激活值分布不均导致的模型量化效果差的问题,提升模型的量化训练效果。此外,本方案与量化感知训练同步进行,通过损失函数,将缩小激活值分布距离的操作融入到每一次迭代训练中,无需后续操作,较其他方案有一定的简便性。
[0076]
根据前面实施例所描述的方法,以下将举例作进一步详细说明。
[0077]
请参阅图4,图4为本发明实施例提供的模型的量化训练方法的第二流程示意图。所述方法包括:
[0078]
201、获取浮点模型。
[0079]
获取需要进行量化训练的浮点模型,该浮点模型可以是任何包含有卷积层的神经网络模型。
[0080]
202、计算所述浮点模型中每个卷积层内的各通道之间的第一激活值分布距离,将第一激活值分布距离最大的卷积层,作为目标卷积层。
[0081]
如果该浮点模型包括多个卷积层,则对于每一个卷积层,计算该卷积层中各通道之间的第一激活值分布距离,将第一激活值分布距离最大的卷积层,作为目标卷积层。具体地计算方式,请参见上述实施例,在此不再赘述。
[0082]
203、对所述浮点模型进行量化训练的一次迭代。
[0083]
204、对经过一次迭代的所述浮点模型进行前向计算,得到所述目标卷积层的激活值。
[0084]
预先准备训练集,使用训练集对浮点模型进行量化训练,在训练过程中实现浮点数据的量化转换。在完成对浮点模型的一次迭代训练之后,对经过一次迭代训练的浮点模型进行前向计算,得到浮点模型中各卷积层的激活值。获取本次迭代后目标卷积层的激活值。
[0085]
205、根据所述目标卷积层的激活值,计算所述目标卷积层的各通道之间的第一激活值分布距离。
[0086]
206、根据所述第一激活值分布距离和第一损失函数计算第二损失函数的损失值。
[0087]
基于该激活值按照上文中的计算方式重新计算目标卷积层的第一激活值分布距离,并将该第一激活值分布距离带入到损失函数中,来计算损失值。
[0088]
若所述损失值未收敛,则返回执行203。
[0089]
若所述损失值收敛,则执行207。
[0090]
207、得到定点模型。
[0091]
在计算得到第二损失函数的损失值之后,若未达到收敛,则返回203继续进行迭代训练,直至第二损失函数的损失值达到收敛。当迭代至损失值收敛,该第一激活值分布距离也达到最小,缩小了不同通道之间的浮点数据范围的差别,使得各通道间的激活值分布达到均衡。
[0092]
由上可知,本发明实施例提出的模型的量化训练方法,从浮点模型的多个卷积层中确定出各通道之间的第一激活值分布距离最大的卷积层作为目标卷积层,在浮点模型的量化训练的每一次迭代中,将该目标卷积层的第一激活值分布距离作为损失函数的一部分来计算损失值,当迭代至损失值收敛,该第一激活值分布距离也达到最小,缩小了不同通道之间的浮点数据范围的差别,使得各通道间的激活值分布达到均衡,解决了因为各通道间的激活值分布不均导致的模型量化效果差的问题,提升模型的量化训练效果。
[0093]
在一实施例中还提供一种模型的量化训练装置。请参阅图5,图5为本技术实施例提供的模型的量化训练装置300的结构示意图。其中该模型的量化训练装置300应用于电子设备,该模型的量化训练装置300包括数据获取模块301、迭代训练模块302、前向计算模块303、距离计算模块304以及损失计算模块305,如下:
[0094]
数据获取模块301,用于从浮点模型的卷积层中确定出目标卷积层;
[0095]
迭代训练模块302,用于对所述浮点模型进行量化训练;
[0096]
前向计算模块303,用于对经过量化训练的所述浮点模型进行前向计算,得到所述
目标卷积层的激活值;以及
[0097]
距离计算模块304,用于根据所述目标卷积层的激活值,计算所述目标卷积层的各通道之间的第一激活值分布距离;
[0098]
损失计算模块305,用于根据所述第一激活值分布距离和第一损失函数计算第二损失函数的损失值;
[0099]
在所述损失计算模块305计算得到第二损失函数的损失值之后,继续通过迭代训练模块302对所述浮点模型进行量化训练,直至所述第二损失函数收敛,得到定点模型。
[0100]
在一些实施例中,数据获取模块301,还用于计算所述浮点模型中每个卷积层内的各通道之间的第一激活值分布距离;以及,根据第一激活值分布距离从多个卷积层中确定出目标卷积层。
[0101]
在一些实施例中,数据获取模块301,还用于将第一激活值分布距离最大的卷积层,作为目标卷积层。
[0102]
在一些实施例中,距离计算模块304,还用于计算所述目标卷积层内的各个通道上的激活值的平均值和方差;根据激活值的平均值和方差,确定各通道上激活值的分布范围;根据每个通道上激活值的分布范围,计算所述目标卷积层内每两个所述通道之间的第二激活值分布距离;以及,根据每两个通道之间的所述第二激活值分布距离,计算所述目标卷积层内的各通道之间的第一激活值分布距离。
[0103]
在一些实施例中,距离计算模块304,还用于对于所述目标卷积层内的每两个通道,根据所述两个通道各自的激活值的分布范围,计算所述两个通道的激活值分布的欧式距离,作为第二激活值分布距离。
[0104]
在一些实施例中,第二损失函数f

包括第一损失函数f和第一激活值分布距离d,其中,f

=w1*f w2*d,w1为第一损失函数对应的第一权重,w2为第一激活值分布距离对应的第二权重,w1>0,w2>0;所述第一损失函数用于计算未加入所述第一激活值分布距的浮点模型在量化训练中的损失值,所述第二损失函数用于计算加入所述第一激活值分布距离后的浮点模型在量化训练中的损失值。
[0105]
应当说明的是,本技术实施例提供的模型的量化训练装置与上文实施例中的模型的量化训练方法属于同一构思,通过该模型的量化训练装置可以实现模型的量化训练方法实施例中提供的任一方法,其具体实现过程详见模型的量化训练方法实施例,此处不再赘述。
[0106]
由上可知,本技术实施例提出的模型的量化训练装置,从待量化训练的浮点模型中确定出一个目标卷积层,在对该浮点模型迭代训练的过程中,每进行一次迭代训练后,对本次迭代训练后的浮点模型进行前向计算,得到各卷积层的激活值,根据新的激活值计算目标卷积层中各通道之间的第一激活值分布距离,将该第一激活值分布距离代入到损失函数中计算损失值,按照上述过程进行迭代训练,直至损失函数收敛,得到定点模型。该方案在量化训练中将卷积层中各通道之间的激活值分布距离作为损失函数的一部分,通过迭代训练,逐渐缩小该激活值分布距离,使得各通道间的激活值分布达到均衡,解决了因为各通道间的激活值分布不均导致的模型量化效果差的问题,提升模型的量化训练效果。
[0107]
本技术实施例还提供一种电子设备。所述电子设备可以是智能手机、平板电脑等设备。请参阅图6,图6为本技术实施例提供的电子设备的第一种结构示意图。电子设备400
包括处理器401和存储器402。其中,处理器401与存储器402电性连接。
[0108]
处理器401是电子设备400的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或调用存储在存储器402内的计算机程序,以及调用存储在存储器402内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。
[0109]
存储器402可用于存储计算机程序和数据。存储器402存储的计算机程序中包含有可在处理器中执行的指令。计算机程序可以组成各种功能模块。处理器401通过调用存储在存储器402的计算机程序,从而执行各种功能应用以及数据处理。
[0110]
在本实施例中,电子设备400中的处理器401会按照如下的步骤,将一个或一个以上的计算机程序的进程对应的指令加载到存储器402中,并由处理器401来运行存储在存储器402中的计算机程序,从而实现各种功能:
[0111]
从浮点模型的卷积层中确定出目标卷积层;
[0112]
对所述浮点模型进行量化训练;
[0113]
对经过量化训练的所述浮点模型进行前向计算,得到所述目标卷积层的激活值;
[0114]
根据所述目标卷积层的激活值,计算所述目标卷积层的各通道之间的第一激活值分布距离;以及
[0115]
根据所述第一激活值分布距离和第一损失函数计算第二损失函数的损失值,并返回执行对所述浮点模型进行量化训练的步骤,直至所述第二损失函数收敛,得到定点模型。
[0116]
在一些实施例中,请参阅图7,图7为本技术实施例提供的电子设备的第二种结构示意图。电子设备400还包括:射频电路403、显示屏404、控制电路405、输入单元406、音频电路407、传感器408以及电源409。其中,处理器401分别与射频电路403、显示屏404、控制电路405、输入单元406、音频电路407、传感器408以及电源409电性连接。
[0117]
射频电路403用于收发射频信号,以通过无线通信与网络设备或其他电子设备进行通信。
[0118]
显示屏404可用于显示由用户输入的信息或提供给用户的信息以及电子设备的各种图形用户接口,这些图形用户接口可以由图像、文本、图标、视频和其任意组合来构成。
[0119]
控制电路405与显示屏404电性连接,用于控制显示屏404显示信息。
[0120]
输入单元406可用于接收输入的数字、字符信息或用户特征信息(例如指纹),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。其中,输入单元406可以包括指纹识别模组。
[0121]
音频电路407可通过扬声器、传声器提供用户与电子设备之间的音频接口。其中,音频电路407包括麦克风。所述麦克风与所述处理器401电性连接。所述麦克风用于接收用户输入的语音信息。
[0122]
传感器408用于采集外部环境信息。传感器408可以包括环境亮度传感器、加速度传感器、陀螺仪等传感器中的一种或多种。
[0123]
电源409用于给电子设备400的各个部件供电。在一些实施例中,电源409可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
[0124]
虽然图中未示出,电子设备400还可以包括摄像头、蓝牙模块等,在此不再赘述。
[0125]
在本实施例中,电子设备400中的处理器401会按照如下的步骤,将一个或一个以
上的计算机程序的进程对应的指令加载到存储器402中,并由处理器401来运行存储在存储器402中的计算机程序,从而实现各种功能:
[0126]
从浮点模型的卷积层中确定出目标卷积层;
[0127]
对所述浮点模型进行量化训练;
[0128]
对经过量化训练的所述浮点模型进行前向计算,得到所述目标卷积层的激活值;
[0129]
根据所述目标卷积层的激活值,计算所述目标卷积层的各通道之间的第一激活值分布距离;以及
[0130]
根据所述第一激活值分布距离和第一损失函数计算第二损失函数的损失值,并返回执行对所述浮点模型进行量化训练的步骤,直至所述第二损失函数收敛,得到定点模型。
[0131]
由上可知,本技术实施例提供了一种电子设备,所述电子设备从待量化训练的浮点模型中确定出一个目标卷积层,在对该浮点模型迭代训练的过程中,每进行一次迭代训练后,对本次迭代训练后的浮点模型进行前向计算,得到各卷积层的激活值,根据新的激活值计算目标卷积层中各通道之间的第一激活值分布距离,将该第一激活值分布距离代入到损失函数中计算损失值,按照上述过程进行迭代训练,直至损失函数收敛,得到定点模型。该方案在量化训练中,将卷积层中各通道之间的激活值分布距离作为损失函数的一部分,通过迭代训练,逐渐缩小该激活值分布距离,使得各通道间的激活值分布达到均衡,解决了因为各通道间的激活值分布不均导致的模型量化效果差的问题,提升模型的量化训练效果。
[0132]
本技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,所述计算机执行上述任一实施例所述的模型的量化训练方法。
[0133]
需要说明的是,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过计算机程序来指令相关的硬件来完成,所述计算机程序可以存储于计算机可读存储介质中,所述计算机可读存储介质可以包括但不限于:只读存储器(rom,read only memory)、随机存取存储器(ram,random access memory)、磁盘或光盘等。
[0134]
此外,本技术中的术语“第一”、“第二”和“第三”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或模块的过程、方法、系统、产品或设备没有限定于已列出的步骤或模块,而是某些实施例还包括没有列出的步骤或模块,或某些实施例还包括对于这些过程、方法、产品或设备固有的其它步骤或模块。
[0135]
以上对本技术实施例所提供的模型的量化训练方法、装置、存储介质及电子设备进行了详细介绍。本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。
再多了解一些

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

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

相关文献