CN115496200B - 神经网络量化模型训练方法、装置及设备 - Google Patents
神经网络量化模型训练方法、装置及设备 Download PDFInfo
- Publication number
- CN115496200B CN115496200B CN202211080897.4A CN202211080897A CN115496200B CN 115496200 B CN115496200 B CN 115496200B CN 202211080897 A CN202211080897 A CN 202211080897A CN 115496200 B CN115496200 B CN 115496200B
- Authority
- CN
- China
- Prior art keywords
- model
- floating point
- quantization
- sample image
- training sample
- 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.)
- Active
Links
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
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
技术领域
本申请涉及人工智能技术领域,尤其涉及一种神经网络量化模型训练方法、装置及设备。
背景技术
随着数据的急剧增长和算力的大幅提升,神经网络在计算机视觉领域发展迅速,推动了图像分类、目标检测、自然语言处理等应用的发展。
为了追求更高的准确度增益,很多神经网络架构探索在深度和宽度维度上的拓展,复杂度的提升导致参数量和运算量的剧烈上升,无疑增大了存储和计算资源消耗。因此,对神经网络模型进行压缩,以使得神经网络模型能够适应于轻量化设备成为趋势。
由于目前主要是通过准确率来对压缩后的神经网络模型进行评价的,这种评价方式,存在压缩前后的神经网络模型之间的等价性较低的情形,同时准确率较浮点模型有较大程度下降,会在将神经网络模型迁移到轻量化设备的过程中,带来应用和维护上的困难。
发明内容
本申请提供一种神经网络量化模型训练方法、装置及设备,以减小神经网络模型迁移到轻量化设备上带来的应用和维护上的困难。
第一方面,本申请提供一种神经网络量化模型训练方法,包括:
获取浮点模型对应的量化模型,所述量化模型为对所述浮点模型进行量化压缩后的模型;
根据所述浮点模型和所述量化模型分别对训练样本处理,得到所述浮点模型输出的第一检测结果和所述量化模型输出的第二检测结果;
根据所述第一检测结果和所述第二检测结果,对所述量化模型的参数进行调整。
在一种可能的实施方式中,所述根据所述浮点模型和所述量化模型分别对训练样本处理,得到所述浮点模型输出的第一检测结果和所述量化模型输出的第二检测结果,包括:
根据所述训练样本获取对应的浮点样本;
对所述浮点样本进行转换处理,得到对应的定点样本;
将所述浮点样本输入至所述浮点模型,得到所述浮点模型输出的所述第一检测结果;
将所述定点样本输入至所述量化模型,得到所述量化模型输出的所述第二检测结果。
在一种可能的实施方式中,所述根据所述第一检测结果和所述第二检测结果,对所述量化模型的参数进行调整,包括:
根据所述训练样本的标注结果、所述第一检测结果和所述第二检测结果,对所述量化模型的参数进行调整。
在一种可能的实施方式中,所述根据所述训练样本的标注结果、所述第一检测结果和所述第二检测结果,对所述量化模型的参数进行调整,包括:
根据所述第一检测结果和所述第二检测结果,获取所述训练样本在所述浮点模型和所述量化模型之间的等价性损失值;
根据所述标注结果和所述第二检测结果,获取所述训练样本的准确率损失值;
根据所述等价性损失值和所述准确率损失值,对所述量化模型的参数进行调整。
在一种可能的实施方式中,所述根据所述等价性损失值和所述准确率损失值,对所述量化模型的参数进行调整,包括:
获取等价性的第一权重和准确率的第二权重;
根据所述第一权重值、所述等价性损失值、所述第二权重值以及所述准确率损失值,获取总的损失值;
根据所述总的损失值对所述量化模型的参数进行调整。
在一种可能的实施方式中,所述方法还包括:
将多个测试样本输入至所述浮点模型,得到各所述测试样本对应的第三检测结果;
将所述多个测试样本输入至所述量化模型,得到各所述测试样本对应的第四检测结果;
根据各所述测试样本对应的第三检测结果和各所述测试样本对应的第四检测结果,获取所述浮点模型和所述量化模型的等价率。
在一种可能的实施方式中,所述根据各所述测试样本对应的第三检测结果和各所述测试样本对应的第四检测结果,获取所述浮点模型和所述量化模型的等价率,包括:
针对任意测试样本,若所述测试样本对应的第三检测结果和对应的第四检测结果相同,则将所述测试样本确定为等价样本;
根据所述等价样本的数量和所述多张测试样本的数量,获取所述等价率。
第二方面,本申请提供一种神经网络量化模型训练装置,包括:
获取模块,用于获取浮点模型对应的量化模型,所述量化模型为对所述浮点模型进行量化压缩后的模型;
第一处理模块,用于根据所述浮点模型和所述量化模型分别对训练样本处理,得到所述浮点模型输出的第一检测结果和所述量化模型输出的第二检测结果;
第二处理模块,用于根据所述第一检测结果和所述第二检测结果,对所述量化模型的参数进行调整。
在一种可能的实施方式中,所述第一处理模块具体用于:
根据所述训练样本获取对应的浮点样本;
对所述浮点样本进行转换处理,得到对应的定点样本;
将所述浮点样本输入至所述浮点模型,得到所述浮点模型输出的所述第一检测结果;
将所述定点样本输入至所述量化模型,得到所述量化模型输出的所述第二检测结果。
在一种可能的实施方式中,所述第二处理模块具体用于:
根据所述训练样本的标注结果、所述第一检测结果和所述第二检测结果,对所述量化模型的参数进行调整。
在一种可能的实施方式中,所述第二处理模块具体用于:
根据所述第一检测结果和所述第二检测结果,获取所述训练样本在所述浮点模型和所述量化模型之间的等价性损失值;
根据所述标注结果和所述第二检测结果,获取所述训练样本的准确率损失值;
根据所述等价性损失值和所述准确率损失值,对所述量化模型的参数进行调整。
在一种可能的实施方式中,所述第二处理模块具体用于:
获取等价性的第一权重和准确率的第二权重;
根据所述第一权重值、所述等价性损失值、所述第二权重值以及所述准确率损失值,获取总的损失值;
根据所述总的损失值对所述量化模型的参数进行调整。
在一种可能的实施方式中,所述第二处理模块还用于:
将多个测试样本输入至所述浮点模型,得到各所述测试样本对应的第三检测结果;
将所述多个测试样本输入至所述量化模型,得到各所述测试样本对应的第四检测结果;
根据各所述测试样本对应的第三检测结果和各所述测试样本对应的第四检测结果,获取所述浮点模型和所述量化模型的等价率。
在一种可能的实施方式中,所述第二处理模块具体还用于:
针对任意测试样本,若所述测试样本对应的第三检测结果和对应的第四检测结果相同,则将所述测试样本确定为等价样本;
根据所述等价样本的数量和所述多张测试样本的数量,获取所述等价率。
第三方面,本申请提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面任一项所述的神经网络量化模型训练方法。
第四方面,本申请提供一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面任一项所述的神经网络量化模型训练方法。
第五方面,本申请提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如第一方面任一项所述的神经网络量化模型训练方法。
本申请实施例提供的神经网络量化模型训练方法、装置及设备,首先获取浮点模型对应的量化模型,然后根据浮点模型和量化模型分别对训练样本处理,得到浮点模型输出的第一检测结果和量化模型输出的第二检测结果,从而根据第一检测结果和第二检测结果对量化模型的参数进行调整。量化模型为对浮点模型进行量化压缩后的模型,针对量化压缩后得到的量化模型与浮点模型之间的等价性不高的问题,本申请实施例的方案,采用浮点模型推断训练样本对应的第一检测结果,然后根据第一检测结果和第二检测结果之间的差别来训练量化模型,从而能够使得浮点模型和量化模型的检测结果更加相近,即浮点模型和量化模型之间的等价性较高,进一步提高了量化模型准确率,进而减小了量化模型迁移到轻量化设备上带来应用和维护上的困难。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的应用场景示意图;
图2为本申请实施例提供的神经网络量化模型训练方法的流程示意图;
图3为本申请实施例提供的模型参数调整的流程示意图;
图4为本申请实施例提供的量化模型训练过程示意图;
图5为本申请实施例提供的等价性测试流程示意图;
图6为本申请实施例提供的量化模型测试过程示意图;
图7为本申请实施例提供的神经网络量化模型训练装置的结构示意图;
图8为本申请实施例提供的一种电子设备的实体结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
随着数据的急剧增长和算力的大幅提升,神经网络在计算机视觉领域发展迅速,推动了图像分类、目标检测、自然语言处理等应用的发展。
为了追求更高的准确度增益,很多神经网络架构探索在深度和宽度维度上的拓展,复杂度的提升导致参数量和运算量的剧烈上升,无疑增大了存储和计算资源消耗。以ResNet50为例,其参数量已经达到了2.5×107,计算量超过4.1×109FLOPs。如何在资源和能量有限的设备中实现日益庞大的神经网络已成为巨大的挑战。
神经网络模型压缩是通过改变网络结构或者减少权重表示位数等方法减少模型的参数量和存储空间,能够在不影响网络性能的情况下减少计算资源和存储空间的消耗,为解决上述问题提供了可行思路。神经网络模型压缩主要包括剪枝、量化、知识蒸馏、紧凑神经网络设计等方法,其中,量化主要是改变参数的表示位数,通过减少参数的比特数来达到模型压缩的效果。
而现有的神经网络量化方法大多数是以准确率作为量化模型的评价指标,而忽略了浮点模型与量化模型之间的等价性关系,同时量化模型的准确率较浮点模型有较大程度下降。由于浮点模型主要在PC端大型设备上,而量化模型要移植到轻量化设备上,现有的神经网络量化方法在将浮点模型迁移到轻量化设备的过程中,会带来应用和维护上的困难。
基于此,本申请实施例提供一种神经网络量化模型训练方法。首先结合图1对本申请的一种适用的应用场景进行介绍。
图1为本申请实施例提供的应用场景示意图,如图1所示,包括服务器10和客户端11,服务器10和客户端11之间通过有线或无线连接。
客户端11用于向服务器10发送训练样本,然后服务器10在接收到训练样本后,根据训练样本来训练量化模型,进而可以将该量化模型迁移到轻量化设备上进行应用。训练样本例如可以包括图1中示例的图像12。可以理解的是,若量化模型为图像检测、图像识别这一类与图像相关的模型,则训练样本为图像,若量化模型为其他类的模型,则训练样本也相应不同,例如若量化模型为语音识别这一类的模型,则相应的训练样本为语音。在实际中,训练样本的数量可以包括多个,在图1中以图像12为训练样本为例,并不构成实际训练样本的数量和类型的限定。
在图1中对本申请实施例的一种应用场景进行了介绍,下面基于图1示例的应用场景,结合图2对本申请实施例的方案进行介绍。
图2为本申请实施例提供的神经网络量化模型训练方法的流程示意图,如图2所示,该方法可以包括:
S21,获取浮点模型对应的量化模型,量化模型为对浮点模型进行量化压缩后的模型。
浮点模型为压缩处理之前的模型,可以应用于PC类的大型设备上,浮点模型的参数量和计算量通常较大,网络结构也比较复杂。量化模型为对浮点模型进行量化压缩处理之后得到的模型,其中,量化压缩为神经网络模型压缩的一种,除了量化压缩外,其他的压缩方式还包括剪枝、知识蒸馏、紧凑神经网络等等。
量化压缩处理主要是改变浮点模型中参数的表示位数,通过减少参数的比特在来达到模型压缩的目的。
S22,根据浮点模型和量化模型分别对训练样本处理,得到浮点模型输出的第一检测结果和量化模型输出的第二检测结果。
由于对浮点模型进行量化压缩处理后,模型的参数表示发生了变化,因此需要进一步对量化模型进行训练。
具体的,可以获取训练样本,然后根据浮点模型和量化模型分别对训练样本处理,得到浮点模型输出的第一检测结果,以及量化模型输出的第二检测结果,第一检测结果和第二检测结果可能相同,也可能不同。
针对不同类型的神经网络模型,训练样本也可能不同,得到的检测结果的类型也可能不同。例如若浮点模型和量化模型为对图像进行分类的模型,则训练样本为图像,得到的第一检测结果和第二检测结果为图像的分类结果;若浮点模型和量化模型为对图像进行语义识别,则训练样本为图像,得到的第一检测结果和第二检测结果为图像的语义识别结果;若浮点模型和量化模型为对语音进行识别,则训练样本为语音,得到的第一检测结果和第二检测结果为语音识别结果,等等,本实施例对此不做限定。
S23,根据第一检测结果和第二检测结果,对量化模型的参数进行调整。
在得到浮点模型对训练样本处理后的第一检测结果,以及量化模型对该训练样本处理后的第二检测结果后,可以根据第一检测结果和第二检测结果,来对量化模型的参数进行调整,从而完成对量化模型的一轮训练。
在实际训练中,可以获取多组训练样本,针对任意一组训练样本,均可以采用S21至S23的方式对量化模型的参数进行调整,直至满足模型训练的终止条件,即可得到训练好的量化模型。
本申请实施例提供的神经网络量化模型训练方法,首先获取浮点模型对应的量化模型,然后根据浮点模型和量化模型分别对训练样本处理,得到浮点模型输出的第一检测结果和量化模型输出的第二检测结果,从而根据第一检测结果和第二检测结果对量化模型的参数进行调整。量化模型为对浮点模型进行量化压缩后的模型,针对量化压缩后得到的量化模型与浮点模型之间的等价性不高的问题,本申请实施例的方案,采用浮点模型推断训练样本对应的第一检测结果,然后根据第一检测结果和第二检测结果之间的差别来训练量化模型,从而能够使得浮点模型和量化模型的检测结果更加相近,即浮点模型和量化模型之间的等价性较高,进一步提高了量化模型准确率,进而减小了量化模型迁移到轻量化设备上带来应用和维护上的困难。
在上述任意实施例的基础上,下面结合附图对本申请的方案进行进一步介绍。
浮点模型中通常是采用浮点型数据来表示模型中的各项参数,参数的表示位数较多,浮点模型可以对输入的浮点数据进行处理。而量化模型由于是对浮点模型进行量化压缩处理后得到的模型,量化模型中是通过整型数据来表示各项参数的,量化模型可以对输入的整型数据进行处理。
因此,浮点模型和量化模型处理的数据略有差异,针对浮点模型和量化模型之间的差异,在获取训练样本后,可以根据训练样本获取对应的浮点样本,然后对浮点样本进行转换处理,得到对应的定点样本,其中,浮点样本可以通过浮点型数据表示,定点样本可以通过整型数据表示。
针对训练样本中的任意数据为例,可以对该数据进行归一化处理,得到对应的浮点数据。例如若训练样本中总共包括5个数据,分别是5、35、27、53、11,则可以对这5个数据分别进行归一化处理。一种归一化处理的方式是,计算这5个数据的和,然后根据这5个数据的和进行归一化。这5个数据的和为131,则归一化后对应的5个浮点型数据依次为5/131、35/131、27/131、53/131、11/131(实际中可以用浮点型数据对其进行表示,本实施例中用分数表示仅仅是为了示例)。需要说明的是,根据训练样本得到浮点样本,可以采用归一化处理的方式,也可以采用其他的方式,最终得到的浮点样本中的数据的类型为浮点型。
在得到浮点样本后,可以对浮点样本进行转换处理,得到对应的定点样本。针对浮点样本中的任意数据为例,该数据为浮点型数据,将其转换为整型数据,即可得到定点样本。转换的方式例如可以包括定点转换、向上取整、向下取整、平均值取整等方式。
针对训练样本中的任意一个数据,均可以采用上述方式进行转换。以训练样本为样本图像为例,该样本图像中包括的数据即为像素点的像素值,对像素值采用上述方式变换,即可根据该样本图像得到对应的浮点样本图像和定点样本图像。
在得到训练样本对应的浮点样本和定点样本后,可以将浮点样本输入至浮点模型,根据浮点模型对浮点样本处理,输出第一检测结果;然后,将定点样本输入至量化模型,根据量化模型对定点样本处理,得到第二检测结果。
在得到第一检测结果和第二检测结果后,需要根据第一检测结果和第二检测结果训练量化模型,下面结合图3对该过程进行介绍。
图3为本申请实施例提供的模型参数调整的流程示意图,如图3所示,包括:
S31,获取训练样本的标注结果。
可以由标注人员对训练样本进行标注,得到标注结果。例如若浮点模型为图像分类模型,则标注结果为标注训练样本的图像类别;若浮点模型为语音识别模型,则标注结果为训练样本的语音识别结果。然后服务器获取该标注结果。
S32,根据标注结果、第一检测结果和第二检测结果,对量化模型的参数进行调整。
标注结果准确反映了该训练样本的检测结果,因此根据标注结果和第二检测结果之间的差别能够反映量化模型之间的准确性。而第一检测结果为浮点模型对训练样本的输出结果,因此根据第一检测结果和第二检测结果之间的差别能够反映浮点模型和量化模型对同一输入处理的结果差异,反映的是浮点模型和量化模型之间的等价性。
具体的,首先根据第一检测结果和第二检测结果,获取训练样本在浮点模型和量化模型之间的等价性损失值。例如,可以计算第一检测结果和第二检测结果之间的均方根误差,将第一检测结果和第二检测结果之间的均方根误差作为该等价性损失值。例如,可以计算第一检测结果和第二检测结果之间的差值,将该差值的绝对值作为该等价性损失值。例如,可以计算第一检测结果和第二检测结果之间的交叉熵,将该交叉熵作为该等价性损失值,等等。可以理解的是,基于第一检测结果和第二检测结果计算浮点模型和量化模型之间的等价性损失值的方式有多种,并不限于第一检测结果和第二检测结果之间的均方根误差、第一检测结果和第二检测结果之间的差值的绝对值以及第一检测结果和第二检测结果之间的交叉熵这三种,本实施例仅以这三种计算等价性损失值的方式举例介绍,并不构成计算等价性损失值的限定。
然后根据标注结果和第二检测结果,获取训练样本的准确率损失值。例如,可以计算标注结果和第二检测结果之间的交叉熵,然后将标注结果和第二检测结果之间的交叉熵作为该准确率损失值。
在得到等价性损失值和准确率损失值后,可以根据等价性损失值和准确率损失值对量化模型的参数进行调整。例如,可以将等价性损失值和准确率损失值相加,得到总的损失值,然后根据总的损失值对量化模型的参数进行调整。例如,也可以获取等价性的第一权重和准确率的第二权重,然后根据第一权重值、等价性损失值、第二权重值以及准确率损失值,获取总的损失值,从而根据总的损失值对量化模型的参数进行调整。
上述过程可以结合图4进行理解。图4为本申请实施例提供的量化模型训练过程示意图,如图4所示,在获取训练样本后,首先根据训练样本得到浮点样本和定点样本,浮点样本输入至浮点模型,由浮点模型对浮点样本处理,得到第一检测结果,定点样本输入至量化模型,由量化模型对定点样本处理,得到第二检测结果。
然后,计算第一检测结果和第二检测结果之间的均方根误差,得到等价性损失值,计算第二检测结果和标注结果之间的交叉熵,得到准确率损失值,结合等价性和准确率各自的权重,得到总的损失值。
在图4的示例中,以λ表示权重,其中λ为等价性的第一权重,1-λ为准确率的第二权重,根据第一权重和第二权重来计算总的损失值,如下式(1)所示:
L=λL1+(1-λ)L2 (1)
其中,L为总的损失值,L1为等价性损失值,L2为准确率损失值,λ为第一权重,(1-λ)为第二权重,λ∈[0,1]。
如上式(1)所示,λ的取值决定了等价性损失值和准确率损失值各自的权重,当只考虑浮点模型和量化模型之间的等价性时,可以将λ取值为1,当希望同时兼顾等价性和准确率时,可以将λ取值小于1,λ的取值的浮动也反映了量化模型是更倾向于等价性还是准确率。
在上述实施例中,介绍了量化模型的一次训练过程。在实际训练中,可能存在多组训练样本,任意一组训练样本对量化模型的训练过程均可以参考上述图1-图4实施例的介绍,直至达到模型训练终止条件时,停止训练,即可得到训练完成的量化模型。
在量化模型训练完成后,可以对量化模型与浮点模型之间的等价性进行测试,下面结合图5对该过程进行介绍。
图5为本申请实施例提供的等价性测试流程示意图,如图5所示,包括:
S51,将多个测试样本输入至浮点模型,得到各测试样本对应的第三检测结果。
测试样本的数量通常有多个,分别将这些测试样本输入至浮点模型,即可得到各个测试样本对应的第三检测结果,第三检测结果为浮点模型对测试样本进行处理后输出的结果。
S52,将多个测试样本输入至量化模型,得到各测试样本对应的第四检测结果。
在上述实施例中介绍了量化模型的训练过程,在量化模型训练完成后,将这多个测试样本分布输入至该量化模型,即可得到各个测试样本对应的第四检测结果,第四检测结果为量化模型对测试样本进行处理后输出的结果,其中,S52中的多个测试样本与S51中的多个测试样本相同。
S53,根据各测试样本对应的第三检测结果和各测试样本对应的第四检测结果,获取浮点模型和量化模型的等价率。
针对任意测试样本,若该测试样本对应的第三检测结果和对应的第四检测结果相同,即浮点模型和量化模型分别对该测试样本处理后输出的检测结果相同,则将该测试样本确定为等价样本;若该测试样本对应的第三检测结果和对应的第四检测结果不同,即浮点模型和量化模型分别对该测试样本处理后输出的检测结果不同,则将该测试样本确定为非等价样本。
在确定了各个测试样本是否为等价样本后,根据等价样本的数量和多张测试样本的数量,获取浮点模型和量化模型的等价率。例如,可以将等价样本的数量占总的测试样本的数量的占比作为浮点模型和量化模型的等价率。
上述过程可以结合图6进行理解。图6为本申请实施例提供的量化模型测试过程示意图,如图6所示,多个测试样本分别输入至浮点模型和量化模型,浮点模型对多个测试样本处理,得到各个测试样本对应的第三检测结果,量化模型对多个测试样本处理,得到各个测试样本对应的第四检测结果。
然后,判断各个测试样本对应的第三检测结果和第四检测结果是否相同,从而得到浮点模型和量化模型的等价率。根据浮点模型和量化模型的等价率,可以判断量化是否符合要求。
综上所述,本申请实施例的方案,针对量化压缩后得到的量化模型与浮点模型之间的等价性不高的问题,采用浮点模型推断训练样本对应的第一检测结果,然后根据第一检测结果和第二检测结果之间的差别来训练量化模型,从而能够使得浮点模型和量化模型的检测结果更加相近,即浮点模型和量化模型之间的等价性较高,进一步提高了量化模型准确率,进而减小了量化模型迁移到轻量化设备上带来应用和维护上的困难。
图7为本申请实施例提供的神经网络量化模型训练装置的结构示意图,如图7所示,该装置包括:
获取模块71,用于获取浮点模型对应的量化模型,所述量化模型为对所述浮点模型进行量化压缩后的模型;
第一处理模块72,用于根据所述浮点模型和所述量化模型分别对训练样本处理,得到所述浮点模型输出的第一检测结果和所述量化模型输出的第二检测结果;
第二处理模块73,用于根据所述第一检测结果和所述第二检测结果,对所述量化模型的参数进行调整。
需要说明的是,本实施例中针对任意一个训练样本,均可以由获取模块71、第一处理模块72和第二处理模块73执行上述处理过程,本实施例中以一个训练样本为例,在上述方法实施例中对该实现过程进行了介绍。可以理解的是,当输入多组训练样本时,其实现过程是类似的,获取模块71、第一处理模块72和第二处理模块73对多组训练样本中的任意一组训练样本的处理过程均可以参见上述实施例的相关介绍,而并不要求第一处理模块72根据浮点模型和量化模型对所有的训练样本处理后,才能由第二处理模块73根据第一检测结果和第二检测结果对量化模型的参数进行调整。
在一种可能的实施方式中,所述第一处理模块72具体用于:
根据所述训练样本获取对应的浮点样本;
对所述浮点样本进行转换处理,得到对应的定点样本;
将所述浮点样本输入至所述浮点模型,得到所述浮点模型输出的所述第一检测结果;
将所述定点样本输入至所述量化模型,得到所述量化模型输出的所述第二检测结果。
在一种可能的实施方式中,所述第二处理模块73具体用于:
根据所述训练样本的标注结果、所述第一检测结果和所述第二检测结果,对所述量化模型的参数进行调整。
在一种可能的实施方式中,所述第二处理模块73具体用于:
根据所述第一检测结果和所述第二检测结果,获取所述训练样本在所述浮点模型和所述量化模型之间的等价性损失值;
根据所述标注结果和所述第二检测结果,获取所述训练样本的准确率损失值;
根据所述等价性损失值和所述准确率损失值,对所述量化模型的参数进行调整。
在一种可能的实施方式中,所述第二处理模块73具体用于:
获取等价性的第一权重和准确率的第二权重;
根据所述第一权重值、所述等价性损失值、所述第二权重值以及所述准确率损失值,获取总的损失值;
根据所述总的损失值对所述量化模型的参数进行调整。
在一种可能的实施方式中,所述第二处理模块73还用于:
将多个测试样本输入至所述浮点模型,得到各所述测试样本对应的第三检测结果;
将所述多个测试样本输入至所述量化模型,得到各所述测试样本对应的第四检测结果;
根据各所述测试样本对应的第三检测结果和各所述测试样本对应的第四检测结果,获取所述浮点模型和所述量化模型的等价率。
在一种可能的实施方式中,所述第二处理模块73具体还用于:
针对任意测试样本,若所述测试样本对应的第三检测结果和对应的第四检测结果相同,则将所述测试样本确定为等价样本;
根据所述等价样本的数量和所述多张测试样本的数量,获取所述等价率。
本申请实施例提供的神经网络量化模型训练装置,用于执行上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
图8示例了一种电子设备的实体结构示意图,如图8所示,该电子设备可以包括:处理器(processor)810、通信接口(Communications Interface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的逻辑指令,以执行神经网络量化模型训练方法,该方法包括:获取浮点模型对应的量化模型,所述量化模型为对所述浮点模型进行量化压缩后的模型;根据所述浮点模型和所述量化模型分别对训练样本处理,得到所述浮点模型输出的第一检测结果和所述量化模型输出的第二检测结果;根据所述第一检测结果和所述第二检测结果,对所述量化模型的参数进行调整。
此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本申请还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的神经网络量化模型训练方法,该方法包括:获取浮点模型对应的量化模型,所述量化模型为对所述浮点模型进行量化压缩后的模型;根据所述浮点模型和所述量化模型分别对训练样本处理,得到所述浮点模型输出的第一检测结果和所述量化模型输出的第二检测结果;根据所述第一检测结果和所述第二检测结果,对所述量化模型的参数进行调整。
又一方面,本申请还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的神经网络量化模型训练方法,该方法包括:获取浮点模型对应的量化模型,所述量化模型为对所述浮点模型进行量化压缩后的模型;根据所述浮点模型和所述量化模型分别对训练样本处理,得到所述浮点模型输出的第一检测结果和所述量化模型输出的第二检测结果;根据所述第一检测结果和所述第二检测结果,对所述量化模型的参数进行调整。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (8)
1.一种神经网络量化模型训练方法,其特征在于,包括:
获取浮点模型对应的量化模型,所述浮点模型为图像分类模型或语义识别模型,所述量化模型为对所述浮点模型进行量化压缩后的模型;
在所述浮点模型为所述图像分类模型的情况下,根据第一训练样本图像获取对应的第一浮点样本图像;对所述第一浮点样本图像进行转换处理,得到对应的第一定点样本图像;将所述第一浮点样本图像输入至所述浮点模型,得到所述浮点模型输出的所述第一训练样本图像的图像分类结果;将所述第一定点样本图像输入至所述量化模型,得到所述量化模型输出的所述第一训练样本图像的图像分类结果;根据所述浮点模型输出的所述第一训练样本图像的图像分类结果和所述量化模型输出的所述第一训练样本图像的图像分类结果,获取所述第一训练样本图像在所述浮点模型和所述量化模型之间的等价性损失值;根据所述第一训练样本图像在所述浮点模型和所述量化模型之间的等价性损失值,对所述量化模型的参数进行调整,以得到训练好的量化模型,所述训练好的量化模型用于对图像进行图像分类;或者,
在所述浮点模型为所述语义识别模型的情况下,根据第二训练样本图像获取对应的第二浮点样本图像;对所述第二浮点样本图像进行转换处理,得到对应的第二定点样本图像;将所述第二浮点样本图像输入至所述浮点模型,得到所述浮点模型输出的所述第二训练样本图像的语义识别结果;将所述第二定点样本图像输入至所述量化模型,得到所述量化模型输出的所述第二训练样本图像的语义识别结果;根据所述浮点模型输出的所述第二训练样本图像的语义识别结果和所述量化模型输出的所述第二训练样本图像的语义识别结果,获取所述第二训练样本图像在所述浮点模型和所述量化模型之间的等价性损失值;根据所述第二训练样本图像在所述浮点模型和所述量化模型之间的等价性损失值,对所述量化模型的参数进行调整,以得到训练好的量化模型,所述训练好的量化模型用于对图像进行语义识别。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一训练样本图像在所述浮点模型和所述量化模型之间的等价性损失值,对所述量化模型的参数进行调整,包括:
根据所述第一训练样本图像的标注结果和所述浮点模型输出的所述第一训练样本图像的图像分类结果,获取所述第一训练样本图像的准确率损失值;根据所述第一训练样本图像在所述浮点模型和所述量化模型之间的等价性损失值和所述第一训练样本图像的准确率损失值,对所述量化模型的参数进行调整;
或者,
所述根据所述第二训练样本图像在所述浮点模型和所述量化模型之间的等价性损失值,对所述量化模型的参数进行调整,包括:
根据所述第二训练样本图像的标注结果和所述浮点模型输出的所述第二训练样本图像的语义识别结果,获取所述第二训练样本图像的准确率损失值;根据所述第二训练样本图像在所述浮点模型和所述量化模型之间的等价性损失值和所述第二训练样本图像的准确率损失值,对所述量化模型的参数进行调整。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一训练样本图像在所述浮点模型和所述量化模型之间的等价性损失值和所述第一训练样本图像的准确率损失值,对所述量化模型的参数进行调整,包括:
获取等价性的第一权重和准确率的第二权重;根据所述第一权重、所述第一训练样本图像在所述浮点模型和所述量化模型之间的等价性损失值、所述第二权重以及所述第一训练样本图像的准确率损失值,获取总的损失值;根据所述总的损失值对所述量化模型的参数进行调整;
所述根据所述第二训练样本图像在所述浮点模型和所述量化模型之间的等价性损失值和所述第二训练样本图像的准确率损失值,对所述量化模型的参数进行调整,包括:
获取等价性的第一权重和准确率的第二权重;根据所述第一权重、所述第二训练样本图像在所述浮点模型和所述量化模型之间的等价性损失值、所述第二权重以及所述第二训练样本图像的准确率损失值,获取总的损失值;根据所述总的损失值对所述量化模型的参数进行调整。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
在所述浮点模型为所述图像分类模型的情况下,将多个测试样本输入至所述浮点模型,得到各所述测试样本对应的第三检测结果;将所述多个测试样本输入至所述量化模型,得到各所述测试样本对应的第四检测结果;根据各所述测试样本对应的第三检测结果和各所述测试样本对应的第四检测结果,获取所述浮点模型和所述量化模型的等价率;
在所述浮点模型为所述语义识别模型的情况下,将多个测试样本输入至所述浮点模型,得到各所述测试样本对应的第三检测结果;将所述多个测试样本输入至所述量化模型,得到各所述测试样本对应的第四检测结果;根据各所述测试样本对应的第三检测结果和各所述测试样本对应的第四检测结果,获取所述浮点模型和所述量化模型的等价率。
5.根据权利要求4所述的方法,其特征在于,所述根据各所述测试样本对应的第三检测结果和各所述测试样本对应的第四检测结果,获取所述浮点模型和所述量化模型的等价率,包括:
针对任意测试样本,若测试样本对应的第三检测结果和对应的第四检测结果相同,则将所述测试样本确定为等价样本;
根据所述等价样本的数量和所述多个测试样本的数量,获取所述等价率。
6.一种神经网络量化模型训练装置,其特征在于,包括获取模块、第一处理模块和第二处理模块,其中:
所述获取模块,用于获取浮点模型对应的量化模型,所述浮点模型为图像分类模型或语义识别模型,所述量化模型为对所述浮点模型进行量化压缩后的模型;
在所述浮点模型为所述图像分类模型的情况下,所述第一处理模块,用于根据第一训练样本图像获取对应的第一浮点样本图像;对所述第一浮点样本图像进行转换处理,得到对应的第一定点样本图像;将所述第一浮点样本图像输入至所述浮点模型,得到所述浮点模型输出的所述第一训练样本图像的图像分类结果;将所述第一定点样本图像输入至所述量化模型,得到所述量化模型输出的所述第一训练样本图像的图像分类结果;所述第二处理模块,用于根据所述浮点模型输出的所述第一训练样本图像的图像分类结果和所述量化模型输出的所述第一训练样本图像的图像分类结果,获取所述第一训练样本图像在所述浮点模型和所述量化模型之间的等价性损失值;根据所述第一训练样本图像在所述浮点模型和所述量化模型之间的等价性损失值,对所述量化模型的参数进行调整,以得到训练好的量化模型,所述训练好的量化模型用于对图像进行图像分类;
在所述浮点模型为所述语义识别模型的情况下,所述第一处理模块,用于根据第二训练样本图像获取对应的第二浮点样本图像;对所述第二浮点样本图像进行转换处理,得到对应的第二定点样本图像;将所述第二浮点样本图像输入至所述浮点模型,得到所述浮点模型输出的所述第二训练样本图像的语义识别结果;将所述第二定点样本图像输入至所述量化模型,得到所述量化模型输出的所述第二训练样本图像的语义识别结果;所述第二处理模块,用于根据所述浮点模型输出的所述第二训练样本图像的语义识别结果和所述量化模型输出的所述第二训练样本图像的语义识别结果,获取所述第二训练样本图像在所述浮点模型和所述量化模型之间的等价性损失值;根据所述第二训练样本图像在所述浮点模型和所述量化模型之间的等价性损失值,对所述量化模型的参数进行调整,以得到训练好的量化模型,所述训练好的量化模型用于对图像进行语义识别。
7.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-5任一项所述的神经网络量化模型训练方法。
8.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-5任一项所述的神经网络量化模型训练方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211080897.4A CN115496200B (zh) | 2022-09-05 | 2022-09-05 | 神经网络量化模型训练方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211080897.4A CN115496200B (zh) | 2022-09-05 | 2022-09-05 | 神经网络量化模型训练方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115496200A CN115496200A (zh) | 2022-12-20 |
CN115496200B true CN115496200B (zh) | 2023-09-22 |
Family
ID=84467607
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211080897.4A Active CN115496200B (zh) | 2022-09-05 | 2022-09-05 | 神经网络量化模型训练方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115496200B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109902722A (zh) * | 2019-01-28 | 2019-06-18 | 北京奇艺世纪科技有限公司 | 分类器、神经网络模型训练方法、数据处理设备及介质 |
CN111598237A (zh) * | 2020-05-21 | 2020-08-28 | 上海商汤智能科技有限公司 | 量化训练、图像处理方法及装置、存储介质 |
CN112766492A (zh) * | 2021-01-18 | 2021-05-07 | Oppo广东移动通信有限公司 | 模型处理方法、装置、电子设备及存储介质 |
CN113159318A (zh) * | 2021-04-23 | 2021-07-23 | 北京达佳互联信息技术有限公司 | 一种神经网络的量化方法、装置、电子设备及存储介质 |
CN113326930A (zh) * | 2020-02-29 | 2021-08-31 | 华为技术有限公司 | 数据处理方法、神经网络的训练方法及相关装置、设备 |
CN114595799A (zh) * | 2020-11-30 | 2022-06-07 | 华为技术有限公司 | 一种模型训练方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102564456B1 (ko) * | 2017-10-19 | 2023-08-07 | 삼성전자주식회사 | 뉴럴 네트워크의 파라미터를 양자화하는 장치 및 방법 |
CN112200296B (zh) * | 2020-07-31 | 2024-04-05 | 星宸科技股份有限公司 | 网络模型量化方法、装置、存储介质及电子设备 |
-
2022
- 2022-09-05 CN CN202211080897.4A patent/CN115496200B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109902722A (zh) * | 2019-01-28 | 2019-06-18 | 北京奇艺世纪科技有限公司 | 分类器、神经网络模型训练方法、数据处理设备及介质 |
CN113326930A (zh) * | 2020-02-29 | 2021-08-31 | 华为技术有限公司 | 数据处理方法、神经网络的训练方法及相关装置、设备 |
CN111598237A (zh) * | 2020-05-21 | 2020-08-28 | 上海商汤智能科技有限公司 | 量化训练、图像处理方法及装置、存储介质 |
CN114595799A (zh) * | 2020-11-30 | 2022-06-07 | 华为技术有限公司 | 一种模型训练方法及装置 |
CN112766492A (zh) * | 2021-01-18 | 2021-05-07 | Oppo广东移动通信有限公司 | 模型处理方法、装置、电子设备及存储介质 |
CN113159318A (zh) * | 2021-04-23 | 2021-07-23 | 北京达佳互联信息技术有限公司 | 一种神经网络的量化方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115496200A (zh) | 2022-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110969251B (zh) | 基于无标签数据的神经网络模型量化方法及装置 | |
CN110992935B (zh) | 用于训练神经网络的计算系统 | |
WO2020238237A1 (zh) | 一种基于幂指数量化的神经网络压缩方法 | |
CN111047563B (zh) | 一种应用于医学超声图像的神经网络构建方法 | |
CN111026548B (zh) | 一种逆向深度强化学习的电力通信设备测试资源调度方法 | |
CN109002889A (zh) | 自适应迭代式卷积神经网络模型压缩方法 | |
CN111242287A (zh) | 一种基于通道l1范数剪枝的神经网络压缩方法 | |
CN111814975B (zh) | 一种基于剪枝的神经网络模型构建方法及相关装置 | |
CN110276451A (zh) | 一种基于权重归一化的深度神经网络压缩方法 | |
CN109961147B (zh) | 一种基于Q-Learning算法的自动化模型压缩方法 | |
CN108734264A (zh) | 深度神经网络模型压缩方法及装置、存储介质、终端 | |
CN110837890A (zh) | 一种面向轻量级卷积神经网络的权值数值定点量化方法 | |
CN111737110A (zh) | 一种面向深度学习模型的测试输入选择方法 | |
CN115496200B (zh) | 神经网络量化模型训练方法、装置及设备 | |
CN112613604A (zh) | 神经网络的量化方法及装置 | |
CN115170902B (zh) | 图像处理模型的训练方法 | |
CN110855474A (zh) | Kqi数据的网络特征提取方法、装置、设备及存储介质 | |
CN113157453B (zh) | 一种基于任务复杂度的高能效目标检测任务动态调度方法 | |
CN110852361B (zh) | 基于改进深度神经网络的图像分类方法、装置与电子设备 | |
CN114139678A (zh) | 卷积神经网络量化方法、装置、电子设备和存储介质 | |
CN114444654A (zh) | 一种面向nas的免训练神经网络性能评估方法、装置和设备 | |
CN114742036A (zh) | 一种预训练语言模型的组合式模型压缩方法及系统 | |
CN114091903A (zh) | 资损评估模型的训练方法及装置、资损评估方法及装置 | |
CN111914923B (zh) | 一种基于聚类特征提取的目标分布式识别方法 | |
CN115062777B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |