CN118278459A - 一种神经网络模型量化方法、装置、设备及存储介质 - Google Patents
一种神经网络模型量化方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN118278459A CN118278459A CN202211712973.9A CN202211712973A CN118278459A CN 118278459 A CN118278459 A CN 118278459A CN 202211712973 A CN202211712973 A CN 202211712973A CN 118278459 A CN118278459 A CN 118278459A
- Authority
- CN
- China
- Prior art keywords
- data
- quantization
- neural network
- quantized
- network model
- 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
- 238000013139 quantization Methods 0.000 title claims abstract description 187
- 238000003062 neural network model Methods 0.000 title claims abstract description 106
- 238000000034 method Methods 0.000 title claims abstract description 95
- 238000012545 processing Methods 0.000 claims abstract description 68
- 238000004590 computer program Methods 0.000 claims description 27
- 238000011002 quantification Methods 0.000 abstract description 3
- 238000013473 artificial intelligence Methods 0.000 abstract description 2
- 238000004364 calculation method Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 7
- 238000013507 mapping Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000012937 correction Methods 0.000 description 3
- 210000002569 neuron Anatomy 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 102100032202 Cornulin Human genes 0.000 description 1
- 101000920981 Homo sapiens Cornulin Proteins 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 210000001503 joint Anatomy 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
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Abstract
本申请提供了一种神经网络模型量化方法、装置、设备及存储介质,涉及人工智能技术领域,应用于连接算子,所述方法包括:获取神经网络模型中多个节点输出的多个第一数据;确定与多个所述第一数据对应的目标量化比例系数;利用所述目标量化比例系数对多个所述第一数据进行量化处理,得到与多个所述第一数据分别对应的多个第一量化数据;将多个所述第一量化数据输入至所述连接算子中进行处理,得到目标输出数据。上述方法能够实现对神经网络模型的量化,降低神经网络模型的量化精度损失,保证神经网络模型的运算速率,提高神经网络模型的性能。
Description
技术领域
本申请涉及人工智能技术领域,特别涉及一种神经网络模型量化方法、装置、设备及存储介质。
背景技术
随着神经网络模型的广泛应用,计算资源的不断增加,越来越多的神经网络模型逐渐从服务器端转移到了内存容量受限的设备(例如智能手机)上。众所周知,神经网络模型是资源密集算法,其具有复杂的网络结构以及巨大的参数量,在运行过程不仅需要消耗大量的计算成本,还会占用较大的内存,因此,需要神经网络模型进行量化,降低神经网络模型的量化精度损失,提高神经网络模型的运行性能。
发明内容
本申请实施例提供一种神经网络模型量化方法、装置、设备及存储介质,该方案用于实现对神经网络模型的量化,降低神经网络模型的量化精度损失,提高神经网络模型的性能。
第一方面,本申请实施例提供一种神经网络模型量化方法,应用于连接算子,所述方法包括:
获取神经网络模型中多个节点输出的多个第一数据;
确定与多个所述第一数据对应的目标量化比例系数;
利用所述目标量化比例系数对多个所述第一数据进行量化处理,得到与多个所述第一数据分别对应的多个第一量化数据;
将多个所述第一量化数据输入至所述连接算子中进行处理,得到目标输出数据。
本申请实施例提供的神经网络模型量化方法,在确定多个第一数据的目标量化比例系数后,利用目标量化比例系数对多个第一数据分别进行量化处理,得到与多个第一数据分别对应的第一量化数据,然后将量化后的多个第一量化数据输入至连接算子进行处理,以得到目标数据数据。也就是说,该方法利用同一目标量化比例系数对神经网络模型中多个节点输出的多个第一数据进行量化处理,使得量化处理后得到的与多个第一数据分别对应的多个第一量化数据都受目标量化比例系数的约束,保证了经连接算子处理后的数据的准确度,有效降低了神经网络模型的量化精度损失。
此外,相对于分别对多个第一数据各自进行量化,然后根据量化后的多个第一数据进行重新量化,以得到与多个第一数据对应的多个第一量化数据。本申请实施例提供的神经网络模型量化方法利用目标量化比例系数对多个第一数据直接进行量化,能够节省对多个第一数据中的部分数据进行重新量化的过程,加快对神经网络模型进行量化处理的速度,进而提升神经网络模型的运行性能。
在一种可能的实施方式中,所述确定与多个所述第一数据对应的目标量化比例系数,包括:
对多个所述第一数据进行量化处理,得到与多个所述第一数据分别对应的多个量化比例系数;
从多个所述量化比例系数中确定所述目标量化比例系数。
在一种可能的实施方式中,所述量化处理的方法为对称量化方法。
应理解,对称量化方法是利用映射公式将多个第一数据分别对应映射至某一数值范围内,映射前的多个第一数据与映射后的数值范围具有相同的零点。利用对称量化方法对多个第一数据分别进行量化处理,不仅可以简化多个第一数据的量化过程,而且还能够消除额外计算所带来的计算开销。
此外,由于对称量化方法是神经网络模型量化过程中常使用的方法,因此,本申请实施例中使用对称量化方法不仅易于与现有技术中使用对称量化方法对神经网络模型进行量化处理的方法进行对接,以更好优化神经网络模型的运行性能。而且使用对称量化方法进行量化处理更符合实际使用场景。
在一种可能的实施方式中,所述从多个所述量化比例系数中确定目标量化比例系数,包括:
从多个所述量化比例系数中确定取值最大的量化比例系数为所述目标量化比例系数。
基于上述可能的实施方式,通过从多个量化比例系数中选取取值最大的量化比例系数作为目标量化比例系数,使得多个第一数据在量化处理过程中能够采用相同的量化比例,避免了因量化比例不同而产生的量化精度损失,有效降低了神经网络模型在量化处理过程中的量化误差。
在一种可能的实施方式中,所述连接算子包括Concat算子、Elementwise Add算子、Elementwise Sub算子以及Tuple算子中的任意一种。
第二方面,本申请实施例提供一种神经网络模型量化装置,应用于连接算子,所述装置包括:
获取单元,用于获取神经网络模型中多个节点输出的多个第一数据;
确定单元,用于确定与多个所述第一数据对应的目标量化比例系数;
量化处理单元,用于利用所述目标量化比例系数对多个所述第一数据进行量化处理,得到与多个所述第一数据分别对应的多个第一量化数据;
数据处理单元,用于将多个所述第一量化数据输入至所述连接算子中进行处理,得到目标输出数据。
在其中一个实施例中,所述确定与多个所述第一数据对应的目标量化比例系数,包括:
对多个所述第一数据进行量化处理,得到与多个所述第一数据分别对应的多个量化比例系数;
从多个所述量化比例系数中确定所述目标量化比例系数。
在其中一个实施例中,所述量化处理的方法为对称量化方法。
在其中一个实施例中,所述从多个所述量化比例系数中确定目标量化比例系数,包括:
从多个所述量化比例系数中确定取值最大的量化比例系数为所述目标量化比例系数。
在其中一个实施例中,所述连接算子包括Concat算子、Elementwise Add算子、Elementwise Sub算子以及Tuple算子中的任意一种。
第三方面,本申请提供一种芯片系统,所述芯片系统包括处理器,所述处理器执行存储器中存储的计算机程序,以实现第一方面或第一方面中任一项所述的方法。
在一个可能的实施方式中,所述芯片系统还包括存储器,存储器与处理器通过电路或电线与存储器连接。
在一种可能的实施方式中,所述芯片系统包括神经元处理单元,所述神经元处理单元用于处理神经网络模型的量化过程。
在一种可能的实施方式中,所述芯片系统还包括向量处理单元,所述神经元处理单元与所述向量处理单元通信连接;所述神经元处理单元用于处理神经网络模型的量化过程;所述向量处理单元用于处理所述神经网络模型量化中的重新量化过程。
第四方面,本申请提供一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第一方面或第一方面的任一可能的实现方式中的方法。
在一个可能的实施方式中,终端设备(又称电子设备)包括但不限于手机、平板电脑、可穿戴设备、笔记本电脑、超级移动个人计算机、上网本、个人数字助理、车载设备、智慧屏、云端服务器等。
第五方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面或第一方面中任一项所述的方法。
第六方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在电子设备或拾音设备上运行时,使得电子设备执行上述第一方面或第一方面中任一所述的方法。
可以理解的是,上述第二方面至第六方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
图1是本申请实施例提供的一种连接算子C的示意图。
图2是本申请实施例提供的一种神经网络模型量化方法的流程图。
图3是本申请实施例提供的与图1所示的连接算子C对应的进行量化处理的示意图。
图4是本申请实施例提供的对神经网络模型量化过程进行优化后的示意图。
图5是本申请实施例提供的一种神经网络模型量化装置的结构示意图。
图6是本申请实施例提供的一种终端设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。且在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
随着神经网络模型的广泛应用,计算资源的不断增加,越来越多的神经网络模型逐渐从服务器端转移到了内存容量受限的设备(例如智能手机)上。众所周知,神经网络模型是资源密集算法,其具有复杂的网络结构以及巨大的参数量,在运行过程不仅需要消耗大量的计算成本,还会占用较大的内存,因此,需要神经网络模型进行量化,降低神经网络模型量化后的精度损失,保证神经网络模型的运算速率,提高神经网络模型的性能。
其中,量化是指将信号的连续取值近似为有限多个离散值的过程。神经网络模型的量化可以理解为将神经网络模型中的各个参数(例如网络模型的权值等)从高精度转化为低精度的过程。
应理解,精度的高低是指计算机中数值类型所表示数据范围的大小,一般为了保证较高的精度,计算机中大部分数据采用浮点型数据进行运算,也就是说,神经网络模型的运行过程中,神经网络模型中各个节点输出的数据通常为浮点数据,例如,float32和float64。对神经网络模型的量化过程即是将高精度的浮点数据转化为低精度的整型数据的过程,例如,将float32转化为int8等。
不难理解的,如果能将神经网络模型中各个节点输出的浮点数据转化成整型数据,利用转化后的整型数据参与神经网络模型中的各种运算,能够极大地压缩神经网络模型的尺寸大小,且计算机或电子设备处理8比特位的整型数据与处理32比特位的浮点数据相比,处理前者比处理后者能高出约4倍的处理效率,并且处理前者可将访存带宽降低为原来的1/4。故对神经网络模型进行准确的量化处理能够有效降低神经网络模型的应用对存储资源的依赖,提升神经网络模型的运算速率和运行性能。
为此,本申请实施例提供一种神经网络模型量化方法,该方法利用同一目标量化比例系数对神经网络模型中多个节点输出的多个第一数据进行量化处理,使得量化处理后得到的与多个第一数据分别对应的多个第一量化数据都受目标量化比例系数的约束,保证了神经网络模型量化处理前后数据之间的准确度,应理解,量化处理前的数据可以是利用连接算子直接对多个第一数据进行连接处理后的数据,量化处理后的数据可以是利用目标量化比例系数对多个第一量化数据进行量化处理后输入至连接算子中进行连接处理后的数据。
该神经网络模型量化方法可以应用于支持神经网络模型运行的电子设备,示例性的,电子设备可以是手机、平板电脑、可穿戴设备、增强现实(Augmented Reality,AR)设备、虚拟现实技术(Virtual Reality,VR)设备、混合现实(Mixed Reality,MR)设备、笔记本电脑、超级移动个人计算机(Ultra-Mobile Personal Computer,UMPC)、上网本、个人数字助理(Personal Digital Assistant,PDA)、车载设备、智慧屏、云端服务器等,本申请实施例对电子设备的具体类型不作任何限制。
应理解,神经网络模型可以是用于提取图像、视频、文字或语音等数据特征的任意模型。示例性的,神经网络模型可以是卷积循环神经网络(Convolutional RecurrentNeural Network,CRNN)算法、神经网络时序分类(Connectionist TemporalClassification,CTC)算法或者文本检测模型(Efficient and Accuracy Scene Text,EAST)算法等。
在本申请实施例中,该神经网络模型量化方法应用于连接算子(也可以称为连接算法),该连接算子用于连接神经网络模型中多个节点输出的多个第一数据。其中,连接算子包括但不限于Concat算子、Elementwise Add算子、Elementwise Sub算子以及Tuple算子。需要说明的是,基于不同的编程语言对神经网络模型的实现,连接算子的具体内容可能不同,本申请对此不作限定。
作为示例而非限定,如图1所示为本申请实施例提供的一种连接算子C的示意图,参见图1,A和B分别表示神经网络模型中的两个节点,将A节点输出的数据表示为Fa,将B节点输出的数据表示为Fb,假设连接算子C为Concat算子,那么可以简单理解为:该连接算子C用于对A节点输出的数据Fa与B节点输出的数据Fb执行相加运算,以将数据Fa和数据Fb输入至连接算子C中进行处理得到目标输出数据Fc=Fa+Fb。值得说明的是,Concat算子本身是一种较为复杂的算法,在这里仅作简单化的理解。
不难理解的,神经网络模型中多个节点输出的数据可能为多维度的数据,该多维度的数据本质上为多个浮点值。例如,神经网络模型为某一图像识别模型,那么在该图像识别模型运行过程中,多个节点输出的数据可以表示为一组四维数据(或者一个张量),四维数据可以包括与节点对应的特征图像长h、特征图像的宽w、特征图像的通道数chanel以及特征图像的数量。
基于上述示例,需要说明的是,对于不同的神经网络模型,输入至神经网络模型中的图像可能是一个,这样A节点和B节点可以是经例如卷积或者全连接等操作后得到的节点,即A节点和B节点是在神经网络模型对输入的图像进行处理过程中产生的两个节点。在实际应用中,输入至神经网络模型中的图像还有可能是多个(例如,两个),这种情况下,A节点和B节点也可以是两个输入节点,即A节点对应输入至神经网络模型中的其中一张图像,B节点对应输入至神经网络模型中的另一张图像。
如图2所示为本申请实施例提供的一种神经网络模型量化方法的流程示意图,参见图2,该神经网络模型量化方法包括以下步骤S101至步骤S104:
S101,获取神经网络模型中多个节点输出的多个第一数据。
应理解,第一数据是神经网络模型中各个节点对应输出的实际数据。示例性的,假设神经网络模型为图像识别网络模型,A节点和B节点分别为该图像识别网络模型对图像进行处理过程中的两个节点,A节点输出的第一数据即是对A节点的特征图像进行转换后的数据,如果转换后的数据用四维数据表示,例如该四维数据为(10,10,10,10),那么该四维数据可以表示有10000(即10*10*10*10=10000)个浮点数据。
不难理解的,第一数据的数据类型为待量化数据的数据类型。比如,神经网络模型中节点输出数据的数据类型为浮点型,即该浮点型的数据即为待量化的数据,也可以是量化前的数据,也就是说,浮点型是第一数据的数据类型。
第一数据的数量与连接算子连接的神经网络模型中节点的数量一一对应。例如,连接算子连接的是神经网络模型中的两个节点输出的数据,那么第一数据的数量对应为2。又如,连接算子连接的是神经网络中三个节点输出的数据,那么第一数据的数量对应为3。以上示例中多个节点的数量以及第一数据的数量仅为举例说明,本申请不限定多个节点的数量,也不限定第一数据的数量。
S102,确定与多个第一数据对应的目标量化比例系数。
获取到神经网络模型中多个节点输出的多个第一数据后,进一步确定对多个第一数据进行量化处理时所需的目标量化比例系数。在本申请实施例中,确定与多个第一数据对应的目标量化比例系数具体可以包括:对多个第一数据进行量化处理,得到与多个第一数据分别对应的多个量化比例系数;然后从多个量化比例系数中确定目标量化比例系数。
应理解,对多个第一数据进行量化处理,得到的量化比例系数的数量是与第一数据的数量相对应。示例性的,假设对两个第一数据进行量化处理可以得到两个量化比例系数,这两个量化比例系数是分别与两个第一数据对应的量化比例系数。
在实际应用中,可以采用对称(symmetric)量化方法对多个第一数据进行处理,以得到与多个第一数据分别对应的多个量化比例系数。其中,对称量化方法是利用映射公式将多个第一数据分别对应映射至某一数值范围内,映射前的多个第一数据与映射后的数值范围具有相同的零点。当然,也可以采用非对称量化方法对多个第一数据进行处理,来得到与多个第一数据分别对应的多个量化比例系数。非对称量化方法则是利用映射公式将多个第一数据映射某一特定数值范围内,多个第一数据与特定数值范围具有不同的零点。
为了简化量化处理过程,消除额外计算所带来的计算开销,符合实际应用需求,本申请实施例中,采用对称量化方法对多个第一数据进行处理,以得到多个量化比例系数,在获取到多个量化比例系数后,从多个量化比例系数中选取取值最大的量化比例系数确定为目标量化比例系数。
下面将以神经网络模型中两个节点输出的2个第一数据为例,对本申请实施例中确定目标量化比例系数的方法进行详细的阐述。
如图3所示是与图1所示的连接算子C对应的进行量化处理的示意图,参见图3,A和B分别表示神经网络模型中的两个节点,在图1中,将A节点输出的数据为Fa,将B节点输出的数据为Fb,可以利用以下公式(1)对A节点和B节点输出的数据分别进行对称量化,得到图3中对称量化后的Ia和Ib。
上述公式(1)中,表示需要对进行四舍五入处理;clip()函数表示需要将的取值控制在-2b-1至2b-1-1之间;Fx表示节点输出的实际浮点值,即对应A节点输出的数据为Fa,将B节点输出的数据为Fb;Sx表示x的量化比例系数(Scale),具体的,b表示可用的定点比特数,Tx是基于训练集或者验证集(测试集),对x节点输出的浮点值的分布情况进行统计,得到的满足预设条件的浮点阈值,示例性的,可以通过统计得到x节点输出的浮点值的分布范围,将最大的浮点值确定为Tx。
假设将浮点类型的浮点值转换为int8,则可用的定点比特数为8,即b的取值为8,那么上述公式(1)中量化后的Ix的取值将控制在-128至127之间,对应的,Sx则可以表示为应理解,可用的定点比特数的具体取值可以根据不同的实际应用场景而设置,例如,可用的定点比特数还可以是4、2或者1等。
根据上述公式(1)可以得到以下公式(2):
为了便于理解,在这里可以忽略上述公式中的clip()函数以及round()函数(即仅考虑未饱和的量化情况),可以将上述公式(2)简化为以下公式(3):
应理解,上述公式(3)中分别表示A节点输出的实际浮点值Fa与量化后的Ia之间的转换关系,以及B节点输出的实际浮点值Fb与量化后的Ib之间的转换关系。
需要说明的是,在实际应用,A节点和B节点是神经网络模型中的两个节点,这两个节点输出的浮点值可能不同,因此分别利用上述公式(1)对两个节点输出的浮点值进行量化处理后,直接利用量化处理后的数据输入至连接算子中,执行连接处理会因量化比例系数差异而产生量化误差。
示例性的,通过一个简单的示例来理解上述量化误差的产生,假设统计得到A节点输出的实际浮点值的分布范围为(-0.5,0.5),B节点输出的实际浮点值的分布单位为(-1,1),利用上述公式(3)分别对A节点和B节点输出的实际浮点值进行量化处理,其中,假设可用的定点比特数为8,对A节点输出的浮点值0.5以及B节点输出的浮点值1进行量化处理,也就是将A节点和B节点输出的浮点值转换到(-128,127)范围内,那么可以将0.5和1均量化成整型值127,即将0.5量化了254(即127/0.5=254)倍量化成了127,将1量化了127(127/1=127)倍量化成了127,如果假设连接算子为执行相加运算的算子,即对0.5和1执行相加运算,那么0.5+1=1.5,而直接对0.5和1量化处理后得到的整型值执行相加运算可以得到127+127=254,基于不同的量化比例系数分别对0.5和1进行量化会产生精度损失。但实际上,量化处理过程中对0.5和1的量化比例系数不同,即0.5量化比例系数为254倍,1的量化比例系数为127倍,对应的,对0.5和1量化后的得到的整型值也应量化对应的倍数后再执行相加运算,即127+127/2≈191(由于量化为整型数而产生近似值)。因此,直接将量化处理后的数据输入至连接算子执行相加操作会产生127/2≈64的量化误差。
所以,在利用公式(1)对A节点和B节点输出的数据进行量化处理,得到Ia和Ib后,还需要对Ia和Ib进行校正,得到校正后的Ra和Rb,以将校正后的Ra和Rb输入至连接算子中进行连接处理,得到Ic。
假设Ia校正后的数据表示为Ra,Ib校正后的数据表示为Rb,在本申请实施例,利用以下公式(4)进行校正处理。
上述公式(4)中Sr即表示目标量化比例系数,具体的,Sr=max(Sa,Sb),若Sa>Sb,则Sr=Sa;反之,若Sa<Sb,则Sr=Sb。
示例性的,假设Sa>Sb,Sr=Sa,则可以将上述公式(4)转换为的重量化Requantize公式参见以下公式(5):
上述公式(5)中,表示浮点数Sk,基于上述公式(5)即可实现对Ib的重量化Requantize处理,即对Ib进行校正,以得到校正后的Rb。
需要说明的是,在实际神经网络模型的量化过程中,对于设置有浮点部件的智能芯片或者处理器,则可以利用浮点部件完成上述浮点数的计算,实现对量化后的Ib的校正(即重量化Requantize处理);对于设置有定点部件的智能芯片或者处理器,则需要利用定点部件进行定点乘并右移的方式实现对量化后的Ib的校正,其中,定点乘并右移的方式可以采用定点数与浮点数之间的近似转换公式实现上述浮点数的计算。也就是说,上述浮点数的计算会消耗智能芯片或处理器的计算能力。
因此,本申请实施例中,首先对两个第一数据Fa和Fb进行量化处理,得到与Fa对应的量化比例系数Sa,以及与Fb对应的量化比例系数Sb;然后对Sa和Sb进行比较,假设Sa>Sb,那么可以确定目标量化比例系数Sr为Sa。这样就可以省略对Ib的重量化Requantize处理或校正处理过程,即能够节省对多个第一数据中的部分数据进行重新量化的过程,加速对神经网络模型进行量化处理的速度,提升神经网络模型的运行性能。
S103,利用目标量化比例系数对多个第一数据进行量化处理,得到与多个第一数据分别对应的多个第一量化数据。
基于上述示例,如图4所示为本申请实施例提供的对神经网络模型量化过程进行优化后的示意图,参见图4,可以利用目标量化比例系数Sr=Sa对A节点输出的浮点值Fa进行量化,得到与A节点对应的输出数据Fa/Sa;利用目标量化比例系数Sr对B节点输出的浮点值Fb进行量化,得到与B节点对应的输出数据Fb/Sa,将Fa/Sa和Fb/Sa作为连接算子C的输入数据,这样经连接算子C处理就可以得到目标输出数据Fc/Sc,这样就完成对多个第一数据低精度损耗的量化。需要说明的是,在实际应用中,Sc的取值过程还应与Sx的取值过程相同。
作为示例而非限定的,以Fa=0.5,Fb=1,Sa=1/254,Sb=1/127,且将浮点值Fa和Fb转换为整型值int8为例,假设Sa<Sb,则确定Sb=1/127为Fa和Fb的目标量化比例系数Sr,根据本申请实施例提供的神经网络模型量化方法,利用目标量化比例系数Sr可以将Fa=0.5量化63.5(即Ra=Fa/Sr=0.5/(1/127)=63.5)倍,转换为整型数据后约等于64倍;同样的,利用目标量化比例系数Sr可以将Fb=1量化127(即Rb=Fb/Sr=1/(1/127)=127)倍,这样将量化后的Ra和Rb输入至连接算子C进行处理就可以得到目标输出数据Fc/Sc=64+127=191,其中,Sc=Sb=1/127,Sc的取值可以与目标量化比例系数Sr的取值相对应,可以得到Fc≈1.5与Fa+Fb=0.5+1=1.5相对应。通过该示例即可证明本申请实施例提供的神经网络模型量化处理的有效性和准确性。
利用目标量化比例系数分别对多个第一数据进行量化处理,即可得到与多个第一数据分别对应的多个第一量化数据,之后就可以直接将量化处理后的多个第一量化数据输入至连接算子中进行处理,得到输出数据。
S104,将多个第一量化数据输入至连接算子进行处理,得到目标输出数据。
在获取到目标量化比例系数后,利用获取到的目标量化比例系数对多个第一数据进行量化处理,以此得到与多第一数据分别对应的多个第一量化数据,这样就可以通过连接算子对多个第一量化数据进行连接处理,从而得到该连接算子对应的目标输出数据,即高精度的完成对多个第一数据的量化处理。
可选地,在利用目标量化比例系数对多个第一数据进行量化处理的过程中,也采用对称量化方法对多个第一数据进行量化处理。
综上,本申请实施例提供的神经网络模型量化方法利用同一目标量化比例系数对神经网络模型中多个节点输出的多个第一数据进行量化处理,使得量化处理后得到的与多个第一数据分别对应的多个第一量化数据都受目标量化比例系数的约束,保证了利用连接算子对多个第一数据进行连接处理后的数据与利用连接算子对多个第一量化数据进行连接处理后的数据之间的准确度,有效降低了神经网络模型的量化精度损失。
另,本申请实施例提供的神经网络模型量化方法利用目标量化比例系数对多个第一数据直接进行量化,还能够节省对多个第一数据中的部分数据进行重新量化的过程,加快对神经网络模型进行量化处理的速度,进而提升神经网络模型的运行性能。
如图5所示,本申请实施例还提供了一种神经网络模型量化装置200,应用于神经网络模型中的各种连接算子,连接算子用于连接神经网络模型中多个节点输出的多个第一数据。该神经网络模型量化装置200包括:
获取单元201,用于获取神经网络模型中多个节点输出的多个第一数据;
确定单元202,用于确定与多个所述第一数据对应的目标量化比例系数;
量化处理单元203,用于利用所述目标量化比例系数对多个所述第一数据进行量化处理,得到与多个所述第一数据分别对应的多个第一量化数据;
数据处理单元204,用于将多个所述第一量化数据输入至所述连接算子中进行处理,得到目标输出数据。
在其中一个实施例中,确定单元202还用于:
对多个所述第一数据进行量化处理,得到与多个所述第一数据分别对应的多个量化比例系数;
从多个所述量化比例系数中确定所述目标量化比例系数。
在其中一个实施例中,所述量化处理的方法为对称量化方法。
在其中一个实施例中,所述从多个所述量化比例系数中确定目标量化比例系数,包括:
从多个所述量化比例系数中确定取值最大的量化比例系数为所述目标量化比例系数。
在其中一个实施例中,所述连接算子包括Concat算子、Elementwise Add算子、Elementwise Sub算子以及Tuple算子中的任意一种。
基于同一发明构思,本申请实施例还提供了一种终端设备,该终端设备300包括如图6所示。
如图6所示,该实施例的终端设备300包括:处理器301、存储器302以及存储在存储器302中并可在处理器301上运行的计算机程序303。计算机程序303可被处理器301运行,生成指令,处理器301可根据指令实现上述各个权限认证方法实施例中的步骤。或者,处理器301执行计算机程序303时实现上述各装置实施例中各模块/单元的功能。
示例性的,计算机程序303可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器302中,并由处理器301执行,以完成本申请。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序303在终端设备300中的执行过程。
本领域技术人员可以理解,图6仅仅是终端设备300的示例,并不构成对终端设备300的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如终端设备300还可以包括输入输出设备、网络接入设备、总线等。
处理器301可以是中央处理单元(Central Processing Unit,CPU),还可以是其它通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器302可以是终端设备300的内部存储单元,例如终端设备300的硬盘或内存。存储器302也可以是终端设备300的外部存储设备,例如终端设备300上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)等。进一步地,存储器302还可以既包括终端设备300的内部存储单元也包括外部存储设备。存储器302用于存储计算机程序以及终端设备300所需的其它程序和数据。存储器302还可以用于暂时地存储已经输出或者将要输出的数据。
本实施例提供的终端设备可以执行上述方法实施例,其实现原理与技术效果类似,此处不再赘述。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的方法。
本申请实施例还提供一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行时实现上述方法实施例的方法。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读存储介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random AccessMemory,RAM)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。
在本申请中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
在本申请的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。
此外,在本申请中,除非另有明确的规定和限定,术语“连接”、“相连”等应做广义理解,例如可以是机械连接,也可以是电连接;可以是直接连接,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定、对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。
以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (10)
1.一种神经网络模型量化方法,其特征在于,应用于连接算子,所述方法包括:
获取神经网络模型中多个节点输出的多个第一数据;
确定与多个所述第一数据对应的目标量化比例系数;
利用所述目标量化比例系数对多个所述第一数据进行量化处理,得到与多个所述第一数据分别对应的多个第一量化数据;
将多个所述第一量化数据输入至所述连接算子中进行处理,得到目标输出数据。
2.根据权利要求1所述的方法,其特征在于,所述确定与多个所述第一数据对应的目标量化比例系数,包括:
对多个所述第一数据进行量化处理,得到与多个所述第一数据分别对应的多个量化比例系数;
从多个所述量化比例系数中确定所述目标量化比例系数。
3.根据权利要求1或2所述的方法,其特征在于,所述量化处理的方法为对称量化方法。
4.根据权利要求2所述的方法,其特征在于,所述从多个所述量化比例系数中确定目标量化比例系数,包括:
从多个所述量化比例系数中确定取值最大的量化比例系数为所述目标量化比例系数。
5.根据权利要求1或2所述的方法,其特征在于,所述连接算子包括Concat算子、Elementwise Add算子、Elementwise Sub算子以及Tuple算子中的任意一种。
6.一种神经网络模型量化装置,其特征在于,应用于连接算子,所述装置包括:
获取单元,用于获取神经网络模型中多个节点输出的多个第一数据;
确定单元,用于确定与多个所述第一数据对应的目标量化比例系数;
量化处理单元,用于利用所述目标量化比例系数对多个所述第一数据进行量化处理,得到与多个所述第一数据分别对应的多个第一量化数据;
数据处理单元,用于将多个所述第一量化数据输入至所述连接算子中进行处理,得到目标输出数据。
7.根据权利要求6所述的装置,其特征在于,所述确定与多个所述第一数据对应的目标量化比例系数,包括:
对多个所述第一数据进行量化处理,得到与多个所述第一数据分别对应的多个量化比例系数;
从多个所述量化比例系数中确定所述目标量化比例系数。
8.一种芯片系统,其特征在于,所述芯片系统包括处理器,所述处理器执行存储器中存储的计算机程序,以实现如权利要求1至5任一项所述的方法。
9.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一项所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的方法。
Publications (1)
Publication Number | Publication Date |
---|---|
CN118278459A true CN118278459A (zh) | 2024-07-02 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3674883B1 (en) | Multiplication circuit, system on chip, and electronic device | |
CN110413812B (zh) | 神经网络模型的训练方法、装置、电子设备及存储介质 | |
CN110929865A (zh) | 网络量化方法、业务处理方法及相关产品 | |
TWI729606B (zh) | 用於一邊緣運算網路的負載平衡裝置及方法 | |
CN111985495A (zh) | 模型部署方法、装置、系统及存储介质 | |
CN110826706B (zh) | 用于神经网络的数据处理方法和装置 | |
CN114418121A (zh) | 模型训练方法、对象处理方法及装置、电子设备、介质 | |
CN112686031A (zh) | 文本特征提取模型的量化方法、装置、设备及存储介质 | |
CN109359727B (zh) | 神经网络的结构确定方法、装置、设备及可读介质 | |
WO2021057926A1 (zh) | 一种神经网络模型训练方法及装置 | |
CN111915689B (zh) | 用于生成目标函数的方法、装置、电子设备和计算机可读介质 | |
CN113066020A (zh) | 图像处理方法及装置、计算机可读介质和电子设备 | |
CN117171573A (zh) | 多模态模型的训练方法、装置、设备和存储介质 | |
CN118278459A (zh) | 一种神经网络模型量化方法、装置、设备及存储介质 | |
CN115983349A (zh) | 卷积神经网络的量化方法及装置、电子设备和存储介质 | |
CN112418388A (zh) | 一种实现深度卷积神经网络处理的方法及装置 | |
CN115937020A (zh) | 图像处理方法、装置、设备、介质和程序产品 | |
CN110209851B (zh) | 模型训练方法、装置、电子设备及存储介质 | |
CN112597788B (zh) | 目标测定方法、装置、电子设备和计算机可读介质 | |
CN113989121A (zh) | 归一化处理方法及装置、电子设备、存储介质 | |
CN115688042A (zh) | 模型融合方法、装置、设备及存储介质 | |
CN114339252A (zh) | 一种数据压缩方法及装置 | |
CN113274735A (zh) | 模型处理方法、装置、电子设备及计算机可读存储介质 | |
CN115086541A (zh) | 一种拍摄位置确定方法、装置、设备及介质 | |
CN113359669B (zh) | 生成测试数据的方法、装置、电子设备和介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication |