CN114757348A - 模型的量化训练方法、装置、存储介质及电子设备 - Google Patents
模型的量化训练方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN114757348A CN114757348A CN202110025829.7A CN202110025829A CN114757348A CN 114757348 A CN114757348 A CN 114757348A CN 202110025829 A CN202110025829 A CN 202110025829A CN 114757348 A CN114757348 A CN 114757348A
- Authority
- CN
- China
- Prior art keywords
- activation value
- model
- activation
- training
- value distribution
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
- 238000012549 training Methods 0.000 title claims abstract description 145
- 238000000034 method Methods 0.000 title claims abstract description 64
- 230000004913 activation Effects 0.000 claims abstract description 217
- 238000009826 distribution Methods 0.000 claims abstract description 161
- 238000007667 floating Methods 0.000 claims abstract description 83
- 238000013139 quantization Methods 0.000 claims abstract description 57
- 238000004364 calculation method Methods 0.000 claims abstract description 38
- 230000006870 function Effects 0.000 claims description 86
- 238000004590 computer program Methods 0.000 claims description 20
- 230000000694 effects Effects 0.000 abstract description 18
- 238000010586 diagram Methods 0.000 description 10
- 238000003062 neural network model Methods 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 4
- 210000002569 neuron Anatomy 0.000 description 4
- 230000008447 perception Effects 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000011002 quantification Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
Abstract
本申请实施例公开了一种模型的量化训练方法、装置、存储介质及电子设备,其中,本申请实施例从浮点模型的多个卷积层中确定出目标卷积层;对浮点模型进行模型量化训练;对经过量化训练的浮点模型进行前向计算,得到各卷积层的激活值;根据目标卷积层的激活值计算目标卷积层的各通道之间的第一激活值分布距离;根据第一激活值分布距离计算第二损失函数的损失值,并返回执行对浮点模型进行模型量化训练的步骤,直至第二损失函数收敛,得到定点模型,该方案在量化训练中逐渐缩小该激活值分布距离,使得各通道间的激活值分布达到均衡,解决了因为各通道间的激活值分布不均导致的模型量化效果差的问题,提升模型的量化训练效果。
Description
技术领域
本申请涉及电子设备技术领域,具体涉及一种模型的量化训练方法、装置、存储介质及电子设备。
背景技术
随着AI(Artificial Intelligence,人工智能)技术的日益发展,越来越多的智能设备使用AI来替代传统的算法(如人脸识别、语义分割、语音识别等)。但是在实际的智能设备上,特别是端侧设备,受制于其中央处理器的算力、内存的大小或者神经网络处理器的运算要求,往往无法直接使用训练得到的浮点模型,需要将浮点模型首先转换为定点模型,这个转换过程就是我们常说的量化(Quantization)。
目前,常用的模型量化方法有两种,一种是训练后量化,另一种是量化感知训练。其中,量化感知训练的基本思想是在模型训练阶段通过模拟量化过程来将量化造成的损失带入训练,再通过训练来减小这部分损失。在这个过程中,需要确定浮点数据的范围,再基于浮点数据的范围来将浮点数据转换为定点数据。目前的量化感知训练中,存在因卷积层的各通道激活值分布不均导致的量化效果差的现象。
发明内容
本申请实施例提供一种模型的量化训练方法、装置、存储介质及电子设备,能够解决卷积层激活值分布不均导致的模型量化效果差的问题。
第一方面,本申请实施例提供一种模型的量化训练方法,包括:
从浮点模型的卷积层中确定出目标卷积层;
对所述浮点模型进行量化训练;
对经过量化训练的所述浮点模型进行前向计算,得到所述目标卷积层的激活值;
根据所述目标卷积层的激活值,计算所述目标卷积层的各通道之间的第一激活值分布距离;以及
根据所述第一激活值分布距离和第一损失函数计算第二损失函数的损失值,并返回执行对所述浮点模型进行量化训练的步骤,直至所述第二损失函数收敛,得到定点模型。
第二方面,本申请实施例还提供一种模型的量化训练装置,包括:
数据获取模块,用于从浮点模型的卷积层中确定出目标卷积层;
迭代训练模块,用于对所述浮点模型进行量化训练;
前向计算模块,用于对经过量化训练的所述浮点模型进行前向计算,得到所述目标卷积层的激活值;
距离计算模块,用于根据所述目标卷积层的激活值,计算所述目标卷积层的各通道之间的第一激活值分布距离;以及
损失计算模块,用于根据所述第一激活值分布距离和第一损失函数计算第二损失函数的损失值;
在所述损失计算模块计算得到第二损失函数的损失值之后,继续通过迭代训练模块对所述浮点模型进行量化训练,直至所述第二损失函数收敛,得到定点模型。
第三方面,本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行如本申请任一实施例提供的模型的量化训练方法。
第四方面,本申请实施例还提供一种电子设备,包括处理器和存储器,所述存储器有计算机程序,所述处理器通过调用所述计算机程序,用于执行如本申请任一实施例提供的模型的量化训练方法。
本申请实施例提供的技术方案,先从待量化训练的浮点模型中确定出一个目标卷积层,在对该浮点模型迭代训练的过程中,每进行一次迭代训练后,对本次迭代训练后的浮点模型进行前向计算,得到各卷积层的激活值,根据新的激活值计算目标卷积层中各通道之间的第一激活值分布距离,将该第一激活值分布距离代入到损失函数中计算损失值,按照上述过程进行迭代训练,直至损失函数收敛,得到定点模型。该方案在量化训练中将卷积层中各通道之间的激活值分布距离作为损失函数的一部分,通过迭代训练,逐渐缩小该激活值分布距离,使得各通道间的激活值分布达到均衡,解决了因为各通道间的激活值分布不均导致的模型量化效果差的问题,提升模型的量化训练效果。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为同一个卷积层中多个不同的通道上的激活值的分布范围示意图。
图2为本申请实施例提供的模型的量化训练方法的第一种流程示意图。
图3为本申请实施例中提出的模型的量化方法中一神经网络结构示意图。
图4为本申请实施例提供的模型的量化训练方法的第二种流程示意图。
图5为本申请实施例提供的模型的量化训练装置的结构示意图。
图6为本申请实施例提供的电子设备的第一种结构示意图。
图7为本申请实施例提供的电子设备的第二种结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本申请的保护范围。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
通过模型的量化训练可以将浮点模型转换为定点模型,其中,浮点模型是指权重值和激活值等数据为浮点数据的神经网络模型,将这些浮点数据转换为定点数据后的神经网络模型为定点模型。模型的量化训练过程中会对各卷积层的权重值和激活值进行量化,量化基本过程可以用公式(1)表示:
r=s(q-z)(1)
其中,q为量化得到的整型数据,r表示量化前的浮点数据,z为浮点0所对应的整型表示,s为量化系数,可以通过式(2)得到:
式(2)的分子部分表示的是浮点的参数范围,Maxr为最大浮点数,Minr为最小浮点数分母部分表示的量化整数的表示范围,例如,如量化后数据为8bit,则该值为255。
从上面的公式可以看出,由于分母部分在量化过程中为常数,因此要得到量化后的整型数据q,关键是得到式(2)分子部分,也就是浮点数据的范围。
综上所述,可以看出,想要有良好的量化效果,关键是需要得到合理的浮点取值范围,如果该范围取得过大会导致过多浮点值用同一个整型值表示,导致量化后的网络精度出现剧烈下降,如果该范围取得过小,会导致很多浮点值处于所取范围之外,无法被量化。在模型的量化训练过程中,对于同一个卷积层来说,其多个不同的通道上激活值的浮点数据范围是共用的,每一个卷积层的激活值只有一个取值范围,而激活值在不同的通道之中的数据分布却常常有着较大的差距,请参阅图1,图1为同一个卷积层中多个不同的通道上的激活值的分布范围示意图。由于每一层的激活值只能存在一个范围,所以在实际操作中往往选取该层所有激活值中最大值和最小值组成最终该层的范围,与实际每一通道的范围有着较大的差别,由上述公式(2)可知,当取值范围不合理时,会使得该通道所用的系数s有较大误差,导致最终的量化效果差。
为了解决这一问题,本申请实施例提供一种模型的量化训练方法,该模型的量化训练方法的执行主体可以是本申请实施例提供的模型的量化训练装置,或者集成了该模型的量化训练装置的电子设备,其中该模型的量化训练装置可以采用硬件或者软件的方式实现。其中,电子设备可以是智能手机、平板电脑、掌上电脑、笔记本电脑、或者台式电脑等设备。
请参阅图2,图2为本申请实施例提供的模型的量化训练方法的第一种流程示意图。本申请实施例提供的模型的量化训练方法的具体流程可以如下:
101、从浮点模型的卷积层中确定出目标卷积层。
102、对所述浮点模型进行量化训练。
获取需要进行量化训练的浮点模型,该浮点模型可以是任何包含有卷积层的神经网络模型。
从该浮点模型的卷积层中选择一个卷积层作为目标卷积层。如果该浮点模型只有一个卷积层,则将该卷积层作为目标卷积层。如果该浮点模型包括多个(两个或者两个以上)卷积层,则从多个卷积层中选择一个卷积层作为目标卷积层。
例如,在一实施例中,可以从多个卷积层中选择任意一个卷积层作为目标卷积层。
又例如,在另一实施例中,所述浮点模型包括多个卷积层;从所述浮点模型的卷积层中确定出目标卷积层的步骤,包括:计算所述浮点模型中每个卷积层内的各通道之间的第一激活值分布距离;根据第一激活值分布距离从多个卷积层中确定出目标卷积层。
该实施例中,对于每一个卷积层,计算该卷积层中各通道之间的第一激活值分布距离,选择一个第一激活值分布距离较大的卷积层作为目标卷积层。比如,将第一激活值分布距离最大的卷积层,作为目标卷积层。
示例性地,可以按照如下方式计算卷积层中各通道之间的第一激活值分布距离:计算所述目标卷积层内的各个通道上的激活值的平均值和方差;根据激活值的平均值和方差,确定各通道上激活值的分布范围;根据每个通道上激活值的分布范围,计算所述目标卷积层内每两个所述通道之间的第二激活值分布距离;根据每两个通道之间的所述第二激活值分布距离,计算所述目标卷积层内的各通道之间的第一激活值分布距离。
对于一个卷积层来说,一般会包含多个通道,每一个通道又有多个神经元,每一个神经元的输出数据经过激活函数的激活后,得到一个激活值。因此,一个通道上若有n个神经元,则有n个激活值,而一个通道上神经元的数量等于输出数据的维度。这n个激活值的均值表示该通道上激活值分布的平均值,方式表示激活值数据排布的均匀程度,方差越大,数据分布越不均匀,方差越小,数据分布越均匀。因此,方差越小,数据分布越集中在均值附近。经过对多个模型数据的分析,一个通道上的激活值一般会满足高斯分布,而根据高斯分布的性质可知,95%的数据将处于[μ-2σ,μ+2σ]的区间当中,其中μ表示为数据均值,σ表示为数据方差。
基于此,可以将通道C上的输出的激活值的数据范围记为[μ-2σ,μ+2σ]。进而可以基于这样的数据范围计算两个通道的激活值分布之间的距离。
例如,在一些实施例中,对于所述目标卷积层内的每两个通道,根据所述两个通道各自的激活值的分布范围,计算所述两个通道的激活值分布的欧式距离,作为第二激活值分布距离。
其中,μ1,μ2分别表示不同通道上激活值的均值,σ1,σ2分别表示不同通道上激活值的方差。
按照上述公式(3)可以计算得到目标卷积层中每两个通道之间的第二激活值分布距离。根据每两个通道之间的所述第二激活值分布距离,计算所述目标卷积层内的各通道之间的第一激活值分布距离的步骤,可以包括:将每两个通道之间的所述第二激活值分布距离进行相加,得到目标卷积层内的各通道之间的第一激活值分布距离D。例如,可按照如下公式(4)计算:
计算得到每个卷积层对应的第一激活值分布距离之后,确定出第一激活值分布距离最大的卷积层作为目标卷积层。
需要说明的是,上文中的“第一激活值分布距离”和“第二激活值分布距离”中的“第一”和“第二”仅为区分两个不同的激活值分布距离,不对本申请方案造成限制。其中,第二激活值分布距离为两个通道之间的激活值分布距离,第一激活值分布距离表示的是整个目标卷积层中每两个通道之间的激活值分布距离之和。假设目标卷积层有m个通道,则可以得到0.5*m*(m-1)个第二激活值分布距离,将这0.5*m*(m-1)个第二激活值分布距离相加,即可得到目标卷积层的第一激活值分布距离。
可以理解的是,上文所举例子只选择了一个卷积层作为目标卷积层,将其第一激活值分布距离带入到损失函数进行迭代训练,在其他实施例中也可以选择两个或者两个以上的卷积层作为目标卷积层。
在确定出目标卷积层之后,开始对浮点模型进行量化训练。
103、对经过量化训练的所述浮点模型进行前向计算,得到所述目标卷积层的激活值。
104、根据所述目标卷积层的激活值,计算所述目标卷积层的各通道之间的第一激活值分布距离。
105、根据所述第一激活值分布距离和第一损失函数计算第二损失函数的损失值。
若所述第二损失函数收敛,则执行106;若所述第二损失函数未收敛,则返回继续执行102。
106、完成所述浮点模型的量化训练,得到定点模型。
预先准备训练集,使用训练集对浮点模型进行量化训练,在训练过程中实现浮点数据的量化转换。
在完成对浮点模型的一次迭代训练之后,对经过一次迭代训练的浮点模型进行前向计算,得到浮点模型中各卷积层的激活值。获取本次迭代后目标卷积层的激活值,基于该激活值按照上文中的计算方式重新计算目标卷积层的第一激活值分布距离,并将该第一激活值分布距离带入到损失函数中,来计算损失值。
其中,第二损失函数F′包括第一损失函数F和第一激活值分布距离D,其中,F′=w1*F+w2*D,w1为第一损失函数对应的第一权重,w2为第一激活值分布距离对应的第二权重,w1>0,w2>0;第一损失函数用于计算未加入所述第一激活值分布距的浮点模型在量化训练中的损失值,所述第二损失函数用于计算加入所述第一激活值分布距离后的浮点模型在量化训练中的损失值。
第一损失函数为一般的量化训练模型的损失函数,没有考虑第一激活值分布距离。例如,第一损失函数可以是交叉熵损失函数、log损失函数等。本实施例中,将第一激活值分布距离带入到损失函数中以后,可以将新的损失函数表示为原始的损失函数与第一激活值分布距离的线性相加。这里为了区分原始的损失函数和新的损失函数,将原始损失函数记为第一损失函数F,将新的损失函数记为第二损失函数F′。分别为第一损失函数和第一激活值分布距离赋予一个合理的权重值w1和w2。其中,w1和w2的具体数值可以通过模型评估指标,如准确率、确率和召回率等模型训练的评估指标确定出最优值。
本申请实施例中,对于包含有多个卷积层的浮点模型来说,虽然只选择了其中的部分卷积层作为目标卷积层,将其激活值分布距离带入到损失函数中,但是基于神经网络各卷积层之间的传递性,上一个卷积层的输入数据为下一个卷积层的输出数据,同样可以缩小那些并不是目标卷积层的卷积层的激活值分布距离。比如,请参阅图3,图3为本申请实施例中提出的模型的量化方法中一神经网络结构示意图。该神经网络模型为浮点模型,包括第一卷积层、第二卷积层、第三卷积层、第四卷积层、第五卷积层共五个卷积层,第一卷积层的输出数据为第二卷积层的输入数据,第二卷积层的输出数据为第三卷积层的输入数据,第三卷积层的输出数据为第四卷积层的输入数据,第四卷积层的输出数据为第五卷积层的输入数据,基于这样层层传递的特性,无需将每一层的激活值分布距离都带入到损失函数中,同样可以减小均衡化通道差距所导致的误差。
随着模型的迭代训练的次数逐渐增多,第二损失函数计算得到的损失值越来越小,也就意味着第一激活值分布距离D也越来越小。
在计算得到第二损失函数的损失值之后,若未达到收敛,则返回102继续进行迭代训练,直至第二损失函数的损失值达到收敛。当迭代至损失值收敛,该第一激活值分布距离也达到最小,缩小了不同通道之间的浮点数据范围的差别,使得各通道间的激活值分布达到均衡,解决了因为各通道间的激活值分布不均导致的模型量化效果差的问题,提升模型的量化训练效果。
具体实施时,本申请不受所描述的各个步骤的执行顺序的限制,在不产生冲突的情况下,某些步骤还可以采用其它顺序进行或者同时进行。
由上可知,本申请实施例提供的模型的量化训练方法,先从待量化训练的浮点模型中确定出一个目标卷积层,在对该浮点模型迭代训练的过程中,每进行一次迭代训练后,对本次迭代训练后的浮点模型进行前向计算,得到各卷积层的激活值,根据新的激活值计算目标卷积层中各通道之间的第一激活值分布距离,将该第一激活值分布距离代入到损失函数中计算损失值,按照上述过程进行迭代训练,直至损失函数收敛,得到定点模型。该方案在量化训练中将卷积层中各通道之间的激活值分布距离作为损失函数的一部分,通过迭代训练,逐渐缩小该激活值分布距离,使得各通道间的激活值分布达到均衡,减小均衡化通道差距所导致的误差,解决了因为各通道间的激活值分布不均导致的模型量化效果差的问题,提升模型的量化训练效果。此外,本方案与量化感知训练同步进行,通过损失函数,将缩小激活值分布距离的操作融入到每一次迭代训练中,无需后续操作,较其他方案有一定的简便性。
根据前面实施例所描述的方法,以下将举例作进一步详细说明。
请参阅图4,图4为本发明实施例提供的模型的量化训练方法的第二流程示意图。所述方法包括:
201、获取浮点模型。
获取需要进行量化训练的浮点模型,该浮点模型可以是任何包含有卷积层的神经网络模型。
202、计算所述浮点模型中每个卷积层内的各通道之间的第一激活值分布距离,将第一激活值分布距离最大的卷积层,作为目标卷积层。
如果该浮点模型包括多个卷积层,则对于每一个卷积层,计算该卷积层中各通道之间的第一激活值分布距离,将第一激活值分布距离最大的卷积层,作为目标卷积层。具体地计算方式,请参见上述实施例,在此不再赘述。
203、对所述浮点模型进行量化训练的一次迭代。
204、对经过一次迭代的所述浮点模型进行前向计算,得到所述目标卷积层的激活值。
预先准备训练集,使用训练集对浮点模型进行量化训练,在训练过程中实现浮点数据的量化转换。在完成对浮点模型的一次迭代训练之后,对经过一次迭代训练的浮点模型进行前向计算,得到浮点模型中各卷积层的激活值。获取本次迭代后目标卷积层的激活值。
205、根据所述目标卷积层的激活值,计算所述目标卷积层的各通道之间的第一激活值分布距离。
206、根据所述第一激活值分布距离和第一损失函数计算第二损失函数的损失值。
基于该激活值按照上文中的计算方式重新计算目标卷积层的第一激活值分布距离,并将该第一激活值分布距离带入到损失函数中,来计算损失值。
若所述损失值未收敛,则返回执行203。
若所述损失值收敛,则执行207。
207、得到定点模型。
在计算得到第二损失函数的损失值之后,若未达到收敛,则返回203继续进行迭代训练,直至第二损失函数的损失值达到收敛。当迭代至损失值收敛,该第一激活值分布距离也达到最小,缩小了不同通道之间的浮点数据范围的差别,使得各通道间的激活值分布达到均衡。
由上可知,本发明实施例提出的模型的量化训练方法,从浮点模型的多个卷积层中确定出各通道之间的第一激活值分布距离最大的卷积层作为目标卷积层,在浮点模型的量化训练的每一次迭代中,将该目标卷积层的第一激活值分布距离作为损失函数的一部分来计算损失值,当迭代至损失值收敛,该第一激活值分布距离也达到最小,缩小了不同通道之间的浮点数据范围的差别,使得各通道间的激活值分布达到均衡,解决了因为各通道间的激活值分布不均导致的模型量化效果差的问题,提升模型的量化训练效果。
在一实施例中还提供一种模型的量化训练装置。请参阅图5,图5为本申请实施例提供的模型的量化训练装置300的结构示意图。其中该模型的量化训练装置300应用于电子设备,该模型的量化训练装置300包括数据获取模块301、迭代训练模块302、前向计算模块303、距离计算模块304以及损失计算模块305,如下:
数据获取模块301,用于从浮点模型的卷积层中确定出目标卷积层;
迭代训练模块302,用于对所述浮点模型进行量化训练;
前向计算模块303,用于对经过量化训练的所述浮点模型进行前向计算,得到所述目标卷积层的激活值;以及
距离计算模块304,用于根据所述目标卷积层的激活值,计算所述目标卷积层的各通道之间的第一激活值分布距离;
损失计算模块305,用于根据所述第一激活值分布距离和第一损失函数计算第二损失函数的损失值;
在所述损失计算模块305计算得到第二损失函数的损失值之后,继续通过迭代训练模块302对所述浮点模型进行量化训练,直至所述第二损失函数收敛,得到定点模型。
在一些实施例中,数据获取模块301,还用于计算所述浮点模型中每个卷积层内的各通道之间的第一激活值分布距离;以及,根据第一激活值分布距离从多个卷积层中确定出目标卷积层。
在一些实施例中,数据获取模块301,还用于将第一激活值分布距离最大的卷积层,作为目标卷积层。
在一些实施例中,距离计算模块304,还用于计算所述目标卷积层内的各个通道上的激活值的平均值和方差;根据激活值的平均值和方差,确定各通道上激活值的分布范围;根据每个通道上激活值的分布范围,计算所述目标卷积层内每两个所述通道之间的第二激活值分布距离;以及,根据每两个通道之间的所述第二激活值分布距离,计算所述目标卷积层内的各通道之间的第一激活值分布距离。
在一些实施例中,距离计算模块304,还用于对于所述目标卷积层内的每两个通道,根据所述两个通道各自的激活值的分布范围,计算所述两个通道的激活值分布的欧式距离,作为第二激活值分布距离。
在一些实施例中,第二损失函数F′包括第一损失函数F和第一激活值分布距离D,其中,F′=w1*F+w2*D,w1为第一损失函数对应的第一权重,w2为第一激活值分布距离对应的第二权重,w1>0,w2>0;所述第一损失函数用于计算未加入所述第一激活值分布距的浮点模型在量化训练中的损失值,所述第二损失函数用于计算加入所述第一激活值分布距离后的浮点模型在量化训练中的损失值。
应当说明的是,本申请实施例提供的模型的量化训练装置与上文实施例中的模型的量化训练方法属于同一构思,通过该模型的量化训练装置可以实现模型的量化训练方法实施例中提供的任一方法,其具体实现过程详见模型的量化训练方法实施例,此处不再赘述。
由上可知,本申请实施例提出的模型的量化训练装置,从待量化训练的浮点模型中确定出一个目标卷积层,在对该浮点模型迭代训练的过程中,每进行一次迭代训练后,对本次迭代训练后的浮点模型进行前向计算,得到各卷积层的激活值,根据新的激活值计算目标卷积层中各通道之间的第一激活值分布距离,将该第一激活值分布距离代入到损失函数中计算损失值,按照上述过程进行迭代训练,直至损失函数收敛,得到定点模型。该方案在量化训练中将卷积层中各通道之间的激活值分布距离作为损失函数的一部分,通过迭代训练,逐渐缩小该激活值分布距离,使得各通道间的激活值分布达到均衡,解决了因为各通道间的激活值分布不均导致的模型量化效果差的问题,提升模型的量化训练效果。
本申请实施例还提供一种电子设备。所述电子设备可以是智能手机、平板电脑等设备。请参阅图6,图6为本申请实施例提供的电子设备的第一种结构示意图。电子设备400包括处理器401和存储器402。其中,处理器401与存储器402电性连接。
处理器401是电子设备400的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或调用存储在存储器402内的计算机程序,以及调用存储在存储器402内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。
存储器402可用于存储计算机程序和数据。存储器402存储的计算机程序中包含有可在处理器中执行的指令。计算机程序可以组成各种功能模块。处理器401通过调用存储在存储器402的计算机程序,从而执行各种功能应用以及数据处理。
在本实施例中,电子设备400中的处理器401会按照如下的步骤,将一个或一个以上的计算机程序的进程对应的指令加载到存储器402中,并由处理器401来运行存储在存储器402中的计算机程序,从而实现各种功能:
从浮点模型的卷积层中确定出目标卷积层;
对所述浮点模型进行量化训练;
对经过量化训练的所述浮点模型进行前向计算,得到所述目标卷积层的激活值;
根据所述目标卷积层的激活值,计算所述目标卷积层的各通道之间的第一激活值分布距离;以及
根据所述第一激活值分布距离和第一损失函数计算第二损失函数的损失值,并返回执行对所述浮点模型进行量化训练的步骤,直至所述第二损失函数收敛,得到定点模型。
在一些实施例中,请参阅图7,图7为本申请实施例提供的电子设备的第二种结构示意图。电子设备400还包括:射频电路403、显示屏404、控制电路405、输入单元406、音频电路407、传感器408以及电源409。其中,处理器401分别与射频电路403、显示屏404、控制电路405、输入单元406、音频电路407、传感器408以及电源409电性连接。
射频电路403用于收发射频信号,以通过无线通信与网络设备或其他电子设备进行通信。
显示屏404可用于显示由用户输入的信息或提供给用户的信息以及电子设备的各种图形用户接口,这些图形用户接口可以由图像、文本、图标、视频和其任意组合来构成。
控制电路405与显示屏404电性连接,用于控制显示屏404显示信息。
输入单元406可用于接收输入的数字、字符信息或用户特征信息(例如指纹),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。其中,输入单元406可以包括指纹识别模组。
音频电路407可通过扬声器、传声器提供用户与电子设备之间的音频接口。其中,音频电路407包括麦克风。所述麦克风与所述处理器401电性连接。所述麦克风用于接收用户输入的语音信息。
传感器408用于采集外部环境信息。传感器408可以包括环境亮度传感器、加速度传感器、陀螺仪等传感器中的一种或多种。
电源409用于给电子设备400的各个部件供电。在一些实施例中,电源409可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
虽然图中未示出,电子设备400还可以包括摄像头、蓝牙模块等,在此不再赘述。
在本实施例中,电子设备400中的处理器401会按照如下的步骤,将一个或一个以上的计算机程序的进程对应的指令加载到存储器402中,并由处理器401来运行存储在存储器402中的计算机程序,从而实现各种功能:
从浮点模型的卷积层中确定出目标卷积层;
对所述浮点模型进行量化训练;
对经过量化训练的所述浮点模型进行前向计算,得到所述目标卷积层的激活值;
根据所述目标卷积层的激活值,计算所述目标卷积层的各通道之间的第一激活值分布距离;以及
根据所述第一激活值分布距离和第一损失函数计算第二损失函数的损失值,并返回执行对所述浮点模型进行量化训练的步骤,直至所述第二损失函数收敛,得到定点模型。
由上可知,本申请实施例提供了一种电子设备,所述电子设备从待量化训练的浮点模型中确定出一个目标卷积层,在对该浮点模型迭代训练的过程中,每进行一次迭代训练后,对本次迭代训练后的浮点模型进行前向计算,得到各卷积层的激活值,根据新的激活值计算目标卷积层中各通道之间的第一激活值分布距离,将该第一激活值分布距离代入到损失函数中计算损失值,按照上述过程进行迭代训练,直至损失函数收敛,得到定点模型。该方案在量化训练中,将卷积层中各通道之间的激活值分布距离作为损失函数的一部分,通过迭代训练,逐渐缩小该激活值分布距离,使得各通道间的激活值分布达到均衡,解决了因为各通道间的激活值分布不均导致的模型量化效果差的问题,提升模型的量化训练效果。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,所述计算机执行上述任一实施例所述的模型的量化训练方法。
需要说明的是,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过计算机程序来指令相关的硬件来完成,所述计算机程序可以存储于计算机可读存储介质中,所述计算机可读存储介质可以包括但不限于:只读存储器(ROM,ReadOnly Memory)、随机存取存储器(RAM,Random Access Memory)、磁盘或光盘等。
此外,本申请中的术语“第一”、“第二”和“第三”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或模块的过程、方法、系统、产品或设备没有限定于已列出的步骤或模块,而是某些实施例还包括没有列出的步骤或模块,或某些实施例还包括对于这些过程、方法、产品或设备固有的其它步骤或模块。
以上对本申请实施例所提供的模型的量化训练方法、装置、存储介质及电子设备进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种模型的量化训练方法,其特征在于,包括:
从浮点模型的卷积层中确定出目标卷积层;
对所述浮点模型进行量化训练;
对经过量化训练的所述浮点模型进行前向计算,得到所述目标卷积层的激活值;
根据所述目标卷积层的激活值,计算所述目标卷积层的各通道之间的第一激活值分布距离;以及
根据所述第一激活值分布距离和第一损失函数计算第二损失函数的损失值,并返回执行对所述浮点模型进行量化训练的步骤,直至所述第二损失函数收敛,得到定点模型。
2.如权利要求1所述的模型的量化训练方法,其特征在于,所述浮点模型包括多个卷积层;从所述浮点模型的卷积层中确定出目标卷积层的步骤,包括:
计算所述浮点模型中每个卷积层内的各通道之间的第一激活值分布距离;以及
根据第一激活值分布距离从多个卷积层中确定出目标卷积层。
3.如权利要求2所述的模型的量化训练方法,其特征在于,根据第一激活值分布距离从多个卷积层中确定出目标卷积层的步骤,包括:
将第一激活值分布距离最大的卷积层,作为目标卷积层。
4.如权利要求1所述的模型的量化训练方法,其特征在于,根据所述目标卷积层的激活值,计算所述目标卷积层的各通道之间的第一激活值分布距离的步骤,包括:
计算所述目标卷积层内的各个通道上的激活值的平均值和方差;
根据激活值的平均值和方差,确定各通道上激活值的分布范围;
根据每个通道上激活值的分布范围,计算所述目标卷积层内每两个所述通道之间的第二激活值分布距离;以及
根据每两个通道之间的所述第二激活值分布距离,计算所述目标卷积层内的各通道之间的第一激活值分布距离。
5.如权利要求4所述的模型的量化训练方法,其特征在于,根据每个通道上激活值的分布范围,计算所述目标卷积层内每两个所述通道之间的第二激活值分布距离的步骤,包括:
对于所述目标卷积层内的每两个通道,根据所述两个通道各自的激活值的分布范围,计算所述两个通道的激活值分布的欧式距离,作为第二激活值分布距离。
6.如权利要求1至5任一项所述的模型的量化训练方法,其特征在于,第二损失函数F′包括第一损失函数F和第一激活值分布距离D,其中,
F′=w1*F+w2*D,w1为第一损失函数对应的第一权重,w2为第一激活值分布距离对应的第二权重,w1>0,w2>0;所述第一损失函数用于计算未加入所述第一激活值分布距的浮点模型在量化训练中的损失值,所述第二损失函数用于计算加入所述第一激活值分布距离后的浮点模型在量化训练中的损失值。
7.一种模型的量化训练装置,其特征在于,包括:
数据获取模块,用于从浮点模型的卷积层中确定出目标卷积层;
迭代训练模块,用于对所述浮点模型进行量化训练;
前向计算模块,用于对经过量化训练的所述浮点模型进行前向计算,得到所述目标卷积层的激活值;
距离计算模块,用于根据所述目标卷积层的激活值,计算所述目标卷积层的各通道之间的第一激活值分布距离;以及
损失计算模块,用于根据所述第一激活值分布距离和第一损失函数计算第二损失函数的损失值;
在所述损失计算模块计算得到第二损失函数的损失值之后,继续通过迭代训练模块对所述浮点模型进行量化训练,直至所述第二损失函数收敛,得到定点模型。
8.如权利要求7所述的模型的量化训练装置,其特征在于,所述距离计算模块还用于:
计算所述目标卷积层内的各个通道上的激活值的平均值和方差;
根据激活值的平均值和方差,确定各通道上激活值的分布范围;
根据每个通道上激活值的分布范围,计算所述目标卷积层内每两个所述通道之间的第二激活值分布距离;以及
根据每两个通道之间的所述第二激活值分布距离,计算所述目标卷积层内的各通道之间的第一激活值分布距离。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,当所述计算机程序在计算机上运行时,使得所述计算机执行如权利要求1至6任一项所述的模型的量化训练方法。
10.一种电子设备,包括处理器和存储器,所述存储器存储有计算机程序,其特征在于,所述处理器通过调用所述计算机程序,用于执行如权利要求1至6任一项所述的模型的量化训练方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110025829.7A CN114757348A (zh) | 2021-01-08 | 2021-01-08 | 模型的量化训练方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110025829.7A CN114757348A (zh) | 2021-01-08 | 2021-01-08 | 模型的量化训练方法、装置、存储介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114757348A true CN114757348A (zh) | 2022-07-15 |
Family
ID=82325268
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110025829.7A Withdrawn CN114757348A (zh) | 2021-01-08 | 2021-01-08 | 模型的量化训练方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114757348A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116739039A (zh) * | 2023-05-05 | 2023-09-12 | 北京百度网讯科技有限公司 | 分布式部署模型的量化方法、装置、设备和介质 |
-
2021
- 2021-01-08 CN CN202110025829.7A patent/CN114757348A/zh not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116739039A (zh) * | 2023-05-05 | 2023-09-12 | 北京百度网讯科技有限公司 | 分布式部署模型的量化方法、装置、设备和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108701250B (zh) | 数据定点化方法和装置 | |
US20190164043A1 (en) | Low-power hardware acceleration method and system for convolution neural network computation | |
CN110334344B (zh) | 一种语义意图识别方法、装置、设备及存储介质 | |
CN107947951B (zh) | 用户群组推荐方法、装置及存储介质和服务器 | |
TWI701612B (zh) | 用於神經網路中激勵函數的電路系統及其處理方法 | |
WO2020001401A1 (zh) | 深度神经网络中的网络层运算方法及装置 | |
CN112200296A (zh) | 网络模型量化方法、装置、存储介质及电子设备 | |
CN110874627A (zh) | 数据处理方法、数据处理装置及计算机可读介质 | |
CN114757348A (zh) | 模型的量化训练方法、装置、存储介质及电子设备 | |
CN110337636A (zh) | 数据转换方法和装置 | |
CN113449840A (zh) | 神经网络训练方法及装置、图像分类的方法及装置 | |
CN111160049A (zh) | 文本翻译方法、装置、机器翻译系统和存储介质 | |
Chen et al. | Approximate softmax functions for energy-efficient deep neural networks | |
CN109409915B (zh) | 汽车配件销量预测方法、终端设备及存储介质 | |
CN112966592A (zh) | 手部关键点检测方法、装置、设备和介质 | |
CN116522834A (zh) | 时延预测方法、装置、设备及存储介质 | |
CN112748899A (zh) | 一种数据处理方法和相关设备 | |
CN113157453B (zh) | 一种基于任务复杂度的高能效目标检测任务动态调度方法 | |
CN114139678A (zh) | 卷积神经网络量化方法、装置、电子设备和存储介质 | |
CN107846493B (zh) | 通话联系人控制方法、装置及存储介质和移动终端 | |
CN114222997A (zh) | 用于对神经网络进行后训练量化的方法和装置 | |
CN111489203A (zh) | 理财产品推荐方法及系统 | |
CN115310596A (zh) | 卷积运算方法、装置、存储介质及电子设备 | |
CN112712792A (zh) | 一种方言识别模型的训练方法、可读存储介质及终端设备 | |
CN116386647B (zh) | 音频验证方法、相关装置、存储介质及程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20220715 |