CN111860841A - 量化模型的优化方法、装置、终端及存储介质 - Google Patents
量化模型的优化方法、装置、终端及存储介质 Download PDFInfo
- Publication number
- CN111860841A CN111860841A CN202010739079.5A CN202010739079A CN111860841A CN 111860841 A CN111860841 A CN 111860841A CN 202010739079 A CN202010739079 A CN 202010739079A CN 111860841 A CN111860841 A CN 111860841A
- Authority
- CN
- China
- Prior art keywords
- fixed point
- point calculation
- calculation model
- model
- value
- 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.)
- Granted
Links
- 238000013139 quantization Methods 0.000 title claims abstract description 134
- 238000000034 method Methods 0.000 title claims abstract description 85
- 238000005457 optimization Methods 0.000 title claims abstract description 37
- 238000004364 calculation method Methods 0.000 claims abstract description 276
- 238000007667 floating Methods 0.000 claims abstract description 34
- 230000004044 response Effects 0.000 claims description 30
- 238000005094 computer simulation Methods 0.000 claims description 21
- 230000009467 reduction Effects 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 30
- 230000006870 function Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 8
- 238000013528 artificial neural network Methods 0.000 description 7
- 238000003062 neural network model Methods 0.000 description 7
- 238000013135 deep learning Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 3
- 241000282326 Felis catus Species 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000004984 smart glass Substances 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/57—Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本申请实施例公开了一种量化模型的优化方法、装置、终端及存储介质,属于计算机技术领域。本申请实施例能够首先对浮点计算模型进行初步的量化,得到第一定点计算模型,之后通过调整第一定点计算模型中的量化参数,得到第二定点计算模型,当调整后的定点计算模型的精度值提高时,将第二定点计算模型作为优化后的模型。由此可见,本申请实施例能够在浮点计算模型量化为第一定点计算模型之后,还能够通过调整该第一定点计算模型中的量化参数,得到精度值更高的第二定点计算模型,降低了量化浮点计算模型带来的精度下降的影响,增强了得到高精度的定点计算模型的效率。
Description
技术领域
本申请实施例涉及计算机技术领域,特别涉及一种量化模型的优化方法、装置、终端及存储介质。
背景技术
随着深度学习(Deep learning)技术的发展,为了加速神经网络模型的运行速度,便于神经网络在移动端中部署,通常使用量化技术将浮点计算模型量化为定点计算模型。
在一些可能的实现方式中,技术人员将浮点计算模型中参与计算的网络输入、权重、偏置和伸缩尺度参数等,均由浮点数转换为定点数,进而完成浮点计算模型量化为定点计算模型的过程。
发明内容
本申请实施例提供了一种量化模型的优化方法、装置、终端及存储介质。所述技术方案如下:
根据本申请的一方面内容,提供了一种量化模型的优化方法,所述方法包括:
根据第一数据集将浮点计算模型量化为第一定点计算模型;
将第一计算节点的量化参数从第一数值更新为第二数值,得到第二定点计算模型,所述第一计算节点属于所述第一定点计算模型,所述第一数值和所述第二数值为自然数,所述第二数值小于等于目标参数;
响应于所述第二定点计算模型的精度值高于所述第一定点计算模型的精度值,将所述第一定点计算模型优化为所述第二定点计算模型。
根据本申请的另一方面内容,提供了一种量化模型的优化装置,所述装置包括:
模型量化模块,用于根据第一数据集将浮点计算模型量化为第一定点计算模型;
数值更新模块,用于将第一计算节点的量化参数从第一数值更新为第二数值,得到第二定点计算模型,所述第一计算节点属于所述第一定点计算模型,所述第一数值和所述第二数值为自然数,所述第二数值小于等于目标参数;
模型优化模块,用于响应于所述第二定点计算模型的精度值高于所述第一定点计算模型的精度值,将所述第一定点计算模型优化为所述第二定点计算模型。
根据本申请的另一方面内容,提供了一种终端,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如本申请实施提供的量化模型的优化方法。
根据本申请的另一方面内容,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如本申请实施提供的量化模型的优化方法。
根据本申请的一个方面,提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中提供的量化模型的优化方法。
本申请实施例能够首先对浮点计算模型进行初步的量化,得到第一定点计算模型,之后通过调整第一定点计算模型中的量化参数,得到第二定点计算模型,当调整后的定点计算模型的精度值提高时,将第二定点计算模型作为优化后的模型。由此可见,本申请实施例能够在浮点计算模型量化为第一定点计算模型之后,还能够通过调整该第一定点计算模型中的量化参数,得到精度值更高的第二定点计算模型,降低了量化浮点计算模型带来的精度下降的影响,增强了得到高精度的定点计算模型的效率。
附图说明
为了更清楚地介绍本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本申请一个示例性实施例提供的一种终端的结构框图;
图2是本申请实施例提供的一种基于深度学习的神经网络量化过程的示意图;
图3是基于图2所示实施例提供的一种神经网络的量化过程示意图;
图4是本申请一个示例性实施例提供的一种量化模型的优化方法的流程图;
图5是本申请另一个示例性实施例提供的另一种量化模型的优化方法流程图;
图6是基于图5所示实施例给出的一种浮点计算模型从量化到优化的过程示意图;
图7是本申请一个示例性实施例提供的一种量化模型的优化装置的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。在本申请的描述中,需要说明的是,除非另有明确的规定和限定,术语“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。此外,在本申请的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
为了本申请实施例所示方案易于理解,下面对本申请实施例中出现的若干名词进行介绍。
数据集:本申请实施例中用于量化指定浮点计算模型的数据的集合。可选地,该数据集包括第一数据集和第二数据集。在一种可能的实施方式中,第一数据集和第二数据集是相同的数据集。在另一种可能的实施方式中,第一数据集和第二数据集是不同的数据集。
浮点计算模型:一种在计算过程中处理的数据和使用的参数均为浮点的计算模型。一些应用方式中,浮点计算模型拥有较为良好的精度值,但是所占用的存储空间和内存带宽较大,进行推理过程时的能耗较高,对于运行在移动端中有较大的压力。
定点计算模型:一种在计算过程中处理的数据和使用的参数均为整数的计算模型。
目标参数:作为一种实现的方式,本申请中的目标参数设定为230-shift。在一种可能的实现方式中,第一定点计算模型中的每一个计算节点均具有对应的shift值。可选地,不同的节点取得的shift的数值不同。也即,针对不同的计算节点,该节点对应的目标参数也不同。
在本申请实施例中,该常数可以是初步量化过程相关的数据。在初步量化过程中,终端能够根据第一数据集将浮点计算模型量化为第一定点计算模型。
示例性地,本申请实施例所示的量化模型的优化方法,可以应用在终端中,该终端具备显示屏且具备量化模型的优化功能。终端可以包括手机、平板电脑、膝上型电脑、台式电脑、电脑一体机、服务器、工作站、电视、机顶盒、智能眼镜、智能手表、数码相机、MP4播放终端、MP5播放终端、学习机、点读机、电纸书、电子词典、车载终端、虚拟现实(VirtualReality,VR)播放终端或增强现实(Augmented Reality,AR)播放终端等。
在一种可能的实施方式中,本申请所示的终端也可以是一种计算设备,该计算设备是网络端的服务器。服务器可以是云端服务器、虚拟服务器或其它能够实现本申请实施例所提供的量化模型的优化方法的计算设备。
请参考图1,图1是本申请一个示例性实施例提供的一种终端的结构框图,如图1所示,该终端包括处理器120和存储器140,所述存储器140中存储有至少一条指令,所述指令由所述处理器120加载并执行以实现如本申请各个方法实施例所述的量化模型的优化方法。
在本申请中,终端100是具备神经网络量化功能的电子设备。终端100能够根据第一数据集将浮点计算模型量化为第一定点计算模型;将第一计算节点的量化参数从第一数值更新为第二数值,得到第二定点计算模型,所述第一计算节点属于所述第一定点计算模型,所述第一数值和所述第二数值为自然数,所述第二数值小于等于目标参数;响应于所述第二定点计算模型的精度值高于所述第一定点计算模型的精度值,将所述第一定点计算模型优化为所述第二定点计算模型。
处理器120可以包括一个或者多个处理核心。处理器120利用各种接口和线路连接整个终端100内的各个部分,通过运行或执行存储在存储器140内的指令、程序、代码集或指令集,以及调用存储在存储器140内的数据,执行终端100的各种功能和处理数据。可选的,处理器120可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器120可集成中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)、神经网络处理器(Neural network Processing Unit,NPU)、张量处理器(Tensor Processing Unit,TPU)、深度学习处理器、大脑处理器(Brain Processing Unit,BPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器120中,单独通过一块芯片进行实现。
存储器140可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory,ROM)。可选的,该存储器140包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器140可用于存储指令、程序、代码、代码集或指令集。存储器140可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等;存储数据区可存储下面各个方法实施例中涉及到的数据等。
在本申请实施例中,深度学习技术中,对指定的浮点计算模型(也即一种神经网络模型),能够通过量化的方式减少神经网络模型的大小,加速神经网络模型的运行速度。同时,量化后的神经网络模型还能够降低推理过程中带来的功耗,从而便于部署在移动终端中。
在一种常见的量化方式中,浮点计算模型的权重(weight)数据等从浮点数转换成定点数,同时获取每一计算节点(Layer)的量化参数,最终生成浮点计算模型对应的定点计算模型。
量化后的定点计算模型在Forward过程中,能够根据每一个计算节点的量化参数,动态调整每一个计算节点输出的特征图(Feature map)结果。同时,由于量化后的定点计算模型中的权重数据等已经提前量化为定点网络,所以在Forward过程中,所有参与运算的数据均是定点数,运算都是定点运算。
本申请实施例通过一个具体的实现过程,论述上述浮点计算模型量化为定点计算模型的过程。
以待处理的浮点计算模型中仅包含一个卷积计算节点(conv layer)为例。
该卷积计算节点的Forward过程中模型输出的理论计算公式如公式(1)所示。
在公式(1)中,Qx表示网络输入,Qy表示网络输出,Qw表示权重(weight),Qb表示偏置(bias)。Zx表示网络输入的零点,Zw表示权重的零点,Zy表示网络输出的零点,需要说明的是,Zx、Zw和Zy均为定点数。为伸缩尺度参数,是浮点数。
在量化过程中,需要将参与计算的各个量都转变为定点数计算,下面将通过如下步骤将上述公式(1)的各个变量转变为定点数,进而计算Qx。
其次,令M=Rounding(q*231)公式(3)
由公式(4)完成定点计算模型的Forward计算,公式中M,shift均为定点数。
在本申请中,根据公式(4),对于只有一个卷积计算节点(Layer)的深度神经网络模型,量化前的浮点计算模型和量化后的定点计算模型如图2所示,图2是本申请实施例提供的一种基于深度学习的神经网络量化过程的示意图。在图2中,浮点计算模型210经过量化过程得到定点计算模型220。
在图2中,浮点计算模型210包括网络输入(input)211、权重(weight)212、计算节点(conv Layer)213、卷积结果214、偏置(bias)215、偏置结果216和网络输出217。需要说明的是,网络输入(input)211、权重(weight)212、卷积结果214、偏置(bias)215、偏置结果216和网络输出217均为浮点数。
在图2中,定点计算模型220包括网络输入(input)221、权重(weight)222、计算节点(conv Layer)223、卷积结果224、偏置(bias)225、量化参数M226和网络输出227。需要说明的是,网络输入(input)221、权重(weight)222、卷积结果224、偏置(bias)225、量化参数M226和网络输出227均为定点数。
请参见图3,图3是基于图2所示实施例提供的一种神经网络的量化过程示意图。在图3中,数据集310输入到浮点计算模型320中,经过量化过程330的处理,得到量化模型340。其中,量化过程包括将权重和偏置等由浮点数转换成定点数。其中,每一层的量化参数需要分别确认。量化参数包括零点值(Z)、量化参数M和量化参数shift。
请参考图4,图4是本申请一个示例性实施例提供的一种量化模型的优化方法的流程图。该量化模型的优化方法可以应用在上述图1所示的终端中。在图4中,量化模型的优化方法包括:
步骤410,根据第一数据集将浮点计算模型量化为第一定点计算模型。
在本申请实施例中,终端能够对第一数据集进行初步的量化处理。需要说明的是,终端能够采用如同图2或图3所示实施例提供的方式,将浮点计算模型量化为第一定点计算模型。
可选地,本申请实施例还能够通过其他方式将浮点计算模型量化为第一定点计算模型,本申请实施例对此不作限定。
步骤420,将第一计算节点的量化参数从第一数值更新为第二数值,得到第二定点计算模型,第一计算节点属于第一定点计算模型,第一数值和第二数值为自然数,第二数值小于等于目标参数。
示意性的,终端能够对第一定点计算模型中的每一个计算节点的量化参数进行数值上的调优。
在一种可能的实现方式中,若第一定点计算模型包括1个计算节点,则该计算节点为第一计算节点。终端将第一计算节点的量化参数从第一数值更新为第二数值。由于第一数值和第二数值均为第一计算节点的量化参数的取值,且第一计算节点中的量化参数均需要为定点数,因此,第一数值和第二数值均为自然数。第二数值小于等于目标参数。
示意性的,以图2或图3所示初步量化过程为例,第一计算节点的量化参数可以是指量化参数M。
步骤430,响应于第二定点计算模型的精度值高于第一定点计算模型的精度值,将第一定点计算模型优化为第二定点计算模型。
在本申请实施例中,当第二定点计算模型的精度值高于第一定点计算模型的精度值时,说明第一计算节点中的量化参数调整到第二数值时,提高了整个定点计算模型的精度。因此,本申请实施例将第一定点计算模型优化为第二定点计算模型,使得定点计算模型得到优化。
在本申请实施例中,量化模型的优化方法能够结合终端中的处理器以及存储器实现,具体实现过程介绍如下。
(1)处理器根据第一数据集将浮点计算模型量化为第一定点计算模型。
在本步骤中,处理器将从存储器中读取第一数据集。并且,处理器能够从存储器中读取到浮点计算模型。处理器在获取到第一数据集以及浮点计算模型后,将以第一数据集作为数据源,对浮点计算模型进行量化,得到量化后的第一定点计算模型。
(2)处理器将第一计算节点的量化参数从第一数值更新为第二数值,得到第二定点计算模型。
在本步骤中,处理器能够获取到第一计算节点的各个量化参数。需要说明的是,在第一计算节点中,量化参数的个数既可以是一个,也可以是多个。在一种可能的实现方式中,处理器能够对第一定点计算模型中的计算节点逐个进行调整,在处理器对第一计算节点中的量化参数进行调整时,处理器将更新第一计算节点中被选中的量化参数,更新量化参数后的模型是第二定点计算模型。
(3)响应于第二定点计算模型的精度值高于第一定点计算模型的精度值,处理器将第一定点计算模型优化为第二定点计算模型。
在本步骤中,处理器能够在将第一计算节点的量化参数从第一数值更新为第二数值之后,通过给定的数据测算第一定点模型的精度值并通过同样的给定的数据测算第二定点模型的精度值。响应于第二定点计算模型的精度值高于第一定点计算模型的精度值,处理器能够将第一定点计算模型优化为第二定点计算模型。在处理器得到第二定点计算模型后,响应于调用原第一定点计算模型的调度命令,处理器将通过使令第二定点计算模型响应该调度命令。
在本申请实施例另一种可能的量化模型的优化方法的实现方式中,本申请将用于提升图像识别的精度和/或语音识别的精度。示意性的,处理器根据第一图像数据集将浮点计算模型量化为第一定点计算模型。处理器将第一计算节点的量化参数从第一数值更新为第二数值,得到第二定点计算模型。处理器响应于第二定点计算模型的精度值高于第一定点计算模型的精度值,将第一定点计算模型优化为第二定点计算模型。
一种可能的图像识别场景中,响应于图像识别指令,处理器通过第二定点计算模型对待识别的输入图像进行计算,获得图像识别结果。需要说明的是,图像识别结果用于指示输入图像被认为的类型和/或相似概率。例如,第二定点计算模型对待识别的输入图像进行计算,获得图像被认为的类型是猫,相似概率为84%。
在另一种可能的声音识别场景中,响应于声音识别指令,处理器通过第二定点计算模型对待识别的输入语音进行计算,获得声音识别结果。需要说明的是,声音识别结果用于指示输入语音被认为的所属个体和/或相似概率。例如,第二定点计算模型对待识别的输入语音进行计算,获得语音被认为的所属个体是托尼,相似概率为92%。
综上所述,本申请实施例能够根据第一数据集将浮点计算模型量化为第一定点计算模型,之后通过将第一定点计算模型中的量化参数从第一数值更新为第二数值,得到第二定点计算模型,当第二定点计算模型的精度值高于第一定点计算模型的精度值时,将第一定点计算模型优化为第二定点计算模型。由此可见,本申请实施例能够在浮点计算模型量化为第一定点计算模型之后,还能够通过调整该第一定点计算模型中的量化参数,得到精度值更高的第二定点计算模型,降低了量化浮点计算模型带来的精度下降的影响,增强了得到高精度的定点计算模型的效率。
基于上一个实施例所公开的方案,终端还能够将未经优化的定点计算模型通过动态搜索校准的过程进行优化,以实现最大程度提高定点计算模型的精度值的效果,详情请参考如下实施例。
请参见图5,图5是本申请另一个示例性实施例提供的另一种量化模型的优化方法流程图。该量化模型的优化方法可以应用在上述所示的终端中。在图5中,该量化模型的优化方法包括:
步骤510,根据第一数据集将浮点计算模型量化为第一定点计算模型。
在本申请实施例中,步骤510的执行过程和步骤410的执行过程相同,此处不再赘述。
步骤521,保持第二计算节点的量化参数不变。
在本申请实施例中,第一定点计算模型中包括多个计算节点,这些计算节点可以包括第一计算节点和第二计算节点。例如,终端中有1个第一计算节点和4个第二计算节点,则终端可以先保持4个第二计算节点的量化参数都不改变。
步骤522,将第一计算节点的量化参数从第一数值更新为第二数值,得到第二定点计算模型。
示意性的,终端能够以当前的第一数值为基础,在第一数值附近重新搜索一个数值为第二数值。由于第二数值具有取值范围,则该取值方法包括两种。第一种方法是取得第二数值大于第一数值,第二种方法是取得第二数值小于第一数值。
需要说明的是,终端取第二数值的方式可以是二分法的方式取值。例如,第一数值是M1,第二数值是M2,目标参数是N。M2的取值范围是[0,N],且M1也小于N。在区间[0,M1]内,终端可以通过二分法取M2=0.5M1,若0.5M1不为整数则取整后的值为M2。在区间(M1,N]内,终端可以通过二分法取M2=M1+0.5N,若M1+0.5N不为整数则取整后的值为M2。
步骤531,获取第一定点计算模型的精度值。
示意性的,终端能够通过将数据集中的数据输入到第一定点计算模型,得到网络输出,将网络输出与数据集中给出的正确结果相比较,得到第一定点计算模型的精度值。
步骤532,将第二数据集输入第二定点计算模型,获取第二定点计算模型的精度值。
示意性的,终端还能够通过第二数据集来确定第二定点计算模型的精度值。
需要说明的是,该第二数据集可以是应用场景较为广泛的数据集,以便后续优化过的第二定点计算模型的适应范围更广。
一种可能的实现方式中,第二数据集可以是由图片构成的图片数据集。
另一种可能的实现方式中,第二数据集可以是由语音构成的语音数据集。
步骤533,响应于第二定点计算模型的精度值高于第一定点计算模型的精度值,将第一定点计算模型优化为第二定点计算模型。
需要说明的是,步骤533还可以通过下列步骤1)、步骤2)和步骤3)来实现对同一个计算节点进行量化参数的最优查找,该过程可以称为量化参数的动态搜索过程。
步骤1),响应于第二定点计算模型的精度值高于第一定点计算模型的精度值,则将第二数值更新为第i数值,得到第i定点计算模型,i为大于等于3的整数。
在本申请实施例中当第二定点计算模型的精度值高于第一定点计算模型的精度值时,终端可以继续动态寻找是否存在令定点计算模型的精度值更高的数值,在该寻找过程中,可以令第二数值继续更新为第i数值。
步骤2),将第二数据集输入第i定点计算模型,获取第i定点计算模型的精度值。
示意性的,该获取第i定点计算模型的精度值的方法,类似于确定前述定点计算模型的精度值的方法,本处不再赘述。
步骤3),响应于第i定点计算模型的精度值高于第二定点计算模型的精度值,将第二定点计算模型优化为第i定点计算模型。
需要说明的是,终端将第二定点计算模型优化为第i定点计算模型后,将根据第一计算节点的量化参数中是否还存在没有取值过的其它数值。若存在,则第一计算节点的量化参数将继续取值该数值,并判断是否对当前的定点计算模型进行进一步的优化。若不存在,则第一计算节点的量化参数已经完成优化,终端可以采用同样的方法对第二计算节点的量化参数进行优化,直至第一定点计算模型中的全部计算节点均完成优化,则本申请得到完全优化后的定点计算模型。
可选地,终端将第一计算节点中的M由第一数值更新为第二数值时,可以有两种情况。介绍如下。
情况1:第二数值大于第一数值,且第i数值大于第二数值且小于等于目标参数。
在该情况中,终端取值的第二数值大于第一数值,说明终端在取大于第一数值方向的第二数值时,定点计算模型的精度值提高。同时,由于精度提高的方向具有单调性,则后续第i数值的取值方向为大于第二数值且小于等于目标参数的方向。基于该动态取值的方式,终端将在第二数值的取值范围内,通过较少的计算次数,较快获取到提高定点计算模型的精度值的量化参数的取值。
情况2:第二数值小于第一数值,且第i数值小于第二数值且大于等于零。
在该情况中,终端取值的第二数值小于第一数值,说明终端在取小于第一数值方向的第二数值时,定点计算模型的精度值提高。同时,由于精度提高的方向具有单调性,则后续第i数值的取值方向为小于第二数值且大于等于零。基于该动态取值的方式,终端将在第二数值的取值范围内,通过较少的计算次数,较快获取到提高定点计算模型的精度值的量化参数的取值。
在一种可能的实现方式中,响应于第i定点计算模型的精度值高于任一取值的第二数值对应的定点计算模型的精度值,将第二定点计算模型优化为第i定点计算模型。需要说明的是,该场景即为一个计算节点中,当前的定点计算模型的精度值高于在取值范围内的任意一个取值的第二数值对应的定点计算模型的精度值,则第二定点计算模型优化为第i定点计算模型,且认为该计算节点已完成量化参数的优化。
步骤541,响应于第一计算节点的量化参数和第二计算节点的量化参数完成更新,得到对应的目标定点计算模型。
示意性的,当终端确定第一计算节点的量化参数和第二计算节点的量化参数均完成更新时,终端将当前的定点计算模型确认为目标定点计算模型。
步骤542,将第二定点计算模型优化为目标定点计算模型。
示意性的,终端将第二定点计算模型优化为目标定点计算模型。例如,第一定点计算模型中包括a1个第一计算节点和a2个第二计算节点。当a1个第一计算节点的量化参数和a2个第二计算节点的量化参数均完成更新时,说明第一定点计算模型中的各个计算节点均已完成调整,当前的定点计算模型的性能已达到本申请实施例给出的优化状态。
示意性的,请参见图6,图6是基于图5所示实施例给出的一种浮点计算模型从量化到优化的过程示意图。在图6中,包括浮点计算模型610、第一定点计算模型620和第二定点计算模型630。
可选地,浮点计算模型610包括网络输入(input)611、权重(weight)612、计算节点(conv Layer)613、卷积结果614、偏置(bias)615、偏置结果616和网络输出617。
可选地,第一定点计算模型620包括第二数据集621、网络输入(input)622、权重(weight)623、计算节点(conv Layer)624、卷积结果625、偏置(bias)626、量化参数M(第一数值)627和网络输出628。
可选地,第二定点计算模型630包括网络输入(input)631、权重(weight)632、计算节点(conv Layer)633、卷积结果634、偏置(bias)635、量化参数M(第二数值)636和网络输出637。
综上所述,本实施例能够在定点计算模型包括多个计算节点时,确定一个当前要处理的第一计算节点,将其他的计算节点的量化参数控制不变,调整第一计算节点的量化参数的数值,并验证定点计算模型的精度值是否提高,在精度值提高时将原本的定点计算模型优化为新的定点计算模型,从而提高了获取精度值较高的定点计算模型的效率。
本实施例提供的量化模型的优化方法,还能够在计算模型包括多个计算节点时,对每一个计算节点进行相同方式的量化参数的寻优,使得整个定点计算模型的精度值得到提升。
本实施例提供的量化模型的优化方法,还能够通过全局的量化参数的调优,使得定点计算模型在获得量化后易部署于移动终端的前提下,获得近似于理论计算的精度值,优化了量化后的定点计算模型。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参考图7,图7是本申请一个示例性实施例提供的一种量化模型的优化装置的结构框图。该量化模型的优化装置可以通过软件、硬件或者两者的结合实现成为终端的全部或一部分。该装置包括:
模型量化模块710,用于根据第一数据集将浮点计算模型量化为第一定点计算模型;
数值更新模块720,用于将第一计算节点的量化参数从第一数值更新为第二数值,得到第二定点计算模型,所述第一计算节点属于所述第一定点计算模型,所述第一数值和所述第二数值为自然数,所述第二数值小于等于目标参数;
模型优化模块730,用于响应于所述第二定点计算模型的精度值高于所述第一定点计算模型的精度值,将所述第一定点计算模型优化为所述第二定点计算模型。
在一个可选的实施例中,所述装置中涉及的所述第一定点计算模型包括所述第一计算节点和第二计算节点,所述数值更新模块720,用于保持所述第二计算节点的量化参数不变;将所述第一计算节点的量化参数从所述第一数值更新为所述第二数值,得到所述第二定点计算模型。
在一个可选的实施例中,所述模型优化模块730,用于获取所述第一定点计算模型的精度值;将第二数据集输入所述第二定点计算模型,获取所述第二定点计算模型的精度值;响应于所述第二定点计算模型的精度值高于所述第一定点计算模型的精度值,将所述第一定点计算模型优化为所述第二定点计算模型。
在一个可选的实施例中,所述模型优化模块730,用于响应于所述第二定点计算模型的精度值高于所述第一定点计算模型的精度值,则将所述第二数值更新为第i数值,得到第i定点计算模型,所i为大于等于3的整数;将所述第二数据集输入所述第i定点计算模型,获取所述第i定点计算模型的精度值;响应于所述第i定点计算模型的精度值高于所述第二定点计算模型的精度值,将所述第二定点计算模型优化为所述第i定点计算模型。
在一个可选的实施例中,所述装置涉及的所述第二数值大于所述第一数值,且所述第i数值大于所述第二数值且小于等于所述目标参数;或,所述第二数值小于所述第一数值,且所述第i数值小于所述第二数值且大于等于零。
在一个可选的实施例中,所述模型优化模块730,用于响应于所述第i定点计算模型的精度值高于任一取值的所述第二数值对应的定点计算模型的精度值,将所述第二定点计算模型优化为所述第i定点计算模型。
在一个可选的实施例中,所述装置还包括模型获取模块和全局优化模块,所述模型获取模块,用于响应于所述第一计算节点的量化参数和所述第二计算节点的量化参数完成更新,得到对应的目标定点计算模型;所述全局优化模块,用于将所述第二定点计算模型优化为所述目标定点计算模型。
综上所述,本实施例能够在定点计算模型包括多个计算节点时,确定一个当前要处理的第一计算节点,将其他的计算节点的量化参数控制不变,调整第一计算节点的量化参数的数值,并验证定点计算模型的精度值是否提高,在精度值提高时将原本的定点计算模型优化为新的定点计算模型,从而提高了获取精度值较高的定点计算模型的效率。
本实施例提供的量化模型的优化装置,还能够在计算模型包括多个计算节点时,对每一个计算节点进行相同方式的量化参数的寻优,使得整个定点计算模型的精度值得到提升。
本实施例提供的量化模型的优化装置,还能够通过全局的量化参数的调优,使得定点计算模型在获得量化后易部署于移动终端的前提下,获得近似于理论计算的精度值,优化了量化后的定点计算模型。
本申请实施例还提供了一种计算机可读介质,该计算机可读介质存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上各个实施例所述的量化模型的优化方法。
需要说明的是:上述实施例提供的量化模型的优化装置在执行量化模型的优化方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的量化模型的优化装置与量化模型的优化方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的能够实现的示例性的实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种量化模型的优化方法,其特征在于,所述方法包括:
根据第一数据集将浮点计算模型量化为第一定点计算模型;
将第一计算节点的量化参数从第一数值更新为第二数值,得到第二定点计算模型,所述第一计算节点属于所述第一定点计算模型,所述第二数值小于等于目标参数;
响应于所述第二定点计算模型的精度值高于所述第一定点计算模型的精度值,将所述第一定点计算模型优化为所述第二定点计算模型。
2.根据权利要求1所述的方法,其特征在于,所述第一定点计算模型包括所述第一计算节点和第二计算节点,所述将第一计算节点的量化参数从第一数值更新为第二数值,得到第二定点计算模型,包括:
保持所述第二计算节点的量化参数不变;
将所述第一计算节点的量化参数从所述第一数值更新为所述第二数值,得到所述第二定点计算模型。
3.根据权利要求2所述的方法,其特征在于,所述响应于所述第二定点计算模型的精度值高于所述第一定点计算模型的精度值,将所述第一定点计算模型优化为所述第二定点计算模型,包括:
获取所述第一定点计算模型的精度值;
将第二数据集输入所述第二定点计算模型,获取所述第二定点计算模型的精度值;
响应于所述第二定点计算模型的精度值高于所述第一定点计算模型的精度值,将所述第一定点计算模型优化为所述第二定点计算模型。
4.根据权利要求3所述的方法,其特征在于,所述响应于所述第二定点计算模型的精度值高于所述第一定点计算模型的精度值,将所述第一定点计算模型优化为所述第二定点计算模型,包括:
响应于所述第二定点计算模型的精度值高于所述第一定点计算模型的精度值,则将所述第二数值更新为第i数值,得到第i定点计算模型,所i为大于等于3的整数;
将所述第二数据集输入所述第i定点计算模型,获取所述第i定点计算模型的精度值;
响应于所述第i定点计算模型的精度值高于所述第二定点计算模型的精度值,将所述第二定点计算模型优化为所述第i定点计算模型。
5.根据权利要求4所述的方法,其特征在于,
所述第二数值大于所述第一数值,且所述第i数值大于所述第二数值且小于等于所述目标参数;
或,
所述第二数值小于所述第一数值,且所述第i数值小于所述第二数值且大于等于零。
6.根据权利要求5所述的方法,其特征在于,所述响应于所述第i定点计算模型的精度值高于所述第二定点计算模型的精度值,将所述第二定点计算模型优化为所述第i定点计算模型,包括:
响应于所述第i定点计算模型的精度值高于任一取值的所述第二数值对应的定点计算模型的精度值,将所述第二定点计算模型优化为所述第i定点计算模型。
7.根据权利要求2所述的方法,其特征在于,所述方法还包括:
响应于所述第一计算节点的量化参数和所述第二计算节点的量化参数完成更新,得到对应的目标定点计算模型;
将所述第二定点计算模型优化为所述目标定点计算模型。
8.一种量化模型的优化装置,其特征在于,所述装置包括:
模型量化模块,用于根据第一数据集将浮点计算模型量化为第一定点计算模型;
数值更新模块,用于将第一计算节点的量化参数从第一数值更新为第二数值,得到第二定点计算模型,所述第一计算节点属于所述第一定点计算模型,所述第二数值小于等于目标参数;
模型优化模块,用于响应于所述第二定点计算模型的精度值高于所述第一定点计算模型的精度值,将所述第一定点计算模型优化为所述第二定点计算模型。
9.一种终端,其特征在于,所述终端包括处理器、和与所述处理器相连的存储器,以及存储在所述存储器上的程序指令,所述处理器执行所述程序指令时实现如权利要求1至7任一所述的量化模型的优化方法。
10.一种计算机可读存储介质,所述存储介质中存储有程序指令,其特征在于,所述程序指令被处理器执行时实现如权利要求1至7任一所述的量化模型的优化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010739079.5A CN111860841B (zh) | 2020-07-28 | 2020-07-28 | 量化模型的优化方法、装置、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010739079.5A CN111860841B (zh) | 2020-07-28 | 2020-07-28 | 量化模型的优化方法、装置、终端及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111860841A true CN111860841A (zh) | 2020-10-30 |
CN111860841B CN111860841B (zh) | 2023-11-14 |
Family
ID=72948188
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010739079.5A Active CN111860841B (zh) | 2020-07-28 | 2020-07-28 | 量化模型的优化方法、装置、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111860841B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112130807A (zh) * | 2020-11-25 | 2020-12-25 | 上海燧原科技有限公司 | 张量浮点数据处理方法、装置、设备及存储介质 |
CN112329923A (zh) * | 2020-11-24 | 2021-02-05 | 杭州海康威视数字技术股份有限公司 | 一种模型压缩方法、装置、电子设备及可读存储介质 |
CN113673532A (zh) * | 2021-10-21 | 2021-11-19 | 北京科技大学 | 量化模型的优化方法及装置 |
CN115294108A (zh) * | 2022-09-29 | 2022-11-04 | 深圳比特微电子科技有限公司 | 目标检测方法、目标检测模型的量化方法、装置和介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107688849A (zh) * | 2017-07-28 | 2018-02-13 | 北京深鉴科技有限公司 | 一种动态策略定点化训练方法及装置 |
CN109685198A (zh) * | 2017-10-19 | 2019-04-26 | 三星电子株式会社 | 用于量化神经网络的参数的方法和装置 |
CN110245741A (zh) * | 2018-03-09 | 2019-09-17 | 佳能株式会社 | 多层神经网络模型的优化和应用方法、装置及存储介质 |
US20190340492A1 (en) * | 2018-05-04 | 2019-11-07 | Microsoft Technology Licensing, Llc | Design flow for quantized neural networks |
CN110929838A (zh) * | 2018-09-19 | 2020-03-27 | 杭州海康威视数字技术股份有限公司 | 神经网络中位宽定点化方法、装置、终端和存储介质 |
CN111144511A (zh) * | 2019-12-31 | 2020-05-12 | 上海云从汇临人工智能科技有限公司 | 基于神经网络的图像处理方法、系统、介质及电子终端 |
US20200210840A1 (en) * | 2018-12-31 | 2020-07-02 | Microsoft Technology Licensing, Llc | Adjusting precision and topology parameters for neural network training based on a performance metric |
-
2020
- 2020-07-28 CN CN202010739079.5A patent/CN111860841B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107688849A (zh) * | 2017-07-28 | 2018-02-13 | 北京深鉴科技有限公司 | 一种动态策略定点化训练方法及装置 |
CN109685198A (zh) * | 2017-10-19 | 2019-04-26 | 三星电子株式会社 | 用于量化神经网络的参数的方法和装置 |
CN110245741A (zh) * | 2018-03-09 | 2019-09-17 | 佳能株式会社 | 多层神经网络模型的优化和应用方法、装置及存储介质 |
US20190340492A1 (en) * | 2018-05-04 | 2019-11-07 | Microsoft Technology Licensing, Llc | Design flow for quantized neural networks |
CN110929838A (zh) * | 2018-09-19 | 2020-03-27 | 杭州海康威视数字技术股份有限公司 | 神经网络中位宽定点化方法、装置、终端和存储介质 |
US20200210840A1 (en) * | 2018-12-31 | 2020-07-02 | Microsoft Technology Licensing, Llc | Adjusting precision and topology parameters for neural network training based on a performance metric |
CN111144511A (zh) * | 2019-12-31 | 2020-05-12 | 上海云从汇临人工智能科技有限公司 | 基于神经网络的图像处理方法、系统、介质及电子终端 |
Non-Patent Citations (1)
Title |
---|
雷小康;尹志刚;赵瑞莲;: "基于FPGA的卷积神经网络定点加速", 计算机应用, no. 10, pages 29 - 34 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112329923A (zh) * | 2020-11-24 | 2021-02-05 | 杭州海康威视数字技术股份有限公司 | 一种模型压缩方法、装置、电子设备及可读存储介质 |
CN112329923B (zh) * | 2020-11-24 | 2024-05-28 | 杭州海康威视数字技术股份有限公司 | 一种模型压缩方法、装置、电子设备及可读存储介质 |
CN112130807A (zh) * | 2020-11-25 | 2020-12-25 | 上海燧原科技有限公司 | 张量浮点数据处理方法、装置、设备及存储介质 |
CN113673532A (zh) * | 2021-10-21 | 2021-11-19 | 北京科技大学 | 量化模型的优化方法及装置 |
CN115294108A (zh) * | 2022-09-29 | 2022-11-04 | 深圳比特微电子科技有限公司 | 目标检测方法、目标检测模型的量化方法、装置和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111860841B (zh) | 2023-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111860841B (zh) | 量化模型的优化方法、装置、终端及存储介质 | |
US20240104378A1 (en) | Dynamic quantization of neural networks | |
CN110458294B (zh) | 模型运行方法、装置、终端及存储介质 | |
CN110413812B (zh) | 神经网络模型的训练方法、装置、电子设备及存储介质 | |
CN111401550A (zh) | 神经网络模型量化方法、装置及电子设备 | |
CN111178258B (zh) | 一种图像识别的方法、系统、设备及可读存储介质 | |
CN112434188B (zh) | 一种异构数据库的数据集成方法、装置及存储介质 | |
CN112686031B (zh) | 文本特征提取模型的量化方法、装置、设备及存储介质 | |
WO2022163861A1 (ja) | ニューラルネットワーク生成装置、ニューラルネットワーク演算装置、エッジデバイス、ニューラルネットワーク制御方法およびソフトウェア生成プログラム | |
CN111443897B (zh) | 一种数据处理方法、装置及存储介质 | |
CN115238883A (zh) | 神经网络模型的训练方法、装置、设备及存储介质 | |
US20230260245A1 (en) | Image segmentation model quantization method and apparatus, computer device, and storage medium | |
CN116721007A (zh) | 任务控制方法、系统及装置、电子设备和存储介质 | |
CN112102328A (zh) | 基于深度学习的图像分割处理方法及其系统、电子设备 | |
CN115936092A (zh) | 神经网络模型量化方法及装置、存储介质及电子设备 | |
CN113989121A (zh) | 归一化处理方法及装置、电子设备、存储介质 | |
CN117642768A (zh) | 显示设备及其操作方法 | |
CN113537470A (zh) | 模型量化方法及装置、存储介质及电子设备 | |
CN114692865A (zh) | 一种神经网络量化训练方法、装置及相关产品 | |
CN115249058A (zh) | 神经网络模型的量化方法、装置、终端及存储介质 | |
CN113361677A (zh) | 神经网络模型的量化方法和装置 | |
CN112309435B (zh) | 一种主旋律的生成方法、装置、电子设备及存储介质 | |
CN117272965B (zh) | 演示稿件生成方法、装置、电子设备和计算机可读介质 | |
US20230214646A1 (en) | Method and system for searching deep neural network architecture | |
WO2022230906A1 (ja) | ニューラルネットワーク生成装置、ニューラルネットワーク演算装置、エッジデバイス、ニューラルネットワーク制御方法およびソフトウェア生成プログラム |
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 |