CN114418121A - 模型训练方法、对象处理方法及装置、电子设备、介质 - Google Patents
模型训练方法、对象处理方法及装置、电子设备、介质 Download PDFInfo
- Publication number
- CN114418121A CN114418121A CN202210088006.3A CN202210088006A CN114418121A CN 114418121 A CN114418121 A CN 114418121A CN 202210088006 A CN202210088006 A CN 202210088006A CN 114418121 A CN114418121 A CN 114418121A
- Authority
- CN
- China
- Prior art keywords
- quantization
- machine learning
- learning model
- training
- pseudo
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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
- G06N3/045—Combinations of networks
-
- 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
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Image Analysis (AREA)
Abstract
本公开实施例是关于一种模型训练方法、对象处理方法及装置、电子设备、存储介质,涉及计算机技术领域,该模型训练方法包括:获取机器学习模型,所述机器学习模型使用浮点精度训练得到;对所述机器学习模型的权重进行跨层权重正则化处理,得到正则化后的权重;确定推理引擎对应的量化信息,并基于所述量化信息确定多个训练参数;基于所述多个训练参数,对所述机器学习模型对应的正则化后的权重以及特征图进行量化感知训练,以得到训练好的机器学习模型。本公开的技术方案在量化感知训练过程中引入渐进式量化训练,能够提高量化训练的模型精度,得到精度更高的量化推理模型。
Description
技术领域
本公开涉及计算机技术领域,具体而言,涉及一种模型训练方法、模型训练装置、对象处理方法、对象处理装置、电子设备以及计算机可读存储介质。
背景技术
为了减少神经网络所使用的数据量,可以对机器学习模型进行量化训练。
相关技术中,可以对机器学习模型进行离线量化,以对权重进行量化。在这种方式中,仅仅考虑权重量化,具有一定的局限性。除此之外,仅仅对权重进行量化导致量化训练过程中产生的损失较大,因此使得模型的准确性较低,并且计算机运算性能较低,且占用了较多的计算资源。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种模型训练方法、对象处理方法及装置、电子设备、存储介质,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的模型准确性较低的问题。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的一个方面,提供一种模型训练方法,包括:获取机器学习模型,所述机器学习模型使用浮点精度训练得到;对所述机器学习模型的权重进行跨层权重正则化处理,得到正则化后的权重;确定推理引擎对应的量化信息,并基于所述量化信息确定多个训练参数;基于所述多个训练参数,对所述机器学习模型对应的正则化后的权重以及特征图进行量化感知训练,以得到训练好的机器学习模型。
根据本公开的一个方面,提供一种对象处理方法,包括:获取待处理对象;通过训练好的机器学习模型对所述待处理对象进行卷积操作,获取所述待处理对象对应的预测结果;其中,所述训练好的机器学习模型根据上述任意一项所述的模型训练方法训练得到。
根据本公开的一个方面,提供一种模型训练装置,包括:模型获取模块,用于获取机器学习模型,所述机器学习模型使用浮点精度训练得到;权重处理模块,用于对所述机器学习模型的权重进行跨层权重正则化处理,得到正则化后的权重;量化信息确定模块,用于确定推理引擎对应的量化信息,并基于所述量化信息确定多个训练参数;量化训练模块,用于基于所述多个训练参数对所述机器学习模型对应的正则化后的权重以及特征图进行量化感知训练,以得到训练好的机器学习模型。
根据本公开的一个方面,提供一种对象处理装置,包括:对象获取模块,用于获取待处理对象;预测模块,用于通过训练好的机器学习模型对所述待处理对象进行卷积操作,获取所述待处理对象对应的预测结果;其中,所述机器学习模型根据上述任意一项所述的模型训练方法训练得到。
根据本公开的一个方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的模型训练方法或上述任意一项所述的对象处理方法。
根据本公开的一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的模型训练方法或上述任意一项所述的对象处理方法。
本公开实施例中提供的模型训练方法、模型训练装置、对象处理方法、对象处理装置、电子设备以及计算机可读存储介质中,一方面,通过对机器学习模型对应的正则化后的权重和特征图分别进行量化感知训练,能够避免只进行权重量化的局限性,从权重量化和特征图量化两个维度来进行模型训练,提高全面性和准确性。另一方面,基于多个训练参数来对机器学习模型从权重和特征图等多个维度进行量化训练,能够在多个训练参数的基础上逐步对机器学习模型进行量化训练,将量化损失分阶段引入量化训练过程,避免训练过程中量化产生的损失过大的问题,避免了对网络收敛方向的影响,从而提高模型量化训练的精准度,提高模型准确性和可靠性,从而准确地进行量化训练。再一方面,由于能够实现渐进式量化训练,能够使得在低功耗设备或者是异构平台中实现模型的量化感知训练,减少训练模型时计算机所需要的数据量,从而提高计算机的处理速度和运算性能,并且降低了功耗,减少了需要的计算资源。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了可以应用本公开实施例的模型训练方法或对象处理方法的系统架构的示意图。
图2示意性示出本公开实施例中一种模型训练方法的示意图。
图3示意性示出本公开实施例中跨层权重正则化的原理示意图。
图4示意性示出本公开实施例中渐进式量化训练的流程示意图。
图5示意性示出本公开实施例中进行量化训练的整体流程示意图。
图6示意性示出本公开实施例中量化感知训练的流程示意图。
图7示意性示出本公开实施例中对卷积神经网络模型进行伪量化运算的流程示意图。
图8示意性示出本公开实施例中一种对象处理方法的流程示意图。
图9示意性示出本公开实施例中一种模型训练装置的框图。
图10示意性示出本公开实施例中对象处理装置的框图。
图11示意性示出本公开实施例中电子设备的框图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
相关技术中主要包括以下几种方案:可以将网络权重进行离线量化,在对数空间进行量化,并且进行补偿量化减少量化损失。也可以是模型训练设备对机器学习模型进行至少一轮迭代训练,再通过模拟硬件部署环境进行测试。该方式用于模型测试,没有在量化训练过程中解决量化训练误差较大的问题。除此之外,还可以基于二分逼近法计算与机器学习模型的待量化算子对应的量化参数;基于量化参数对机器学习模型的待量化算子进行量化。对于较为复杂的机器学习模型情况,计算复杂度高,运行慢。并且只提供了离线量化,并且也没有考虑特征图featuremap的量化,因此量化范围小导致量化误差大。
为了解决上述技术问题,本公开实施例中提供了一种模型训练方法,可以应用于信息抽取、人脸识别、图像分类等各种类型的应用场景。
图1示出了可以应用本公开实施例的模型训练方法及装置或对象处理方法及装置的系统架构的示意图。
如图1所示,系统架构100可以包括客户端101、网络102、服务器103。其中,客户端可以为客户端,例如可以为智能手机、电脑、平板电脑智能音箱等终端。网络102用以在客户端101和服务器103之间提供通信链路的介质。网络102可以包括各种连接类型,例如有线通信链路、无线通信链路等等,在本公开实施例中,客户端101和服务器103之间的网络102可以是有线通信链路,例如可以通过串口连接线提供通信链路,也可以是无线通信链路,通过无线网络提供通信链路。服务器103可以是具有计算功能的服务器或者是客户端,例如便携式计算机、台式计算机、智能手机等具有计算功能的终端设备,用于对客户端发送的数据或者是模型进行处理。
该模型训练方法可以应用于对机器学习模型的训练场景中。参考图1中所示,客户端101可以将机器学习模型通过网络102发送至服务器103,服务器103对接收到的机器学习模型进行量化训练,以得到训练好的机器学习模型。进一步地,客户端将待处理对象发送至服务器,服务器调用训练好的机器学习模型对待处理对象进行推理,以得到待处理对象对应的预测结果。并且可以将预测结果发送至客户端101进行显示和其他处理操作。服务器可以与客户端相同,即客户端与服务器均为智能设备,例如可以为智能手机。服务器也可以与客户端不同,此处不做特殊限定。
需要说明的是,本公开实施例所提供的模型训练方法以及对象处理方法可以完全由服务器或客户端来执行。相应地,模型训练装置和对象处理装置可设置于服务器中。也可以完全由客户端来执行。
接下来,参考图2对本公开实施例中的模型训练方法进行详细说明。
在步骤S210中,获取机器学习模型,所述机器学习模型使用浮点精度训练得到。
本公开实施例中,机器学习模型可以为任何类型的机器学习模型,例如可以为卷积神经网络模型。当机器学习模型为卷积神经网络模型时,该模型可以包括卷积层、池化层、全连接层、激活层等多层结构。具体地,机器学习模型可以为使用浮点精度训练得到的模型,使用浮点精度训练指的是未对数据的数据类型进行调整,且没有进行任何约束的训练过程。
在使用浮点精度进行模型训练时,可以根据训练数据以及训练数据对应的标签来对模型进行训练,调整机器学习模型的模型参数,直至模型收敛为止,以得到机器学习模型。本公开实施例中,机器学习模型可以为事先训练好的模型,也可以为实时训练的模型,此处不做特殊限定。其中,训练数据可以为大量图像数据。训练数据的标签可以为图像数据的类型。机器学习模型可以应用于任何场景,例如人脸识别、图像分类、信息抽取等等。
在步骤S220中,对所述机器学习模型的权重进行跨层权重正则化处理,得到正则化后的权重。
本公开实施例中,跨层权重正则化处理指的是对机器学习模型中不同层的权重进行正则化,以使得多个不同通道的权重分布状态更加集中,从而便于更好地进行量化感知训练。具体地,跨层权重正则化的过程可以为:对机器学习模型中当前层的权重的目标通道乘以第一参数,并对与当前层连接的下一层的权重的目标通道乘以第二参数,以对所述权重进行跨层权重正则化处理;其中,所述第一参数和所述第二参数的乘积为1。其中,当机器学习模型为卷积神经网络模型时,当前层可以为卷积神经网络模型中的任意一层,例如可以为卷积层或者是全连接层等等。对RGB图片进行卷积操作后,根据过滤器的数量就可以产生更多的通道。一种卷积核得到一个通道,所以输出通道数与卷积核个数相等。目标通道可以为卷积对应的多个通道中的任意一个通道,例如可以为第i个通道。量化需要对参数张量进行缩放,如果不同通道的缩放系数差异很大就会导致很大的量化误差,所以可以利用激活函数的缩放特性来进行上下层之间不同通道缩放系数的调整。可以使权重分布更加集中为优化目标,来确定一个第一参数。第一参数可以为缩放系数的倒数,例如可以表示为1/Si。基于此,可以对第一层的权重的目标通道乘以第一参数。若第一层的权重在输出通道的范围方差很大,则可以给范围大的层乘以小的系数,范围小的层乘以大的系数,使得各个通道的范围尽量一致。即等于一个给定的范围,这样量化的时候整个张量量化的误差就会最小,同时为了保证数值内部的等价,第一层乘完的系数,在第二层要除回,具体体现在当前层的权重的第i个输出通道乘了系数,对应下一层的权重的第i个输入通道就要除以相同系数。基于此,对与当前层连接的下一层的权重的目标通道乘以第二参数。第二参数可以为缩放系数,例如可以表示为Si。与当前层连接的下一层指的是与当前层相邻的下一层,例如当前层为卷积层时,下一层可以为全连接层。下一层的目标通道可以与当前层的目标通道相同,例如都可以为第i个通道。
图3中示意性示出了进行跨层权重正则化处理的原理图,参考图3中所示,在当前层的权重W(1)的第i个通道乘以1/Si,通过函数f(.)处理得到输出y(1),然后在下一层的权重W(2)的第i个通道乘以Si,通过函数f(.)处理得到输出y(2)。这两个操作,可以互相抵消,从而不影响y(2)的输出。所以经过跨层权重正则化处理,可以在不改变最后输出分布的情况下,调整不同通道的范围,从而使得卷积神经网络模型的权重分布更加均衡,减少量化损失。
继续参考图2中所示,在步骤S230中,确定推理引擎对应的量化信息,并基于所述量化信息确定多个训练参数。
本公开实施例中,推理引擎用于解决机器学习模型在端侧推理运行问题,例如可以用于执行机器学习模型的优化、转换和对数据进行推理计算等等。量化信息可以包括但不限于量化粒度、数据类型以及数据范围。其中,量化粒度可以包括逐层量化以及逐通道量化。逐层量化指的是指定一个量化器(由尺度和零点定义)对张量进行量化。逐通道量化对每个卷积核有不同的量化器。一般而言,权重量化可以为逐通道量化,激活输出量化即特征图量化可以为逐层量化。
基于此,可以根据要部署的量化推理硬件平台,明确推理引擎对应的量化信息即量化方案。其中,数据类型为Uint8/int8、量化粒度为逐通道或逐层,即Per channel/Perlayer,其中逐通道量化的粒度更小。量化粒度具体根据推理引擎支持的类型来确定。对于Uint8 Asymmetric(不对称的无符号8位整型数据),量化数据的范围是0~255;对于Int8Symmetric(对称的有符号8位整型),量化数据的范围是-127~127。
在确定量化信息后,可以基于量化信息来确定多个训练参数。在确定量化信息后,还可以基于量化信息的数据类型确定量化类型,此处的训练参数指的是用于量化感知训练的参数,可以根据量化信息中的数据类型以及与量化信息对应的伪量化节点而确定。训练参数可以为多个,以便于根据多个训练参数渐进式对机器学习模型进行量化训练。训练参数用于表示进行量化训练的量化级别,训练参数不同,则对应的量化级别不同。
继续参考图2中所示,在步骤S240中,基于所述多个训练参数,对所述机器学习模型对应的正则化后的权重以及特征图进行量化感知训练,以得到训练好的机器学习模型。
本公开实施例中,在对机器学习模型进行训练时,可以对正则化后的权重进行量化,同时可以特征图进行量化。正则化后的权重指的是分布范围集中的权重。特征图指的是用于组成卷积层中数据的每一个二维图片。具体地,可以在机器学习模型中插入伪量化节点,并根据伪量化节点确定的训练参数来对机器学习模型的权重和特征图进行伪量化运算,以进行量化感知训练。其中,伪量化节点用于执行伪量化运算。
本公开实施例中,可以为权重和特征图插入伪量化节点。并且,伪量化节点可以为多种类型的伪量化节点。多种类型的伪量化节点可以用于表示不同级别的伪量化运算,且多种类型的伪量化节点的量化级别逐渐减小。多种类型的伪量化节点可以根据推理引擎的量化信息中的数据类型而确定。例如可以包括但不限于16bit量化节点、12bit量化节点、10bit量化节点、8bit量化节点、4bit量化节点、1bit量化节点等等。举例而言,当推理引擎对应的数据类型为int8时可执行int8量化,int8量化指的是让原来32bit存储的数据映射到8bit存储。int8范围是[-128,127],uint8范围是[0,255]。当执行int8量化时,多种类型的伪量化节点可以为16bit量化节点、12bit量化节点、10bit量化节点以及8bit量化节点。
渐进式收缩方式指的是按照优先级顺序依次采用多种类型的伪量化节点来进行伪量化运算。优先级顺序指的是量化级别从高到低的顺序。基于此,对于int8量化对应的多个类型的伪量化节点而言,16bit伪量化节点的优先级最高、8bit伪量化节点的优先级最低。
图4中示意性示出了采用渐进式收缩方式进行伪量化运算的流程图,参考图4中所示,主要包括以下步骤:
在步骤S410中,在所述机器学习模型中插入当前类型的伪量化节点,并根据所述当前类型的伪量化节点对所述机器学习模型进行伪量化运算,以得到当前机器学习模型;
在步骤S420中,对所述当前机器学习模型插入下一类型的伪量化节点,并根据所述下一类型的伪量化节点对所述当前机器学习模型进行量化感知训练,得到下一机器学习模型;
在步骤S430中,为下一机器学习模型插入剩余伪量化节点,直至为下一机器学习模型插入多个类型的伪量化节点中的所有伪量化节点为止,以得到训练好的机器学习模型。
本公开实施例中,当前类型的伪量化节点指的是优先级最高的伪量化节点,例如可以为16bit伪量化节点。在使用当前类型的伪量化节点对机器学习模型进行伪量化运算的过程中,可以为权重和特征图插入16bit伪量化节点。伪量化运算是由量化和反量化组成。其中,量化指的是将浮点数变化到定点数,反量化指的是将量化得到的定点数再变化到浮点数。在插入16bit伪量化节点后,可以基于16bit伪量化节点对权重和特征图进行量化运算,以对机器学习模型进行量化感知训练,得到当前机器学习模型。
进一步地,下一类型的伪量化节点可以为与当前类型的伪量化节点相邻的下一级别的伪量化节点,即与当前类型的伪量化节点相邻的优先级小于当前类型的伪量化节点的节点,例如可以为12bit伪量化节点。可以在当前机器学习模型上插入12bit伪量化节点。在插入12bit伪量化节点后,可以基于12bit伪量化节点对权重和特征图进行量化运算,以对当前机器学习模型进行量化感知训练,得到下一机器学习模型,即12bit伪量化节点训练的机器学习模型。
剩余伪量化节点可以为多种类型的伪量化节点中的所有剩余节点,且剩余伪量化节点可以按照每次插入一个类型节点的顺序依次插入机器学习模型。在量化信息中的数据类型为int8而执行imt8量化时,剩余伪量化节点可以为优先级小于下一类型的伪量化节点的所有节点,例如可以包括10bit伪量化节点、8bit伪量化节点。具体地,可以在下一机器学习模型上插入剩余伪量化节点包含的所有节点,例如先插入10bit伪量化节点,训练完成后再插入8bit伪量化节点,如此循环,直至将所有剩余的伪量化节点均插入机器学习模型中为止。在此基础上,在插入10bit伪量化节点后,可以基于10bit伪量化节点对权重和特征图进行量化运算,以对下一机器学习模型进行量化感知训练,得到中间机器学习模型。然后可以将剩余伪量化节点中的8bit伪量化节点插入中间机器学习模型,以再次进行量化感知训练。进一步地,可以循环执行上述步骤,对中间机器学习模型继续插入剩余伪量化节点(例如4bit伪量化节点和1bit伪量化节点),根据剩余伪量化节点对模型进行量化感知训练,直至将多种类型的伪量化节点中的所有伪量化节点均插入至机器学习模型为止,从而结束整个循环过程,以得到训练好的机器学习模型。
图5中示意性示出了训练模型的整体流程图,参考图5中所示,主要包括以下步骤:
在步骤S501中,使用浮点精度训练机器学习模型。
在步骤S502中,判断机器学习模型是否收敛。若是,则转至步骤S503。
在步骤S503中,对权重进行跨层权重正则化处理,即权重CLE。
在步骤S504中,确定量化信息。
在步骤S505中,添加16bit伪量化节点。
在步骤S506中,使用16bit伪量化节点训练模型。
在步骤S507中,判断机器学习模型是否收敛。若是,则转至步骤S508。
在步骤S508中,添加12bit伪量化节点。
在步骤S509中,使用12bit伪量化节点训练模型。
在步骤S510中,判断机器学习模型是否收敛。若是,则转至步骤S511。
在步骤S511中,添加10bit伪量化节点。
在步骤S512中,使用10bit伪量化节点训练模型。
在步骤S513中,判断机器学习模型是否收敛。若是,则转至步骤S514。
在步骤S514中,添加8bit伪量化节点。
在步骤S515中,使用8bit伪量化节点训练模型。
在步骤S516中,部署至终端设备。
本公开实施例中的技术方案,对于某一种量化方案而言,通过多个类型的伪量化节点实现伪量化运算,从16bit到8bit的渐进收缩式的训练方式对网络进行量化训练,避免了不经过多个类型的伪量化运算直接从16bit变换到8bit导致的局限性,能够通过多个类型的伪量化运算逐步对网络进行量化训练,将量化损失分阶段引入量化训练过程,避免训练过程量化产生的损失过大,减小直接进行转换的量化误差,不会影响网络收敛的方向。逐渐逼近在量化推理时的全局最优权重,从而提高部署时量化模型的推理精度,提高了模型的稳定性和准确性。
在使用伪量化节点对机器学习模型进行量化感知训练时,可以通过量化和反量化实现。在进行量化的过程即浮点数变化到定点数的过程中,可以根据量化参数来进行量化。量化参数就是用来保证浮点区间内的变量都能无一缺漏的映射到要量化bit数的取值区间内。量化参数可以包括尺度scale和零点zeropoint。尺度和零点是在量化过程中,需要把浮点数的最小值min和最大值max分别线性映射为0到255,从而计算出尺度和零点。其中,尺度可以根据最小值与最大值的差值与数据范围的比值而确定。零点可以根据最小值与尺度的比值而确定。
在确定尺度Q和零点RQM之后,可以根据尺度和零点来对权重进行量化运算。可以根据量化参数和用于表示权重的原始浮点数量化为定点数,例如先计算原始浮点数与尺度的乘积,再经过round函数对乘积进行取整得到取整结果作为中间值,然后计算中间值与零点之间的差值,以进行量化,具体为:
Def Quant(Vx,Q,ROM):return round(Q*Vx)-RQM
进一步地,可以根据量化参数还原回浮点数,例如根据定点数与零点之和与尺度的比值返回浮点数,以进行反量化,具体为:
Def QuantRevert(VxQuant,Q,ROM):return(VxQuant+RQM)/Q
本公开实施例中,可以对权重和特征图分别进行量化感知训练。图6中示意性示出了进行量化感知的流程图,参考图6中所示,主要包括以下步骤:
在步骤S610中,根据多个类型的伪量化节点对权重进行伪量化运算,并对输入参数和量化后的权重进行卷积操作,得到卷积结果;
在步骤S620中,对所述卷积结果进行偏置计算,对偏置结果进行激活操作得到激活结果,并对激活结果对应的特征图进行伪量化运算,以进行量化感知训练。
参考图7中的图A所示,卷积层Conv的输入参数input和权重weights均是uint8格式,经过卷积运算,得到uint32的卷积结果。然后再进行偏置bias计算,最后将uint32结果量化到uint8,经过激活层relu6输出。图7中的图B是对应的量化感知训练方案。为了解决其中损失较大的技术问题,参考图7中的图B所示,在进行卷积运算前,将权重进行伪量化运算模拟权重的量化损失,并对输入参数和量化后的权重进行卷积操作,得到卷积结果;对所述卷积结果进行偏置计算得到偏置结果,对偏置结果进行激活操作得到激活结果,并对激活结果对应的特征图进行伪量化运算,以进行量化感知训练。需要说明的是,可以按照图7中的图B所示的方式,依次实现16bit量化、12bit量化、10bit量化、8bit量化,只是量化时的模型不同而已。当对权重和输出结果执行完8bit量化,可以得到训练好的机器学习模型。
需要说明的是,对于特征图而言,量化训练方式与权重量化相同,具体为:在确定尺度Q和零点RQM之后,可以根据尺度和零点来对特征图进行量化运算。可以根据量化参数和用于表示特征图的原始浮点数量化为定点数,例如先计算原始浮点数与尺度的乘积,再经过round函数对乘积进行取整得到取整结果作为中间值,然后计算中间值与零点之间的差值,以进行量化。进一步地,可以根据量化参数还原回浮点数,例如根据定点数与零点之和与尺度的比值返回浮点数,以进行反量化。
基于此,整个过程可以为:根据图像数据采用浮点精度训练一个机器学习模型,对机器学习模型的权重进行跨层权重正则化处理,确定需要进行推理的推理引擎的量化信息以及多个训练参数,根据多个训练参数为机器学习模型添加伪量化节点,并基于不同级别的伪量化节点渐进式对机器学习模型的权重和激活结果进行量化,以进行量化感知训练。
本公开实施例中,同时考虑了权重量化和特征图量化,能够从多个维度来进行模型量化训练,避免了只根据权重量化的局限性,提高了准确性和可靠性。除此之外,由于是通过不同类型的伪量化节点,逐渐对权重和特征图进行量化,将量化损失分阶段引入量化训练过程,避免训练过程中量化产生的损失过大的问题,避免了对网络收敛方向的影响,从而提高模型训练的精准度,提高模型准确性和可靠性。
除此之外,渐进式的训练方法,还可以用于神经网络剪枝等领域。该方案也可以和神经网络的剪枝以及蒸馏等方法结合进行综合的模型压缩优化。
本公开实施例中,还提供了一种对象处理方法,参考图8中所示,主要包括以下步骤:
在步骤S810中,获取待处理对象;
在步骤S820中,通过训练好的机器学习模型对所述待处理对象进行卷积操作,获取所述待处理对象对应的预测结果;其中,所述机器学习模型根据上述任意一项所述的模型训练方法训练得到。
本公开实施例中,待处理对象可以根据应用场景而确定,例如待处理图像或者是任何类型的文本、数据、语料等等。本公开实施例中,以待处理对象为待处理图像为例进行说明。实际应用时,只需将待处理对象输入至训练好的机器学习模型中进行卷积操作以提取待处理对象的特征数据,进而对特征数据进行预测处理,以得到待处理对象对应的预测结果。预测结果可以根据实际应用场景而确定,例如可以为人脸识别结果、图像类别等等。举例而言,将待处理图像输入至训练好的机器学习模型中,得到待处理图像对应的人脸识别结果。
本公开实施例中,在对机器学习模型进行量化感知训练之后,相对于从浮点数直接到定点数的量化过程而言,会有一个缓冲过程,因此准确性更高。并且,该技术方案任何一个机器学习模型都可以使用。能够使得模型运行在低功耗设备或者是异构平台,减小数据量,提高处理速度。
本公开实施例中提供了一种模型训练装置,参考图9中所示,该模型训练装置900可以包括:
模型获取模块901,用于获取机器学习模型,所述机器学习模型使用浮点精度训练得到;
权重处理模块902,用于对所述机器学习模型的权重进行跨层权重正则化处理,得到正则化后的权重;
量化信息确定模块903,用于确定推理引擎对应的量化信息,并基于所述量化信息确定多个训练参数;
量化训练模块904,用于基于所述多个训练参数对所述机器学习模型对应的正则化后的权重以及特征图进行量化感知训练,以得到训练好的机器学习模型。
在本公开的一种示例性实施例中,权重处理模块包括:正则化模块,用于对机器学习模型中当前层的权重的目标通道乘以第一参数,并对与当前层连接的下一层的权重的目标通道乘以第二参数,以对所述权重进行跨层权重正则化处理;其中,所述第一参数和所述第二参数的乘积为1。
在本公开的一种示例性实施例中,量化信息确定模块包括:类型确定模块,用于确定所述推理引擎的数据类型,并根据所述数据类型确定需要量化的数据范围。
在本公开的一种示例性实施例中,量化训练模块包括:伪量化运算模块,用于在所述机器学习模型中插入多个类型的伪量化节点,并根据所述多个类型的伪量化节点确定的训练参数,采用渐进式收缩方式对所述机器学习模型进行伪量化运算,以进行量化感知训练得到训练好的机器学习模型。
在本公开的一种示例性实施例中,伪量化运算模块包括:第一运算模块,用于在所述机器学习模型中插入当前类型的伪量化节点,并根据所述当前类型的伪量化节点对所述机器学习模型进行伪量化运算,以得到当前机器学习模型;第二运算模块,用于对所述当前机器学习模型插入下一类型的伪量化节点,并根据所述下一类型的伪量化节点对所述当前机器学习模型进行量化感知训练,得到下一机器学习模型;循环运算模块,用于为下一机器学习模型插入所有伪量化节点中的剩余伪量化节点,直至为下一机器学习模型插入多个类型的伪量化节点中的所有伪量化节点为止,以得到训练好的机器学习模型。
在本公开的一种示例性实施例中,伪量化运算模块包括:权重量化模块,用于根据多个类型的伪量化节点对权重进行伪量化运算,并对输入参数和量化后的权重进行卷积操作,得到卷积结果;特征图量化模块,用于对所述卷积结果进行偏置计算,对偏置结果进行激活操作得到激活结果,并对激活结果对应的特征图进行伪量化运算,以进行量化感知训练。
在本公开的一种示例性实施例中,第一运算模块包括:量化模块,用于根据量化参数对所述权重进行量化运算得到量化值;反量化模块,用于将所述量化值进行取整操作获取中间值,并根据所述量化参数对所述中间值进行反量化运算。
需要说明的是,上述模型训练装置中各模块的具体细节已经在对应的模型训练方法中进行了详细描述,因此此处不再赘述。
本公开实施例中还提供了一种对象处理装置,参考图10中所示,该对象处理装置1000可以包括:
对象获取模块1001,用于获取待处理对象;
预测模块1002,用于通过训练好的机器学习模型对所述待处理对象进行卷积操作,获取所述待处理对象对应的预测结果;其中,所述机器学习模型根据上述任意一项所述的模型训练方法训练得到。
图11示出了适于用来实现本公开示例性实施方式的电子设备的示意图。本公开的终端可以被配置为如图11所示电子设备的形式,然而,需要说明的是,图11示出的电子设备仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
本公开的电子设备至少包括处理器和存储器,存储器用于存储一个或多个程序,当一个或多个程序被处理器执行时,使得处理器可以实现本公开示例性实施方式的方法。
具体的,如图11所示,电子设备1100可以包括:处理器1110、内部存储器1121、外部存储器接口1122、通用串行总线(Universal Serial Bus,USB)接口1130、充电管理模块1140、电源管理模块1141、电池1142、天线1、天线2、移动通信模块1150、无线通信模块1160、音频模块1170、扬声器1171、受话器1172、麦克风1173、耳机接口1174、传感器模块1180、显示屏1190、摄像模组1191、指示器1192、马达1193、按键1194以及用户标识模块(SubscriberIdentification Module,SIM)卡接口1195等。其中传感器模块1180可以包括深度传感器、压力传感器、陀螺仪传感器、气压传感器、磁传感器、加速度传感器、距离传感器、接近光传感器、指纹传感器、温度传感器、触摸传感器、环境光传感器及骨传导传感器等。
可以理解的是,本申请实施例示意的结构并不构成对电子设备1100的具体限定。在本申请另一些实施例中,电子设备1100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或软件和硬件的组合实现。
处理器1110可以包括一个或多个处理单元,例如:处理器1110可以包括应用处理器、调制解调处理器、图形处理器、图像信号处理器、控制器、视频编解码器、数字信号处理器、基带处理器和/或神经网络处理器(Neural-etwork Processing Unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。另外,处理器1110中还可以设置存储器,用于存储指令和数据。本示例性实施方式中的图像处理方法可以由应用处理器、图形处理器或图像信号处理器来执行,当方法涉及到神经网络相关的处理时,可以由NPU来执行。
内部存储器1121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器1121可以包括存储程序区和存储数据区。外部存储器接口1122可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备1100的存储能力。
移动终端1100的通信功能可以通过移动通信模块、天线1、无线通信模块、天线2、调制解调处理器以及基带处理器等实现。天线1和天线2用于发射和接收电磁波信号。移动通信模块可以提供应用在移动终端1100上2G、3G、4G、5G等移动通信解决方案。无线通信模块可以提供应用在移动终端200上的无线局域网、蓝牙、近场通信等无线通信解决方案。
显示屏用于实现显示功能,如显示用户界面、图像、视频等。摄像模块用于实现拍摄功能,如拍摄图像、视频等。音频模块用于实现音频功能,如播放音频,采集语音等。电源模块用于实现电源管理功能,如为电池充电、为设备供电、监测电池状态等。
本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读存储介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现如下述实施例中所述的方法。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
此外,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
本领域技术人员在考虑说明书及实践这里公开的内容后,将容易想到本公开的其他实施例。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限。
Claims (12)
1.一种模型训练方法,其特征在于,包括:
获取机器学习模型,所述机器学习模型使用浮点精度训练得到;
对所述机器学习模型的权重进行跨层权重正则化处理,得到正则化后的权重;
确定推理引擎对应的量化信息,并基于所述量化信息确定多个训练参数;
基于所述多个训练参数,对所述机器学习模型对应的正则化后的权重以及特征图进行量化感知训练,以得到训练好的机器学习模型。
2.根据权利要求1所述的模型训练方法,其特征在于,所述对所述机器学习模型的权重进行跨层权重正则化处理,包括:
对机器学习模型中当前层的权重的目标通道乘以第一参数,并对与当前层连接的下一层的权重的目标通道乘以第二参数,以对所述权重进行跨层权重正则化处理;其中,所述第一参数和所述第二参数的乘积为1。
3.根据权利要求1所述的模型训练方法,其特征在于,所述确定推理引擎对应的量化信息,包括:
确定所述推理引擎的数据类型,并根据所述数据类型确定需要量化的数据范围。
4.根据权利要求1所述的模型训练方法,其特征在于,所述基于所述多个训练参数,对所述机器学习模型对应的正则化后的权重以及特征图进行量化感知训练,以得到训练好的机器学习模型,包括:
在所述机器学习模型中插入多个类型的伪量化节点,并根据所述多个类型的伪量化节点确定的训练参数,采用渐进式收缩方式对所述机器学习模型进行伪量化运算,以进行量化感知训练得到训练好的机器学习模型。
5.根据权利要求4所述的模型训练方法,其特征在于,所述在所述机器学习模型中插入多个类型的伪量化节点,并根据所述多个类型的伪量化节点确定的训练参数,采用渐进式收缩方式对所述机器学习模型进行伪量化运算,包括:
在所述机器学习模型中插入当前类型的伪量化节点,并根据所述当前类型的伪量化节点对所述机器学习模型进行伪量化运算,以得到当前机器学习模型;
对所述当前机器学习模型插入下一类型的伪量化节点,并根据所述下一类型的伪量化节点对所述当前机器学习模型进行量化感知训练,得到下一机器学习模型;
为下一机器学习模型插入所有伪量化节点中的剩余伪量化节点,直至为下一机器学习模型插入多个类型的伪量化节点中的所有伪量化节点为止,以得到训练好的机器学习模型。
6.根据权利要求4所述的模型训练方法,其特征在于,所述根据所述多个类型的伪量化节点确定的训练参数,采用渐进式收缩方式对所述机器学习模型进行伪量化运算,以进行量化感知训练得到训练好的机器学习模型,包括:
根据多个类型的伪量化节点对权重进行伪量化运算,并对输入参数和量化后的权重进行卷积操作,得到卷积结果;
对所述卷积结果进行偏置计算,对偏置结果进行激活操作得到激活结果,并对激活结果对应的特征图进行伪量化运算,以进行量化感知训练。
7.根据权利要求6所述的模型训练方法,其特征在于,所述根据当前类型的伪量化节点对权重进行伪量化运算,包括:
根据量化参数对所述权重进行量化运算得到量化值;
将所述量化值进行取整操作获取中间值,并根据所述量化参数对所述中间值进行反量化运算。
8.一种对象处理方法,其特征在于,包括:
获取待处理对象;
通过训练好的机器学习模型对所述待处理对象进行卷积操作,获取所述待处理对象对应的预测结果;其中,所述机器学习模型根据权利要求1-7中任意一项所述的模型训练方法训练得到。
9.一种模型训练装置,其特征在于,包括:
模型获取模块,用于获取机器学习模型,所述机器学习模型使用浮点精度训练得到;
权重处理模块,用于对所述机器学习模型的权重进行跨层权重正则化处理,得到正则化后的权重;
量化信息确定模块,用于确定推理引擎对应的量化信息,并基于所述量化信息确定多个训练参数;
量化训练模块,用于基于所述多个训练参数对所述机器学习模型对应的正则化后的权重以及特征图进行量化感知训练,以得到训练好的机器学习模型。
10.一种对象处理装置,其特征在于,包括:
对象获取模块,用于获取待处理对象;
预测模块,用于通过训练好的机器学习模型对所述待处理对象进行卷积操作,获取所述待处理对象对应的预测结果;其中,所述机器学习模型根据权利要求1-7中任意一项所述的模型训练方法训练得到。
11.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-7任意一项所述的模型训练方法或权利要求8所述的对象处理方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7任意一项所述的模型训练方法或权利要求8所述的对象处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210088006.3A CN114418121A (zh) | 2022-01-25 | 2022-01-25 | 模型训练方法、对象处理方法及装置、电子设备、介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210088006.3A CN114418121A (zh) | 2022-01-25 | 2022-01-25 | 模型训练方法、对象处理方法及装置、电子设备、介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114418121A true CN114418121A (zh) | 2022-04-29 |
Family
ID=81278039
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210088006.3A Pending CN114418121A (zh) | 2022-01-25 | 2022-01-25 | 模型训练方法、对象处理方法及装置、电子设备、介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114418121A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116011569A (zh) * | 2023-03-28 | 2023-04-25 | 山东浪潮科学研究院有限公司 | 一种量化误差调试方法、装置、设备及存储介质 |
CN116432715A (zh) * | 2023-06-14 | 2023-07-14 | 深圳比特微电子科技有限公司 | 一种模型压缩方法、装置和可读存储介质 |
CN116720563A (zh) * | 2022-09-19 | 2023-09-08 | 荣耀终端有限公司 | 一种提升定点神经网络模型精度的方法、装置及电子设备 |
WO2024065848A1 (en) * | 2022-09-30 | 2024-04-04 | Intel Corporation | Improving accuracy of machine learning operations by compensating for lower precision with scale shifting |
-
2022
- 2022-01-25 CN CN202210088006.3A patent/CN114418121A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116720563A (zh) * | 2022-09-19 | 2023-09-08 | 荣耀终端有限公司 | 一种提升定点神经网络模型精度的方法、装置及电子设备 |
CN116720563B (zh) * | 2022-09-19 | 2024-03-29 | 荣耀终端有限公司 | 一种提升定点神经网络模型精度的方法、装置及电子设备 |
WO2024065848A1 (en) * | 2022-09-30 | 2024-04-04 | Intel Corporation | Improving accuracy of machine learning operations by compensating for lower precision with scale shifting |
CN116011569A (zh) * | 2023-03-28 | 2023-04-25 | 山东浪潮科学研究院有限公司 | 一种量化误差调试方法、装置、设备及存储介质 |
CN116011569B (zh) * | 2023-03-28 | 2023-07-18 | 山东浪潮科学研究院有限公司 | 一种量化误差调试方法、装置、设备及存储介质 |
CN116432715A (zh) * | 2023-06-14 | 2023-07-14 | 深圳比特微电子科技有限公司 | 一种模型压缩方法、装置和可读存储介质 |
CN116432715B (zh) * | 2023-06-14 | 2023-11-10 | 深圳比特微电子科技有限公司 | 一种模型压缩方法、装置和可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114418121A (zh) | 模型训练方法、对象处理方法及装置、电子设备、介质 | |
KR20200111093A (ko) | 조건부 오토인코더를 이용한 가변-레이트 압축을 위한 장치 및 방법 | |
CN110490296A (zh) | 一种构造卷积神经网络(cnn)模型的方法和系统 | |
CN110413812B (zh) | 神经网络模型的训练方法、装置、电子设备及存储介质 | |
US20220329807A1 (en) | Image compression method and apparatus thereof | |
WO2020207174A1 (zh) | 用于生成量化神经网络的方法和装置 | |
CN116012488A (zh) | 风格化图像生成方法、装置、计算机设备和存储介质 | |
US20220237454A1 (en) | Linear neural reconstruction for deep neural network compression | |
CN113505883A (zh) | 一种神经网络训练方法以及装置 | |
CN113742082A (zh) | 应用资源分配方法及装置、计算机可读介质和终端 | |
CN110009101B (zh) | 用于生成量化神经网络的方法和装置 | |
CN114066914A (zh) | 一种图像处理方法以及相关设备 | |
WO2022246986A1 (zh) | 数据处理方法、装置、设备及计算机可读存储介质 | |
CN115238883A (zh) | 神经网络模型的训练方法、装置、设备及存储介质 | |
CN113411425A (zh) | 视频超分模型构建处理方法、装置、计算机设备和介质 | |
CN113284206A (zh) | 信息获取方法及装置、计算机可读存储介质、电子设备 | |
CN117726700A (zh) | 图像生成方法、装置、电子设备及存储介质 | |
CN116090543A (zh) | 模型压缩方法及装置、计算机可读介质和电子设备 | |
CN111915689A (zh) | 用于生成目标函数的方法、装置、电子设备和计算机可读介质 | |
CN115936092A (zh) | 神经网络模型量化方法及装置、存储介质及电子设备 | |
CN115983349A (zh) | 卷积神经网络的量化方法及装置、电子设备和存储介质 | |
CN116644783A (zh) | 模型训练方法、对象处理方法及装置、电子设备、介质 | |
CN113610228B (zh) | 神经网络模型的构建方法及装置 | |
CN118155270B (zh) | 模型训练方法、人脸识别方法及相关设备 | |
CN116070681A (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 |