CN117114075B - 神经网络模型量化方法、装置、设备及介质 - Google Patents
神经网络模型量化方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN117114075B CN117114075B CN202311352578.9A CN202311352578A CN117114075B CN 117114075 B CN117114075 B CN 117114075B CN 202311352578 A CN202311352578 A CN 202311352578A CN 117114075 B CN117114075 B CN 117114075B
- Authority
- CN
- China
- Prior art keywords
- layer
- neural network
- quantization
- model
- loss
- 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
- 238000013139 quantization Methods 0.000 title claims abstract description 419
- 238000003062 neural network model Methods 0.000 title claims abstract description 171
- 238000000034 method Methods 0.000 title claims abstract description 77
- 239000010410 layer Substances 0.000 claims abstract description 340
- 238000013528 artificial neural network Methods 0.000 claims abstract description 148
- 239000002356 single layer Substances 0.000 claims abstract description 107
- 238000012545 processing Methods 0.000 claims abstract description 75
- 238000012216 screening Methods 0.000 claims description 38
- 238000001514 detection method Methods 0.000 claims description 18
- 230000008569 process Effects 0.000 claims description 16
- 238000012549 training Methods 0.000 claims description 9
- 238000001914 filtration Methods 0.000 claims description 2
- 238000007667 floating Methods 0.000 description 18
- 238000012360 testing method Methods 0.000 description 13
- 238000004458 analytical method Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 8
- 238000005457 optimization Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 238000013473 artificial intelligence Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 210000002569 neuron Anatomy 0.000 description 3
- 238000011002 quantification Methods 0.000 description 3
- 238000004445 quantitative analysis Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 210000005036 nerve Anatomy 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
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
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- 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/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Image Processing (AREA)
Abstract
本申请提供一种神经网络模型量化方法、装置、设备及介质,方法包括:获取校准数据集和待量化的目标神经网络模型;根据校准数据集对目标神经网络模型进行量化处理,生成目标神经网络模型对应的初步量化模型;确定初步量化模型相对于目标神经网络模型的逐层精度损失和单层精度损失;逐层精度损失为初步量化模型中各神经网络层对应的逐层累积精度损失;单层精度损失为初步量化模型中各神经网络层对应的精度损失;若逐层精度损失和/或单层精度损失满足预设损失条件,则将初步量化模型中单层精度损失大于第一预设损失阈值的神经网络层进行反量化处理,生成最终量化模型。本申请的方法,降低了量化的精度损失,使量化模型能满足精度损失要求。
Description
技术领域
本申请涉及人工智能技术领域,尤其涉及一种神经网络模型量化方法、装置、设备及介质。
背景技术
随着人工智能技术的发展,目标检测技术在计算机视觉(如人脸检测、行人检测)、自动驾驶、安防系统等领域得到广泛应用,而将神经网络模型部署在嵌入式等硬件平台,可以进一步降低成本、减少能源消耗、提高实时性、可扩展性等优势,为企业和组织提供更多的发展机遇。
传统的神经网络部署方法普遍使用高精度浮点模型在GPU(英文全称为:graphicsprocessing unit,中文为:图形处理器)上进行部署,上述方法需要消耗大量的算力、占用大量的存储资源,产生推理延迟高,内存、硬盘占用高等问题,使得神经网络难以部署在嵌入式设备上。
因而,目前一般通过神经网络量化技术将高精度浮点模型转换为低精度定点模型后进行部署。由于使用低精度浮点数进行定点计算,模型本身的计算量显著降低,将会从根本上减少算力、降低内存、硬盘等资源的占用,为模型在嵌入式设备上部署打下了基础。
然而,目前的神经网络量化技术,神经网络模型在量化后的精度损失不稳定,需要进一步优化。
发明内容
本申请提供一种神经网络模型量化方法、装置、设备及介质,用以解决目前的神经网络量化技术,神经网络模型在量化后的精度损失不稳定,需要进一步优化的问题。
本申请第一方面提供一种神经网络模型量化方法,包括:
获取校准数据集和待量化的目标神经网络模型;
根据所述校准数据集对所述目标神经网络模型进行量化处理,生成所述目标神经网络模型对应的初步量化模型;
确定所述初步量化模型相对于所述目标神经网络模型的逐层精度损失和单层精度损失;所述逐层精度损失为所述初步量化模型中各神经网络层对应的逐层累积精度损失;所述单层精度损失为初步量化模型中各神经网络层对应的精度损失;
若所述逐层精度损失和/或所述单层精度损失满足预设损失条件,则将所述初步量化模型中单层精度损失大于第一预设损失阈值的神经网络层进行反量化处理,生成最终量化模型。
进一步地,如上所述的方法,所述获取校准数据集,包括:
获取原始数据集和所述校准数据集对应的数据分布参数;所述原始数据集包括初始图片和初始图片对应的标签;
根据所述标签以及所述数据分布参数对所述原始数据集中的初始图片进行筛选,生成对应校准数据集。
进一步地,如上所述的方法,所述根据所述标签以及所述数据分布参数对所述原始数据集中的初始图片进行筛选,生成对应校准数据集,包括:
按照预设筛选条件基于所述标签对所述原始数据集中的初始图片进行初步筛选,生成对应初步筛选数据集;所述预设筛选条件如下:
筛选后的图片中至多包含三种目标类别对应的目标;
筛选后的图片中每个目标检测框的面积大于或等于图片总面积的预设面积百分比阈值;
筛选后的图片中各目标检测框之间的交并比小于或等于预设比例阈值;
选取筛选后的图片中面积最大的目标检测框所对应的标签作为此图片的类别;
根据所述数据分布参数对初步筛选数据集进行再次筛选,生成对应校准数据集;所述数据分布参数包括:校准数据集中的图片总数、各图片对应的图片类别以及各图片类别对应的图片最大数量。
进一步地,如上所述的方法,所述根据所述校准数据集对所述目标神经网络模型进行量化处理,生成所述目标神经网络模型对应的初步量化模型,包括:
对所述目标神经网络模型插入量化节点和反量化节点,生成中间神经网络模型;
基于所述校准数据集对所述中间神经网络模型进行量化过程中的校准训练,生成所述初步量化模型。
进一步地,如上所述的方法,所述确定所述初步量化模型相对于所述目标神经网络模型的逐层精度损失,包括:
对所述初步量化模型中除开第一层神经网络层之外的其他层神经网络层进行反量化处理,生成反量化后的初步量化模型;所述反量化处理为去除神经网络层中的量化节点和反量化节点;
确定反量化后的初步量化模型相对于目标神经网络模型的精度损失,并将该精度损失作为第一层神经网络层对应的逐层精度损失;
将反量化后的初步量化模型中第一层神经网络层的下一层神经网络层作为当前层,并对所述当前层进行量化处理,生成处理后的初步量化模型;
确定处理后的初步量化模型相对于目标神经网络模型的精度损失,并将该精度损失作为当前层对应的逐层精度损失;
将当前层的下一神经网络层确定为当前层,并执行对所述当前层进行量化处理,生成处理后的初步量化模型的步骤,直至完成对所有神经网络层的处理;
将各神经网络层对应的逐层精度损失确定为所述初步量化模型相对于所述目标神经网络模型的逐层精度损失。
进一步地,如上所述的方法,确定所述初步量化模型相对于所述目标神经网络模型的单层精度损失,包括:
将所述初步量化模型中第一层神经网络层作为当前层,对除开所述当前层之外的其他层神经网络层进行反量化处理,生成反量化后的初步量化模型;
确定反量化后的初步量化模型相对于目标神经网络模型的精度损失,并将该精度损失作为当前层对应的单层精度损失;
将当前层的下一神经网络层确定为当前层,并执行所述对除开所述当前层之外的其他层神经网络层进行反量化处理,生成反量化后的初步量化模型的步骤,直至完成对所有神经网络层的处理;
将各神经网络层对应的单层精度损失确定为所述初步量化模型相对于所述目标神经网络模型的单层精度损失。
进一步地,如上所述的方法,所述预设损失条件为所述单层精度损失大于第二预设损失阈值,或,所述预设损失条件为所述逐层精度损失大于第三预设损失阈值,或,所述单层精度损失大于第二预设损失阈值且所述逐层精度损失大于第三预设损失阈值;
所述将所述初步量化模型中单层精度损失大于第一预设损失阈值的神经网络层进行反量化处理,生成最终量化模型,包括:
去除所述初步量化模型中单层精度损失大于第一预设损失阈值的神经网络层中的量化节点和反量化节点,生成最终量化模型。
本申请第二方面提供一种神经网络模型量化装置,包括:
获取模块,用于获取校准数据集和待量化的目标神经网络模型;
第一生成模块,用于根据所述校准数据集对所述目标神经网络模型进行量化处理,生成所述目标神经网络模型对应的初步量化模型;
确定模块,用于确定所述初步量化模型相对于所述目标神经网络模型的逐层精度损失和单层精度损失;所述逐层精度损失为所述初步量化模型中各神经网络层对应的逐层累积精度损失;所述单层精度损失为初步量化模型中各神经网络层对应的精度损失;
第二生成模块,用于若所述逐层精度损失和/或所述单层精度损失满足预设损失条件,则将所述初步量化模型中单层精度损失大于第一预设损失阈值的神经网络层进行反量化处理,生成最终量化模型。
进一步地,如上所述的装置,所述获取模块具体用于:
获取原始数据集和所述校准数据集对应的数据分布参数;所述原始数据集包括初始图片和初始图片对应的标签;根据所述标签以及所述数据分布参数对所述原始数据集中的初始图片进行筛选,生成对应校准数据集。
进一步地,如上所述的装置,所述获取模块在根据所述标签以及所述数据分布参数对所述原始数据集中的初始图片进行筛选,生成对应校准数据集时,具体用于:
按照预设筛选条件基于所述标签对所述原始数据集中的初始图片进行初步筛选,生成对应初步筛选数据集;所述预设筛选条件如下:
筛选后的图片中至多包含三种目标类别对应的目标;
筛选后的图片中每个目标检测框的面积大于或等于图片总面积的预设面积百分比阈值;
筛选后的图片中各目标检测框之间的交并比小于或等于预设比例阈值;
选取筛选后的图片中面积最大的目标检测框所对应的标签作为此图片的类别;
根据所述数据分布参数对初步筛选数据集进行再次筛选,生成对应校准数据集;所述数据分布参数包括:校准数据集中的图片总数、各图片对应的图片类别以及各图片类别对应的图片最大数量。
进一步地,如上所述的装置,所述第一生成模块具体用于:
对所述目标神经网络模型插入量化节点和反量化节点,生成中间神经网络模型;基于所述校准数据集对所述中间神经网络模型进行量化过程中的校准训练,生成所述初步量化模型。
进一步地,如上所述的装置,所述确定模块在确定所述初步量化模型相对于所述目标神经网络模型的逐层精度损失时,具体用于:
对所述初步量化模型中除开第一层神经网络层之外的其他层神经网络层进行反量化处理,生成反量化后的初步量化模型;所述反量化处理为去除神经网络层中的量化节点和反量化节点;确定反量化后的初步量化模型相对于目标神经网络模型的精度损失,并将该精度损失作为第一层神经网络层对应的逐层精度损失;将反量化后的初步量化模型中第一层神经网络层的下一层神经网络层作为当前层,并对所述当前层进行量化处理,生成处理后的初步量化模型;确定处理后的初步量化模型相对于目标神经网络模型的精度损失,并将该精度损失作为当前层对应的逐层精度损失;将当前层的下一神经网络层确定为当前层,并执行对所述当前层进行量化处理,生成处理后的初步量化模型的步骤,直至完成对所有神经网络层的处理;将各神经网络层对应的逐层精度损失确定为所述初步量化模型相对于所述目标神经网络模型的逐层精度损失。
进一步地,如上所述的装置,确定模块在确定所述初步量化模型相对于所述目标神经网络模型的单层精度损失时,具体用于:
将所述初步量化模型中第一层神经网络层作为当前层,对除开所述当前层之外的其他层神经网络层进行反量化处理,生成反量化后的初步量化模型;确定反量化后的初步量化模型相对于目标神经网络模型的精度损失,并将该精度损失作为当前层对应的单层精度损失;将当前层的下一神经网络层确定为当前层,并执行所述对除开所述当前层之外的其他层神经网络层进行反量化处理,生成反量化后的初步量化模型的步骤,直至完成对所有神经网络层的处理;将各神经网络层对应的单层精度损失确定为所述初步量化模型相对于所述目标神经网络模型的单层精度损失。
进一步地,如上所述的装置,所述预设损失条件为所述单层精度损失大于第二预设损失阈值,或,所述预设损失条件为所述逐层精度损失大于第三预设损失阈值,或,所述单层精度损失大于第二预设损失阈值且所述逐层精度损失大于第三预设损失阈值;
所述第二生成模块具体用于:
去除所述初步量化模型中单层精度损失大于第一预设损失阈值的神经网络层中的量化节点和反量化节点,生成最终量化模型。
本申请第三方面提供一种电子设备,包括:存储器和处理器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如第一方面任一项所述的神经网络模型量化方法。
本申请第四方面提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现第一方面任一项所述的神经网络模型量化方法。
本申请第五方面提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现第一方面任一项所述的神经网络模型量化方法。
本申请提供的一种神经网络模型量化方法、装置、设备及介质,所述方法包括:获取校准数据集和待量化的目标神经网络模型;根据所述校准数据集对所述目标神经网络模型进行量化处理,生成所述目标神经网络模型对应的初步量化模型;确定所述初步量化模型相对于所述目标神经网络模型的逐层精度损失和单层精度损失;所述逐层精度损失为所述初步量化模型中各神经网络层对应的逐层累积精度损失;所述单层精度损失为初步量化模型中各神经网络层对应的精度损失;若所述逐层精度损失和/或所述单层精度损失满足预设损失条件,则将所述初步量化模型中单层精度损失大于第一预设损失阈值的神经网络层进行反量化处理,生成最终量化模型。本申请的神经网络模型量化方法,通过确定所述初步量化模型相对于所述目标神经网络模型的逐层精度损失和单层精度损失。基于逐层精度损失和/或所述单层精度损失是否满足预设损失条件判断初步量化模型是否精度损失较大。若确定精度损失较大,将所述初步量化模型中单层精度损失大于第一预设损失阈值的神经网络层进行反量化处理,提高初步量化模型中精度损失较大的神经网络层的精度,从而提高了最终量化模型的精度,降低了最终量化模型的精度损失,使最终量化模型能满足精度损失要求。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为可以实现本申请实施例的神经网络模型量化方法的场景图;
图2为本申请提供的神经网络模型量化方法的流程示意图一;
图3为本申请提供的神经网络模型量化方法的流程示意图二;
图4为本申请提供的神经网络模型量化方法的神经网络结构示意图;
图5为本申请提供的逐层量化分析示意图;
图6为本申请提供的单层量化分析示意图;
图7为本申请提供的神经网络模型量化装置的结构示意图;
图8为本申请提供的电子设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
本申请实施例的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
需要说明的是,本公开神经网络模型量化方法、装置、设备及介质可用于人工智能技术领域。也可用于除人工智能技术领域以外的任意领域。本公开神经网络模型量化方法、装置、设备及介质应用领域不作限定。
下面以具体地实施例对本申请的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
为了清楚理解本申请的技术方案,首先对现有技术的方案进行详细介绍。神经网络量化技术是将高精度浮点(通常为float32)的神经网络模型转换为低精度定点(通常为int8)神经网络模型的技术。目前由于高精度浮点模型需要消耗大量的算力、占用大量的存储资源,产生推理延迟高,内存、硬盘占用高等问题,使得神经网络难以部署在嵌入式设备上。因而,一般通过神经网络量化技术将高精度浮点模型转换为低精度定点模型后进行部署。
然而,目前的神经网络量化技术,神经网络模型在量化后的精度损失不稳定,需要进一步优化。
所以针对现有技术中神经网络量化技术,神经网络模型在量化后的精度损失不稳定,需要进一步优化的问题,发明人在研究中发现,为了解决该问题,可以通过确定初步量化模型相对于待量化的目标神经网络模型的逐层精度损失和单层精度损失。基于逐层精度损失和/或单层精度损失是否满足预设损失条件判断初步量化模型是否精度损失较大。若确定精度损失较大,则使初步量化模型中部分神经网络层还原成量化前的状态,从而提高最终量化模型的精度,降低最终量化模型的精度损失。
具体的,获取校准数据集和待量化的目标神经网络模型。根据校准数据集对目标神经网络模型进行量化处理,生成目标神经网络模型对应的初步量化模型。确定初步量化模型相对于目标神经网络模型的逐层精度损失和单层精度损失。逐层精度损失为初步量化模型中各神经网络层对应的逐层累积精度损失。单层精度损失为初步量化模型中各神经网络层对应的精度损失。若逐层精度损失和/或单层精度损失满足预设损失条件,则将初步量化模型中单层精度损失大于第一预设损失阈值的神经网络层进行反量化处理,生成最终量化模型。
发明人基于上述的创造性发现,提出了本申请的技术方案。
下面对本申请实施例提供的神经网络模型量化方法的应用场景进行介绍。如图1所示,其中,1为第一电子设备,2为第二电子设备。本申请实施例提供的神经网络模型量化方法对应的应用场景的网络架构中包括:第一电子设备1和第二电子设备2。第二电子设备2可以为数据库服务器、终端设备等。第二电子设备2存储有校准数据集和待量化的目标神经网络模型。
示例性的,在需要进行神经网络模型量化时,进行如下流程:
①第二电子设备2发送校准数据集和待量化的目标神经网络模型至第一电子设备1。
②第一电子设备1根据校准数据集对目标神经网络模型进行量化处理,生成目标神经网络模型对应的初步量化模型。
③第一电子设备1确定初步量化模型相对于目标神经网络模型的逐层精度损失和单层精度损失。逐层精度损失为初步量化模型中各神经网络层对应的逐层累积精度损失。单层精度损失为初步量化模型中各神经网络层对应的精度损失。
④若逐层精度损失和/或单层精度损失满足预设损失条件,则第一电子设备1将初步量化模型中单层精度损失大于第一预设损失阈值的神经网络层进行反量化处理,生成最终量化模型。
在生成最终量化模型之后,可以将最终量化模型部署在应用设备中,也可以将逐层精度损失以及单层精度发送至用户终端,以使用户知晓本次量化的结果。
下面结合说明书附图对本申请实施例进行介绍。
图2为本申请提供的神经网络模型量化方法的流程示意图一,如图2所示,本实施例中,本申请实施例的执行主体为神经网络模型量化装置,该神经网络模型量化装置可以集成在电子设备中。则本实施例提供的神经网络模型量化方法包括以下几个步骤:
步骤S101,获取校准数据集和待量化的目标神经网络模型。
本实施例中,获取的方式可以是从存储有校准数据集和待量化的目标神经网络模型的设备处获取,也可以是用户输入的方式获取,本实施例对此不作限定。
校准数据集指在神经网络量化过程中,调整参数所需要的数据集,一般为验证集的子集。目标神经网络模型一般为高精度浮点模型,初步量化模型一般为低精度浮点模型。
步骤S102,根据校准数据集对目标神经网络模型进行量化处理,生成目标神经网络模型对应的初步量化模型。
本实施例中,量化处理可以包括两个步骤,将量化节点和非量化节点插入神经网络模型中,此后,将根据校准数据集对神经网络模型进行校准训练,完成量化处理。
通过校准数据集对目标神经网络模型进行量化处理后生成的初步量化模型可能存在较大的精度损失,因而,需要进一步通过S130步骤确定其精度损失。
步骤S103,确定初步量化模型相对于目标神经网络模型的逐层精度损失和单层精度损失。逐层精度损失为初步量化模型中各神经网络层对应的逐层累积精度损失。单层精度损失为初步量化模型中各神经网络层对应的精度损失。
本实施例中,逐层精度损失为初步量化模型中各神经网络层对应的逐层累积精度损失。示例性的,若初步量化模型存在5层神经网络层,则逐层累积精度损失为第一层对应的精度损失、第一层和第二层对应的精度损失和、第一层至第三层对应的精度损失和、第一层至第四层对应的精度损失和、第一层至第五层对应的精度损失和。
神经网络层包括卷积层、激活层等。
确定初步量化模型相对于目标神经网络模型的精度损失方式可以是在相同输入的基础上,通过初步量化模型的输出与目标神经网络模型的输出之间的比值确定。
步骤S104,若逐层精度损失和/或单层精度损失满足预设损失条件,则将初步量化模型中单层精度损失大于第一预设损失阈值的神经网络层进行反量化处理,生成最终量化模型。
本实施例中,预设损失条件可以为单层精度损失大于第二预设损失阈值,或,预设损失条件为逐层精度损失大于第三预设损失阈值,或,单层精度损失大于第二预设损失阈值且逐层精度损失大于第三预设损失阈值。第一预设损失阈值、第二预设损失阈值、第三预设损失阈值可以根据实际应用进行设置。
反量化处理指将神经网络层还原成量化之前的状态,可以通过去除神经网络层中插入的量化节点以及反量化节点的方式完成处理。
本申请实施例提供的一种神经网络模型量化方法,该方法包括:获取校准数据集和待量化的目标神经网络模型。根据校准数据集对目标神经网络模型进行量化处理,生成目标神经网络模型对应的初步量化模型。确定初步量化模型相对于目标神经网络模型的逐层精度损失和单层精度损失。逐层精度损失为初步量化模型中各神经网络层对应的逐层累积精度损失。单层精度损失为初步量化模型中各神经网络层对应的精度损失。若逐层精度损失和/或单层精度损失满足预设损失条件,则将初步量化模型中单层精度损失大于第一预设损失阈值的神经网络层进行反量化处理,生成最终量化模型。
本申请的神经网络模型量化方法,通过确定初步量化模型相对于目标神经网络模型的逐层精度损失和单层精度损失。基于逐层精度损失和/或单层精度损失是否满足预设损失条件判断初步量化模型是否精度损失较大。若确定逐层精度损失和/或单层精度损失满足预设损失条件,则确定精度损失较大,将初步量化模型中单层精度损失大于第一预设损失阈值的神经网络层进行反量化处理,提高初步量化模型中精度损失较大的神经网络层的精度,从而提高了最终量化模型的精度,降低了最终量化模型的精度损失。
同时,本申请的神经网络模型量化方法是一种可以保证精度损失一定满足预期的方案,通过使用反量化处理,使得量化后模型必定可以达到精度损失要求。
图3为本申请提供的神经网络模型量化方法的流程示意图二,如图3所示,本实施例提供的神经网络模型量化方法,是在本申请上一实施例提供的神经网络模型量化方法的基础上,进行了进一步的细化。则本实施例提供的神经网络模型量化方法包括以下步骤。
步骤S201,获取原始数据集和校准数据集对应的数据分布参数。原始数据集包括初始图片和初始图片对应的标签。
由于目前常用的校准数据集的效果有待进一步优化,本实施例中,通过预先设置数据分布参数,并基于预先设置数据分布参数以及初始图片对应的标签对原始数据集进行筛选,从而提高校准数据集的量化效果。
步骤S202,根据标签以及数据分布参数对原始数据集中的初始图片进行筛选,生成对应校准数据集。
可选的,本实施例中,S202可以具体为:
按照预设筛选条件基于标签对原始数据集中的初始图片进行初步筛选,生成对应初步筛选数据集。预设筛选条件如下:
筛选后的图片中至多包含三种目标类别对应的目标,比如图片中包括车、手机、建筑三种目标。
筛选后的图片中每个目标检测框的面积大于或等于图片总面积的预设面积百分比阈值,预设面积百分比阈值可以按照实际应用进行设置,比如可以设置为百分之30。
筛选后的图片中各目标检测框之间的交并比小于或等于预设比例阈值。其中,预设比例阈值可以按照实际应用进行设置,比如可以设置为0.4。交并比用于评判两个区域的重合程度。
选取筛选后的图片中面积最大的目标检测框所对应的标签作为此图片的类别。
根据数据分布参数对初步筛选数据集进行再次筛选,生成对应校准数据集。数据分布参数包括:校准数据集中的图片总数、各图片对应的图片类别以及各图片类别对应的图片最大数量。
数据分布参数可以按照实际应用进行设置,示例性的,假设原始数据集中有20000张图片,设定校准数据集中应该有图片总数γ = 500张图片,各图片对应的图片类别一共有c = 100类,此时,校准数据集中的每个类对应的图片最大数量t = [γ/c] = [500 /100 ]= 5张图片。
步骤S203,获取待量化的目标神经网络模型。
本实施例中,步骤203的实现方式与上一实施例的步骤101的实现方式类似,在此不再赘述。
步骤S204,对目标神经网络模型插入量化节点和反量化节点,生成中间神经网络模型。
可选的,本实施例中,如图4所示,量化(Quantize)节点Q和反量化(Dequantize)节点DQ插在目标神经网络模型的各个神经网络层中,如卷积(Convolution)层Conv、激活(Activation)层AC。量化节点(qdq)的插入方式是固定的,同时,量化节点中是有参数的,量化的过程就是训练这些参数。
其中,模型权重Wx是在训练并生成目标神经网络模型时确定的。神经网络是由多个神经元组成的,每一个神经元可以看成一个函数:y = w * x,其中x是输入(Input),y是输出(Output),w是权重(Weight),权重是神经元中的参数。
神经网络可以分为训练和预测(也叫做推理)两个步骤:在训练步骤中(训练步骤一般在实验室中进行,处于开发阶段),需要给神经网络大量的数据,让神经网络去学习,学习的过程就是改变神经元中的权重w。
在推理步骤中(推理步骤一般在实际场景中进行,用以解决实际问题,即实际运用阶段),通过给神经网络不同的输入x,通过已经训练好的权重w,得到输出y。
模型的量化分为两种,以int8(8位整数)为例:
其一是实际量化,是在部署场景中使用的,其中输入x、输出y、权重w均为int8,在卷积操作中是使用int8进行运算的。
其二是模拟量化,是在量化过程中使用的,输入x是fp32(高精度浮点-32位浮点数)的,经过量化(q)节点之后,变为int8,再经过反量化(dq)节点返回成fp32。
权重w是int8的,经过反量化(dq)节点变为fp32,在卷积层中实际上是以fp32进行运算,得到的输出是fp32,最终经过量化(q)节点后变为int8。
量化(Quantize)节点采用的公式为:
其中:「.」是舍入到最近的运算符,b是指代不同数据类型的位数,例如int8(8位整数)的b为8,int16(16位整数)的b为16,clamp定义为:
其中:a和c为可以设置数值的参数。
反量化(Dequantize)节点采用的公式为:
其中,s与z为需要训练的参数。
步骤S205,基于校准数据集对中间神经网络模型进行量化过程中的校准训练,生成初步量化模型。
本实施例中,校准数据集用于对中间神经网络模型进行量化过程中的校准训练,从而确定上述各个未确定数值的参数,如s和z。
步骤S206,确定初步量化模型相对于目标神经网络模型的逐层精度损失和单层精度损失。
可选的,本实施例中,S206中确定逐层精度损失可以具体为:
对初步量化模型中除开第一层神经网络层之外的其他层神经网络层进行反量化处理,生成反量化后的初步量化模型。反量化处理为去除神经网络层中的量化节点和反量化节点。
确定反量化后的初步量化模型相对于目标神经网络模型的精度损失,并将该精度损失作为第一层神经网络层对应的逐层精度损失。
将反量化后的初步量化模型中第一层神经网络层的下一层神经网络层作为当前层,并对当前层进行量化处理,生成处理后的初步量化模型。
确定处理后的初步量化模型相对于目标神经网络模型的精度损失,并将该精度损失作为当前层对应的逐层精度损失。
将当前层的下一神经网络层确定为当前层,并执行对当前层进行量化处理,生成处理后的初步量化模型的步骤,直至完成对所有神经网络层的处理。
将各神经网络层对应的逐层精度损失确定为初步量化模型相对于目标神经网络模型的逐层精度损失。
示例性的,确定逐层精度损失的逐层量化分析步骤如下:
S1.1:基于量化后的模型,将除了第一层之外的其他层送回高精度浮点(反量化处理),进行推理,与量化前的模型对比,进行精度损失测试,保存结果。
S1.2:在上一步(S1.1)的基础上,将第二层的精度还原到低精度定点(量化处理),其他层保持高精度,与量化前的模型对比,进行精度损失测试,保存结果。
S1.3:在上一步(S1.2)的基础上,将第三层的精度还原到低精度定点,其他层保持高精度,与量化前的模型对比,进行精度损失测试,保存结果。
…
依此类推,直到完成所有层的还原以及精度损失测试。
S2:将S1中的所有步骤产生的测试结果进行统计,得到逐层量化分析的最终结果。
本实施例中的送回到高精度浮点,是指反量化处理,具体为插入了qdq的节点的层把量化(q)节点和反量化(dq)节点去掉,让这个层变成fp32类型的层,同时,在这一层中不做任何量化相关的操作。
还原到低精度定点,与量化处理(即插入q节点、dq节点)并无区别,只是q节点、dq节点中的参数是之前训练好的。
精度损失测试是指将S1.1-S1.3中生成的模型与目标神经网络模型输出结果进行比对,比对的误差就是精度损失。
可选的,本实施例中,S206中确定单层精度损失可以具体为:
将初步量化模型中第一层神经网络层作为当前层,对除开当前层之外的其他层神经网络层进行反量化处理,生成反量化后的初步量化模型。
确定反量化后的初步量化模型相对于目标神经网络模型的精度损失,并将该精度损失作为当前层对应的单层精度损失。
将当前层的下一神经网络层确定为当前层,并执行对除开当前层之外的其他层神经网络层进行反量化处理,生成反量化后的初步量化模型的步骤,直至完成对所有神经网络层的处理。
将各神经网络层对应的单层精度损失确定为初步量化模型相对于目标神经网络模型的单层精度损失。
示例性的,确定单层损失精度的单层量化分析步骤具体如下:
S1.1:基于量化后的模型,将除了第一层之外的其他层送回高精度浮点,进行推理,与量化前的模型对比,进行精度损失测试,保存结果。
S1.2:基于量化后的模型,将除了第二层之外的其他层送回高精度浮点,进行推理,与量化前的模型对比,进行精度损失测试,保存结果。
S1.3:基于量化后的模型,将除了第三层之外的其他层送回高精度浮点,进行推理,与量化前的模型对比,进行精度损失测试,保存结果。
…
依此类推,直到完成所有层的还原以及精度损失测试。
S2:将S1中的所有步骤产生的测试结果进行统计,得到单层量化分析的最终结果。
本实施例中送回高精度浮点、精度损失测试的方式与上述逐层精度损失的逐层量化分析方式类似,再次不再赘述。
步骤S207,若逐层精度损失和/或单层精度损失满足预设损失条件,则将初步量化模型中单层精度损失大于第一预设损失阈值的神经网络层进行反量化处理,生成最终量化模型。
可选的,本实施例中,预设损失条件为单层精度损失大于第二预设损失阈值,或,预设损失条件为逐层精度损失大于第三预设损失阈值,或,单层精度损失大于第二预设损失阈值且逐层精度损失大于第三预设损失阈值。其中,第二预设损失阈值可与第一预设损失阈值相同,也可不同。
S207中将初步量化模型中单层精度损失大于第一预设损失阈值的神经网络层进行反量化处理,生成最终量化模型,包括:
去除初步量化模型中单层精度损失大于第一预设损失阈值的神经网络层中的量化节点和反量化节点,生成最终量化模型。
本实施例中,最终量化模型是对初步量化模型进行优化处理后生成的,该优化处理的宗旨是对于某些精度损失较大的神经网络层,进行还原处理,使最终量化模型处于混合量化状态,即某些神经网络层量化,而某些神经网络层不进行量化,从而提高最终量化模型的精度。
同时,生成最终量化模型的方式也可以是将单层精度损失最大的两层神经网络层进行反量化处理,本实施例对此不作限定。
为了进一步详细描述逐层精度损失以及单层精度损失,下面将结合图5和图6进行进一步描述。本实施例中,预设损失条件为逐层精度损失大于第三预设损失阈值。
本实施例在实际进行逐层量化分析后生成的精度损失测试结果如图5所示,图中逐层量化分析结果直观的表明,从Conv_0累计到Conv_9这一层的累计损失为0.4201,若第三预设损失阈值为0.5,则该精度损失在误差范围内,可以不再进行优化。若第三预设损失阈值为0.4,则可认为该精度损失较大,需要进一步优化处理。
如图6所示,单层量化分析结果表明,Conv_1的单层损失为0.2542,Conv_0的单层损失为0.0521,明显高于Conv_2~Conv_9的误差,若第三预设损失阈值为0.4,第二预设损失阈值为0.1,则可以制定将Conv_1还原成高精度浮点的混合精度量化策略。
同时,本实施例中提供的校准数据集构建方式,比常规构建方式效果更好,下表是在一个典型模型中,抽取512张图片作为校准数据集进行量化的精度损失:
本实施例中根据单层量化分析的结果,选择将误差最大的两层还原成高精度浮点,精度损失如下表:
其中,上述表格中,性能(Performance)单位ms为毫秒,大小(Size)单位M为兆字节,精确率(Precision)指在被所有预测为正的样本中实际为正样本的概率,召回率(Recall)指在实际为正的样本中被预测为正样本的概率,F1分数(F1-Score)是一个平衡精确率和召回率的综合指标。
图7为本申请提供的神经网络模型量化装置的结构示意图,如图7所示,本实施例中,该神经网络模型量化装置300可以设置在电子设备中,如终端设备,神经网络模型量化装置300包括:
获取模块301,用于获取校准数据集和待量化的目标神经网络模型。
第一生成模块302,用于根据校准数据集对目标神经网络模型进行量化处理,生成目标神经网络模型对应的初步量化模型。
确定模块303,用于确定初步量化模型相对于目标神经网络模型的逐层精度损失和单层精度损失。逐层精度损失为初步量化模型中各神经网络层对应的逐层累积精度损失。单层精度损失为初步量化模型中各神经网络层对应的精度损失。
第二生成模块304,用于若逐层精度损失和/或单层精度损失满足预设损失条件,则将初步量化模型中单层精度损失大于第一预设损失阈值的神经网络层进行反量化处理,生成最终量化模型。
本实施例提供的神经网络模型量化装置可以执行图2所示方法实施例的技术方案,其实现原理和技术效果与图2所示方法实施例类似,在此不再一一赘述。
本申请提供的神经网络模型量化装置在上一实施例提供的神经网络模型量化装置的基础上,对神经网络模型量化装置进行了进一步的细化,则神经网络模型量化装置300包括:
可选的,本实施例中,获取模块301具体用于:
获取原始数据集和校准数据集对应的数据分布参数。原始数据集包括初始图片和初始图片对应的标签。根据标签以及数据分布参数对原始数据集中的初始图片进行筛选,生成对应校准数据集。
可选的,本实施例中,获取模块301在根据标签以及数据分布参数对原始数据集中的初始图片进行筛选,生成对应校准数据集时,具体用于:
按照预设筛选条件基于标签对原始数据集中的初始图片进行初步筛选,生成对应初步筛选数据集。预设筛选条件如下:
筛选后的图片中至多包含三种目标类别对应的目标。
筛选后的图片中每个目标检测框的面积大于或等于图片总面积的预设面积百分比阈值。
筛选后的图片中各目标检测框之间的交并比小于或等于预设比例阈值。
选取筛选后的图片中面积最大的目标检测框所对应的标签作为此图片的类别。
根据数据分布参数对初步筛选数据集进行再次筛选,生成对应校准数据集。数据分布参数包括:校准数据集中的图片总数、各图片对应的图片类别以及各图片类别对应的图片最大数量。
可选的,本实施例中,第一生成模块302具体用于:
对目标神经网络模型插入量化节点和反量化节点,生成中间神经网络模型。基于校准数据集对中间神经网络模型进行量化过程中的校准训练,生成初步量化模型。
可选的,本实施例中,确定模块303在确定初步量化模型相对于目标神经网络模型的逐层精度损失时,具体用于:
对初步量化模型中除开第一层神经网络层之外的其他层神经网络层进行反量化处理,生成反量化后的初步量化模型。反量化处理为去除神经网络层中的量化节点和反量化节点。确定反量化后的初步量化模型相对于目标神经网络模型的精度损失,并将该精度损失作为第一层神经网络层对应的逐层精度损失。将反量化后的初步量化模型中第一层神经网络层的下一层神经网络层作为当前层,并对当前层进行量化处理,生成处理后的初步量化模型。确定处理后的初步量化模型相对于目标神经网络模型的精度损失,并将该精度损失作为当前层对应的逐层精度损失。将当前层的下一神经网络层确定为当前层,并执行对当前层进行量化处理,生成处理后的初步量化模型的步骤,直至完成对所有神经网络层的处理。将各神经网络层对应的逐层精度损失确定为初步量化模型相对于目标神经网络模型的逐层精度损失。
可选的,本实施例中,确定模块303在确定初步量化模型相对于目标神经网络模型的单层精度损失时,具体用于:
将初步量化模型中第一层神经网络层作为当前层,对除开当前层之外的其他层神经网络层进行反量化处理,生成反量化后的初步量化模型。确定反量化后的初步量化模型相对于目标神经网络模型的精度损失,并将该精度损失作为当前层对应的单层精度损失。将当前层的下一神经网络层确定为当前层,并执行对除开当前层之外的其他层神经网络层进行反量化处理,生成反量化后的初步量化模型的步骤,直至完成对所有神经网络层的处理。将各神经网络层对应的单层精度损失确定为初步量化模型相对于目标神经网络模型的单层精度损失。
可选的,本实施例中,预设损失条件为单层精度损失大于第二预设损失阈值,或,预设损失条件为逐层精度损失大于第三预设损失阈值,或,单层精度损失大于第二预设损失阈值且逐层精度损失大于第三预设损失阈值。
第二生成模块304具体用于:
去除初步量化模型中单层精度损失大于第一预设损失阈值的神经网络层中的量化节点和反量化节点,生成最终量化模型。
本实施例提供的神经网络模型量化装置可以执行图2-图6所示方法实施例的技术方案,其实现原理和技术效果与图2-图6所示方法实施例类似,在此不再一一赘述。
根据本申请的实施例,本申请还提供了一种电子设备、一种计算机可读存储介质和一种计算机程序产品。
如图8所示,图8是本申请提供的电子设备的结构示意图。电子设备旨在各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、刀片式服务器、大型计算机、和其它适合的计算机。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图8所示,该电子设备包括:处理器401和存储器402。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理。
存储器402即为本申请所提供的非瞬时计算机可读存储介质。其中,存储器存储有可由至少一个处理器执行的指令,以使至少一个处理器执行本申请所提供的神经网络模型量化方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的神经网络模型量化方法。
存储器402作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的神经网络模型量化方法对应的程序指令/模块(例如,附图7所示的获取模块301、第一生成模块302、确定模块303、和第二生成模块304)。处理器401通过运行存储在存储器402中的非瞬时软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现上述方法实施例中的神经网络模型量化方法。
同时,本实施例还提供一种计算机产品,当该计算机产品中的指令由电子设备的处理器执行时,使得电子设备能够执行上述实施例的神经网络模型量化方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请实施例的其它实施方案。本申请旨在涵盖本申请实施例的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请实施例的一般性原理并包括本申请实施例未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本申请实施例并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请实施例的范围仅由所附的权利要求书来限制。
Claims (8)
1.一种神经网络模型量化方法,其特征在于,包括:
获取校准数据集和待量化的目标神经网络模型;
根据所述校准数据集对所述目标神经网络模型进行量化处理,生成所述目标神经网络模型对应的初步量化模型;
确定所述初步量化模型相对于所述目标神经网络模型的逐层精度损失和单层精度损失;所述逐层精度损失为所述初步量化模型中各神经网络层对应的逐层累积精度损失;所述单层精度损失为初步量化模型中各神经网络层对应的精度损失;
若所述单层精度损失大于第二预设损失阈值且所述逐层精度损失大于第三预设损失阈值,则将所述初步量化模型中单层精度损失大于第一预设损失阈值的神经网络层进行反量化处理,生成最终量化模型;
所述获取校准数据集,包括:
获取原始数据集和所述校准数据集对应的数据分布参数;所述原始数据集包括初始图片和初始图片对应的标签;
根据所述标签以及所述数据分布参数对所述原始数据集中的初始图片进行筛选,生成对应校准数据集;所述数据分布参数包括:校准数据集中的图片总数、各图片对应的图片类别以及各图片类别对应的图片最大数量;
所述将所述初步量化模型中单层精度损失大于第一预设损失阈值的神经网络层进行反量化处理,生成最终量化模型,包括:
去除所述初步量化模型中单层精度损失大于第一预设损失阈值的神经网络层中的量化节点和反量化节点,生成最终量化模型。
2.根据权利要求1所述的方法,其特征在于,所述根据所述标签以及所述数据分布参数对所述原始数据集中的初始图片进行筛选,生成对应校准数据集,包括:
按照预设筛选条件基于所述标签对所述原始数据集中的初始图片进行初步筛选,生成对应初步筛选数据集;所述预设筛选条件如下:
筛选后的图片中至多包含三种目标类别对应的目标;
筛选后的图片中每个目标检测框的面积大于或等于图片总面积的预设面积百分比阈值;
筛选后的图片中各目标检测框之间的交并比小于或等于预设比例阈值;
选取筛选后的图片中面积最大的目标检测框所对应的标签作为此图片的类别;
根据所述数据分布参数对初步筛选数据集进行再次筛选,生成对应校准数据集。
3.根据权利要求1所述的方法,其特征在于,所述根据所述校准数据集对所述目标神经网络模型进行量化处理,生成所述目标神经网络模型对应的初步量化模型,包括:
对所述目标神经网络模型插入量化节点和反量化节点,生成中间神经网络模型;
基于所述校准数据集对所述中间神经网络模型进行量化过程中的校准训练,生成所述初步量化模型。
4.根据权利要求3所述的方法,其特征在于,所述确定所述初步量化模型相对于所述目标神经网络模型的逐层精度损失,包括:
对所述初步量化模型中除开第一层神经网络层之外的其他层神经网络层进行反量化处理,生成反量化后的初步量化模型;所述反量化处理为去除神经网络层中的量化节点和反量化节点;
确定反量化后的初步量化模型相对于目标神经网络模型的精度损失,并将该精度损失作为第一层神经网络层对应的逐层精度损失;
将反量化后的初步量化模型中第一层神经网络层的下一层神经网络层作为当前层,并对所述当前层进行量化处理,生成处理后的初步量化模型;
确定处理后的初步量化模型相对于目标神经网络模型的精度损失,并将该精度损失作为当前层对应的逐层精度损失;
将当前层的下一神经网络层确定为当前层,并执行对所述当前层进行量化处理,生成处理后的初步量化模型的步骤,直至完成对所有神经网络层的处理;
将各神经网络层对应的逐层精度损失确定为所述初步量化模型相对于所述目标神经网络模型的逐层精度损失。
5.根据权利要求4所述的方法,其特征在于,确定所述初步量化模型相对于所述目标神经网络模型的单层精度损失,包括:
将所述初步量化模型中第一层神经网络层作为当前层,对除开所述当前层之外的其他层神经网络层进行反量化处理,生成反量化后的初步量化模型;
确定反量化后的初步量化模型相对于目标神经网络模型的精度损失,并将该精度损失作为当前层对应的单层精度损失;
将当前层的下一神经网络层确定为当前层,并执行所述对除开所述当前层之外的其他层神经网络层进行反量化处理,生成反量化后的初步量化模型的步骤,直至完成对所有神经网络层的处理;
将各神经网络层对应的单层精度损失确定为所述初步量化模型相对于所述目标神经网络模型的单层精度损失。
6.一种神经网络模型量化装置,其特征在于,包括:
获取模块,用于获取校准数据集和待量化的目标神经网络模型;
第一生成模块,用于根据所述校准数据集对所述目标神经网络模型进行量化处理,生成所述目标神经网络模型对应的初步量化模型;
确定模块,用于确定所述初步量化模型相对于所述目标神经网络模型的逐层精度损失和单层精度损失;所述逐层精度损失为所述初步量化模型中各神经网络层对应的逐层累积精度损失;所述单层精度损失为初步量化模型中各神经网络层对应的精度损失;
第二生成模块,用于若所述单层精度损失大于第二预设损失阈值且所述逐层精度损失大于第三预设损失阈值,则将所述初步量化模型中单层精度损失大于第一预设损失阈值的神经网络层进行反量化处理,生成最终量化模型;
所述获取模块,具体用于获取原始数据集和所述校准数据集对应的数据分布参数;所述原始数据集包括初始图片和初始图片对应的标签;
根据所述标签以及所述数据分布参数对所述原始数据集中的初始图片进行筛选,生成对应校准数据集;所述数据分布参数包括:校准数据集中的图片总数、各图片对应的图片类别以及各图片类别对应的图片最大数量;
所述第二生成模块,具体用于去除所述初步量化模型中单层精度损失大于第一预设损失阈值的神经网络层中的量化节点和反量化节点,生成最终量化模型。
7.一种电子设备,其特征在于,包括:存储器和处理器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1至5任一项所述的神经网络模型量化方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至5任一项所述的神经网络模型量化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311352578.9A CN117114075B (zh) | 2023-10-19 | 2023-10-19 | 神经网络模型量化方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311352578.9A CN117114075B (zh) | 2023-10-19 | 2023-10-19 | 神经网络模型量化方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117114075A CN117114075A (zh) | 2023-11-24 |
CN117114075B true CN117114075B (zh) | 2024-01-26 |
Family
ID=88813137
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311352578.9A Active CN117114075B (zh) | 2023-10-19 | 2023-10-19 | 神经网络模型量化方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117114075B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022103291A1 (en) * | 2020-11-13 | 2022-05-19 | Huawei Technologies Co., Ltd. | Method and system for quantizing a neural network |
CN114676825A (zh) * | 2022-04-15 | 2022-06-28 | 上海云从企业发展有限公司 | 一种神经网络模型量化方法、系统、设备及介质 |
CN115952832A (zh) * | 2022-12-28 | 2023-04-11 | 浙江大华技术股份有限公司 | 自适应模型量化方法及装置、存储介质及电子装置 |
CN116362287A (zh) * | 2023-01-29 | 2023-06-30 | 北京邮电大学 | 一种支持多种硬件平台的神经网络模型量化部署方法 |
CN116822594A (zh) * | 2023-07-05 | 2023-09-29 | 维沃移动通信有限公司 | 模型量化方法、模型量化装置、电子设备和介质 |
-
2023
- 2023-10-19 CN CN202311352578.9A patent/CN117114075B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022103291A1 (en) * | 2020-11-13 | 2022-05-19 | Huawei Technologies Co., Ltd. | Method and system for quantizing a neural network |
CN114676825A (zh) * | 2022-04-15 | 2022-06-28 | 上海云从企业发展有限公司 | 一种神经网络模型量化方法、系统、设备及介质 |
CN115952832A (zh) * | 2022-12-28 | 2023-04-11 | 浙江大华技术股份有限公司 | 自适应模型量化方法及装置、存储介质及电子装置 |
CN116362287A (zh) * | 2023-01-29 | 2023-06-30 | 北京邮电大学 | 一种支持多种硬件平台的神经网络模型量化部署方法 |
CN116822594A (zh) * | 2023-07-05 | 2023-09-29 | 维沃移动通信有限公司 | 模型量化方法、模型量化装置、电子设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117114075A (zh) | 2023-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112287986B (zh) | 一种图像处理方法、装置、设备及可读存储介质 | |
CN110378419B (zh) | 一种图像集扩充方法、装置、设备及可读存储介质 | |
CN111027428B (zh) | 一种多任务模型的训练方法、装置及电子设备 | |
CN112819157B (zh) | 神经网络训练的方法及装置、智能行驶控制的方法及装置 | |
CN110991568A (zh) | 目标识别方法、装置、设备和存储介质 | |
CN111985495A (zh) | 模型部署方法、装置、系统及存储介质 | |
CN111967608A (zh) | 数据处理方法、装置、设备及存储介质 | |
CN109697083B (zh) | 数据的定点化加速方法、装置、电子设备及存储介质 | |
CN114861907A (zh) | 数据计算方法、装置、存储介质和设备 | |
CN117114075B (zh) | 神经网络模型量化方法、装置、设备及介质 | |
CN111507396B (zh) | 缓解神经网络对未知类样本产生错误分类的方法及装置 | |
CN113205158A (zh) | 网络模型的剪枝量化处理方法、装置、设备及存储介质 | |
CN117014507A (zh) | 任务卸载模型的训练方法、任务的卸载方法及装置 | |
CN114565080A (zh) | 神经网络压缩方法及装置、计算机可读介质、电子设备 | |
CN110276448B (zh) | 一种模型压缩方法及装置 | |
CN114238106A (zh) | 测试时间预测方法及装置、电子设备、存储介质 | |
CN113157453A (zh) | 一种基于任务复杂度的高能效目标检测任务动态调度方法 | |
CN118153634A (zh) | 用于自注意力模型残差结构量化调优的方法及计算设备 | |
CN114509730B (zh) | 一种基于elm的干扰频域状态在线预测方法 | |
CN116886418A (zh) | 流量特征序列的优化方法、装置、设备及介质 | |
CN114117010A (zh) | Nlp任务的处理方法、装置、终端设备和存储介质 | |
CN118333018A (zh) | 一种指令生成方法、装置、存储介质和电子设备 | |
CN115660067A (zh) | 网络训练方法、电子设备及计算机可读存储装置 | |
CN117931211A (zh) | 模型部署方法、设备、装置、芯片及存储介质 | |
CN117436548A (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 |