CN114492778A - 神经网络模型的运行方法、可读介质和电子设备 - Google Patents
神经网络模型的运行方法、可读介质和电子设备 Download PDFInfo
- Publication number
- CN114492778A CN114492778A CN202210141274.7A CN202210141274A CN114492778A CN 114492778 A CN114492778 A CN 114492778A CN 202210141274 A CN202210141274 A CN 202210141274A CN 114492778 A CN114492778 A CN 114492778A
- Authority
- CN
- China
- Prior art keywords
- quantization
- asymmetric
- data
- asymmetric quantization
- point number
- 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
- 238000003062 neural network model Methods 0.000 title claims abstract description 159
- 238000000034 method Methods 0.000 title claims abstract description 64
- 238000013139 quantization Methods 0.000 claims abstract description 428
- 239000011159 matrix material Substances 0.000 claims description 51
- 230000015654 memory Effects 0.000 claims description 30
- 238000013473 artificial intelligence Methods 0.000 abstract description 6
- 230000008569 process Effects 0.000 description 23
- 230000006870 function Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 14
- 238000006243 chemical reaction Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 8
- 238000013528 artificial neural network Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- NAWXUBYGYWOOIX-SFHVURJKSA-N (2s)-2-[[4-[2-(2,4-diaminoquinazolin-6-yl)ethyl]benzoyl]amino]-4-methylidenepentanedioic acid Chemical compound C1=CC2=NC(N)=NC(N)=C2C=C1CCC1=CC=C(C(=O)N[C@@H](CC(=C)C(O)=O)C(O)=O)C=C1 NAWXUBYGYWOOIX-SFHVURJKSA-N 0.000 description 2
- 102000003712 Complement factor B Human genes 0.000 description 2
- 108090000056 Complement factor B Proteins 0.000 description 2
- 241000282326 Felis catus Species 0.000 description 2
- 241000283973 Oryctolagus cuniculus Species 0.000 description 2
- 238000009795 derivation Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000011017 operating method Methods 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- 102100030148 Integrator complex subunit 8 Human genes 0.000 description 1
- 101710092891 Integrator complex subunit 8 Proteins 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 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/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
-
- 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/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49942—Significance control
- G06F7/49947—Rounding
-
- 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)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Biomedical Technology (AREA)
- Computational Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Evolutionary Computation (AREA)
- Databases & Information Systems (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Neurology (AREA)
- Nonlinear Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本申请涉及人工智能领域,公开了一种神经网络模型的运行方法、可读介质和电子设备。该方法应用于电子设备,包括:检测到第一神经网络模型,第一神经网络模型为非对称量化的神经网络模型,并且第一神经网络模型中包括第一神经网络模型的各算子的非对称量化参数;将各算子的非对称量化参数转换为对称量化参数;利用各算子的对称量化参数,调用预设的对称量化的算子的运算逻辑,得到第一神经网络模型的推理结果。如此,只能运行对称量化的神经网络模型的电子设备,可以调用预设的对称量化的算子的运算逻辑来实现非对称量化的神经网络模型的功能,增加了电子设备能够运行的神经网络模型的类型。
Description
技术领域
本申请涉及人工智能领域,特别涉及一种神经网络模型的运行方法、可读介质和电子设备。
背景技术
随着人工智能(artificial intelligence,AI)的迅速发展,神经网络模型在人工智能领域的应用越来越广泛。由于运行神经网络模型的运算单元,例如神经网络处理器(Neural-Network Processing Unit,NPU),通常为定点运算单元,为提高神经网络模型的运行速度,通常将神经网络模型的各算子进行量化,得到定点运算的神经网络模型,再由电子设备来运行。对神经网络模型的各算子的量化包括非对称量化或对称量化,但是,为了节省开发、制造成本,部分NPU中只预设有针对对称量化的算子的运算逻辑,该类NPU只能运行对称量化的神经网络模型,而无法运行非对称量化的神经网络模型。
发明内容
有鉴于此,本申请实施例提供了神经网络模型的运行方法、可读介质和电子设备。电子设备通过将非对称量化的神经网络模型的非对称量化参数转换为对称量化参数,即可根据得到的对称量化参数调用预设的对称量化的算子的运算逻辑来实现非对称量化的神经网络模型的功能,增加了电子设备能够运行的神经网络模型的类型,提高了电子设备的NPU的通用性。
第一方面,本申请实施例提供了一种神经网络模型的运行方法,应用于电子设备,该方法包括:检测到第一神经网络模型,第一神经网络模型为非对称量化的神经网络模型,并且第一神经网络模型中包括第一神经网络模型的各算子的非对称量化参数;将各算子的非对称量化参数转换为对称量化参数;利用各算子的对称量化参数,调用预设的对称量化的算子的运算逻辑,得到第一神经网络模型的推理结果。
通过本申请实施例提供的方法,若电子设备中用于运行第一神经网络模型的处理器(例如NPU)只能调用对称量化的算子的运算逻辑来实现神经网络模型的推理,则可以通过将第一神经网络模型各算子的非对称量化参数转换为对称量化参数,并通过得到的对称量化参数来调用对称量化的算子的运算逻辑,来对第一神经网络模型进行推理,得到第一神经网络模型的推理结果。如此,增加了电子设备能够运行的神经网络模型的类型,提高了电子设备的NPU的通用性。此外,由于过程中无需先将非对称量化的神经网络模型转换为浮点型的神经网络模型,再转换为对称量化的神经网络模型,提高了神经网络模型的部署速度。
在上述第一方面的一种可能实现中,上述电子设备包括第一处理器,第一处理器能够对对称量化的神经网络模型进行推理,不能对非对称量化的神经网络模型进行推理;并且由第一处理器运行第一神经网络模型。
也即是说,电子设备的第一处理器只能够调用对称量化的算子的运算逻辑来对神经网络模型进行推理,通过本申请实施例提供的方法,第一处理器可以通过将第一神经网络模型的非对称量化参数转换为对称量化参数,并基于得到的对称量化参数调用对称量化的算子的运算逻辑来实现第一神经网络模型的功能,增加了第一处理器能够运行的神经网络模型的类型,提高了第一处理器的通用性。
在上述第一方面的一种可能实现中,上述非对称量化参数包括以下参数中的至少一种:输入数据的非对称量化参数,输入数据的非对称量化参数包括输入数据的非对称量化缩放系数、输入数据的非对称量化零点;输出数据的非对称量化参数,输出数据的非对称量化参数包括输出数据的非对称量化缩放系数、输出数据的非对称量化零点;常量数据的非对称量化参数,常量数据的非对称量化参数包括非对称量化常量数据、非对称量化常量数据的非对称量化缩放系数、非对称量化常量数据的非对称量化零点。
在上述第一方面的一种可能实现中,上述将各算子的非对称量化参数转换为对称量化参数,包括:根据输入数据或输出数据的数据类型、输入数据或输出数据的非对称量化参数,确定输入数据或输出数据对应的浮点数的最大值和最小值;根据输入数据或输出数据对应的浮点数的最大值和最小值,确定输入数据或输出数据的对称量化缩放系数。
例如,在一个算子的输入数据或输出数据的数据类型为UINT8时,若输入数据或输出数据的非对称量化缩放系数为1、零点为0,则确定输入数据或输出数据的对应的浮点数的最大值为浮点数255,最小值为浮点数0,进而根据下文中的公式(2)得到输入数据或输出数据的对称量化缩放系数为0.498。
在上述第一方面的一种可能实现中,上述根据输入数据或输出数据的数据类型、输入数据或输出数据的非对称量化参数,确定输入数据或输出数据对应的浮点数的最大值和最小值,包括:根据各算子的输入数据或输出数据的数据类型,确定输入数据或输出数据的定点数的最大值和最小值;根据输入数据或输出数据的非对称量化参数以及输入数据或输出数据的定点数的最大值和最小值,确定输入数据或输出数据对应的浮点数的最大值和最小值。
例如,在输入数据或输出数据的数据类型为UINT8的情况下,则输入数据或输出数据的定点数的最大值为255,最小值为0,从而可以根据下文中的公式(11)确定输入数据或输出数据对应的浮点数的取值范围为浮点数[0,255],即是输入数据或输出数据对应的浮点数的最大值为浮点数255,最小值为浮点数0。
在上述第一方面的一种可能实现中,上述非对称量化常量数据包括非对称量化常数、非对称量化矩阵;并且,将各算子的非对称量化参数转换为对称量化参数,包括:根据非对称量化常量数据的定点数的数据类型、非对称量化常量数据的非对称量化缩放系数和非对称量化常量数据的非对称量化零点,确定非对称量化的常量数据对应的浮点数的最大值和最小值;根据非对称量化常量数据对应的浮点数的最大值和最小值,确定非对称量化常量数据对应的浮点数的对称量化缩放系数;根据确定出的非对称量化常量数据的对称量化缩放系数,将非对称量化常量数据对应的浮点数常量数据转换为对称量化常量数据,其中,非对称量化常量数据对应的浮点数常量数据,由常量数据的非对称量化参数确定。
例如,某一算子的常量数据包括非对称量化的常数100,该非对称量化常量数据的非对称量化缩放系数为2、非对称量化零点为0,则根据公式(11)可以得到该常数对应的浮点数常数为50;基于该常量数据的数据类型,例如UINT8,可以得到常量数据对应的浮点数的最大值为127.5,最小值为0,进而根据下文中的公式(2)可以得到该常量数据的对称量化缩放系数为0.9961。
在上述第一方面的一种可能实现中,上述根据非对称量化常量数据的定点数的数据类型、非对称量化常量数据的非对称量化缩放系数和非对称量化常量数据的非对称量化零点,确定非对称量化常量数据对应的浮点数的最大值和最小值,包括:根据非对称量化常量数据的数据类型,确定非对称量化常量数据的定点数的最大值和最小值;根据非对称量化常量数据的非对称量化缩放系数、非对称量化常量数据的非对称量化零点以及确定出的非对称量化常量数据的定点数的最大值和最小值,确定非对称量化常量数据对应的浮点数的最大值和最小值。
例如,在非对称量化常量数据的数据类型为UINT8的情况下,若该非对称量化常量数据的非对称量化缩放系数为2、非对称量化零点为0,则非对称量化常量数据的定点数的最大值为255,最小值为0,从而可以根据下文中的公式(11)确定非对称量化常量数据对应的浮点数的取值范围为浮点数[0,255],即是浮点数非对称量化常量数据最大值为浮点数255,最小值为浮点数0。
在上述第一方面的一种可能实现中,上述非对称量化常量数据还包括非对称量化的查找表,非对称量化的查找表中包括非对称量化的查表索引和各非对称量化的查表索引对应的非对称量化的查表结果;并且,将各算子的非对称量化参数转换为对称量化参数,包括:根据非对称量化常量数据的非对称量化缩放系数和非对称量化常量数据的非对称量化零点,确定出各非对称量化的查表索引对应的浮点数查表索引;根据各非对称量化的查表索引对应的浮点数查表索引和各算子的运算逻辑,确定各浮点数查表索引对应的浮点数查表结果;根据浮点数查表索引的对称量化缩放系数得到对称量化的查表索引、根据浮点数据查表结果的对称量化缩放系数得到对称量化的查表结果,其中,浮点数查表索引的对称量化缩放系数基于非对称量化的查表索引的数据类型确定、浮点数查表结果的对称量化缩放系数基于非对称量化的查表结果的数据类型确定;基于各对称量化的查表索引和相对应的对称量化的查表结果,得到对称量化的查找表。
例如,对于下文中的Softmax算子,电子设备可以先根据查找表LUT中的查表索引的数据类型(UINT8),查表索引的非对称量化缩放系数(2.2×10-5)、非对称量化零点(0),确定各查表索引对应的浮点数查表索引,例如对于查表索引[59,104,182],根据公式(11)可以得到浮点数查表索引为[2681818,4727273,8272727];再将浮点数查表索引代与到Softmax算子的运算逻辑(公式(12))中,得到浮点数查表索引对应的浮点数查表结果[0.0069,0.042,0.9511],再根据浮点数查表结果的对称量化缩放系数(1.1×10-5),将浮点数查表结果量化为定点数查表结果[1,5,121]。
在上述第一方面的一种可能实现中,上述方法还包括:根据非对称量化的查表索引或非对称量化的查表结果的数据类型,确定非对称量化的查表索引或非对称量化的查表结果对应的定点数的的最大值和最小值,并基于确定出的最大值和最小值,根据非对称量化常量数据的非对称量化缩放系数、非对称量化常量数据的非对称量化零点,确定非对称量化的查表索引对应的符点数查表索引的最大值和最小值或非对称量化的查表结果对应的符点数查表结果的最大值和最小值;根据确定出的非对称量化的查表索引对应的符点数查表索引的最大值和最小值或非对称量化的查表结果对应的符点数查表结果的最大值和最小值,确定浮点数查表索引或浮点数查表结果的对称量化缩放系数。
例如,在下文中的Softmax算子的非对称量化的查表结果、非对称量化的查表结果的数据类型为UINT8的情况下,非对称量化的查表结果的定数的最大值为255,最小值为1,根据非对称量化的查表索引的非对称量化缩放系数(2.2×10-5)、非对称量化的查表索引的非对称量化零点(0),非对称量化的查表结果的非对称量化缩放系数(255)、非对称量化的查表结果非对称量化零点(0),基于下文公式(11)可以得到非对称量化查表索引对应的浮点数的最大值为11590909、最小值为0,非对称量化查表结果对应的浮点数的最大值为1、最小值为0,进而基于下文中的公式(2)可以得到浮点数查表索引的对称量化缩放系数为1.1×10-5、浮点数查表结果的对称量化缩放系数为127。
第二方面,本申请实施例提供了一种可读介质,该可读介质中包含有指令,当指令被电子设备的处理器执行时使电子设备实现上述第一方面及上述第一方面的各种可能实现提供的任意一种神经网络模型的运行方法。
第三方面,本申请实施例提供了一种电子设备,该电子设备包括:存储器,用于存储由电子设备的一个或多个处理器执行的指令;以及处理器,是电子设备的处理器之一,用于运行指令以使电子设备实现上述第一方面及上述第一方面的各种可能实现提供的任意一种神经网络模型的运行方法。
附图说明
图1A根据本申请的一些实施例,示出了一种8位对称量化的示意图;
图1B根据本申请的一些实施例,示出了一种8位非对称量化的示意图;
图2根据本申请的一些实施例,示出了一种将非对称量化的神经网络模型部署到电子设备100中的场景示意图;
图3根据本申请的一些实施例,示出了一种电子设备100运行非对称量化的神经网络模型的场景图;
图4根据本申请的一些实施例,示出了一种神经网络模型10的结构示意图;
图5根据本申请的一些实施例,示出了一种电子设备利用非对称量化的神经网络模型10对图像20进行分类的过程示意图;
图6根据本申请的一些实施例,示出了一种神经网络模型运行方法的流程示意图;
图7根据本申请的一些实施例,示出了一种电子设备100调用对称量化的算子的运算逻辑对图像20进行分类的过程示意图;
图8根据本申请的一些实施例,示出了一种电子设备100的结构示意图。
具体实施方式
本申请的说明性实施例包括但不限于神经网络模型的运行方法、可读介质和电子设备。
为了便于理解,首先介绍本申请实施例涉及的术语。
(1)对称量化
对称量化,即是将浮点数转换为取值范围为[-2n-1,2n-1-1]的有符号整形数(integral numeric types,INT),其中n为对称量化的位数。假设待量化的浮点数为xf,量化目标为将xf进行n位对称量化,即量化后的定点数的取值范围为,对称量化过程表示为如下公式(1)。
公式(1)中,abs()为求绝对值函数,max()为求最大值函数,min()为求最小值函数,round为求四舍五入函数,xq为定点数。此外,在公式(1)中,如下公式(2)所示Sc项可以称为对称量化缩放系数。也即是说,对于一个对称量化的定数,可以根据该定点数对应的对称量化缩放系数确定该定点数对应的浮点数。
具体地,图1A根据本申请的一些实施例,示出了一种对浮点数xf进行8位对称量化的示意图。参考图1A,量化的目标为将xf量化进行8位对称量化,即是将xf转换为INT8型(取值范围为[-128,127]),假设xf的绝对值的最大值为max(|xf|),则对xf进行8位对称量化的过程即是将区间[-max(|xf|),max(|xf|)]映射到区间[-128,127]中。
(2)非对称量化
非对称量化,即是将浮点数转换为取值范围为[0,2n-1]的无符号整形(unsignedintegral numeric types,UINT)数,其中n为非对称量化的位数。假设待量化的浮点数为xf,量化目标为将xf进行n位非对称量化,即量化后的定点数的取值范围为[0,2n-1],则非对称量化过程表示为如下公式(3)。
公式(3)中,max()为求最大值函数,min()为求最小值函数,round为求四舍五入函数,xq为定点数。此外,在公式(3)中,如下公式(4)所示ASc项可以称为非对称量化缩放系数,如下公式(5)所示的Zp项可以称为非对称量化零点。也即是说,对于一个非对称量化的定点数,可以根据该定点数对应的非对称量化缩放系数和非对称量化零点,确定该定点数对应的浮点数。
Zp=round(-ASc·min(xf)) (5)
基于公式(3)至公式(5),可以得到公式(6)所示的非对称量化的另一种表示方式:
xq=round(xf·ASc+Zp) (6)
具体地,图1B根据本申请的一些实施例,示出了一种对浮点数xf进行8位非对称量化的示意图。参考图1B,量化的目标为将xf量化进行8位非对称量化,即是将xf转换为UINT8型(取值范围为[0,255]),假设xf的最大值为max(xf),最小值为min(xf),则对xf进行8位非对称量化的过程即是将区间[min(xf),max(xf)]映射到区间[0,255]中。
可以理解,在一些实施例中UINT型可以表示为UINTn,其中n可以取4、8、16、32等,也可以取其他整数,并且UINTn型的无符号数据的取值范围为[0,2n-1]。即是对于一个给定的UINT型数据,电子设备可以根据n的值确定该类数据的取值范围,并基于公式(6)计算出该数据对应的浮点数的取值范围。
(3)神经网络模型量化
神经网络模型量化,即是将神经网络模型各算子中的输入数据、输出数据、常量数据从大数据类型的浮点数(例如,32位浮点数)转换为较小数据类型的定点数(例如,4/8/16位定点数),并且定点数的位数通常和运行神经网络模型的运算单元,例如NPU,所支持的定点数位数相匹配,以提高NPU运行神经网络模型的速度。
一般地,神经网络模型的量化的过程,即是根据各算子浮点数的输入数据、浮点数的输出数据的取值范围,以及量化的定点数的类型(例如UINT8),确定各算子的浮点数输入数据、浮点数输出数据和浮点数常量数据的量化参数(例如,非对称量化的量化参数包括非对称量化缩放系数和非对称量化零点,对称量化的量化参数包括对称量化缩放系数)。也即经过量化后的算子的量化参数中,包括了该算子的输入数据的量化参数、输出数据的量化参数、量化后的常量数据以及常量数据的量化参数。而用于运行量化后的神经网络模型的电子设备中,预设有量化后算子的运算逻辑。该量化后的算子的运算逻辑,以定点数为输入、定点数为输出,并且该运算逻辑中的参数包括输入数据的量化参数、输出数据的量化参数、量化后的常量数据以及常量数据的量化参数,电子设备在运行一个量化后的算子时,根据该算子的量化参数,调用预设的运算逻辑,即可通过定点运算实现该算子的功能。
下面结合附图介绍本申请实施例的技术方案。
为便于理解,下面先以卷积算子为例,说明采用对称量化和非对称量化的算子的运算逻辑。
假设B_f为浮点数输入矩阵,C_f为浮点数卷积核,D_f为浮点数卷积结果,则B_f、C_f、D_f间的关系可以表示为公式(7)。
D_f=B_f*C_f (7)
公式(7)中,“*”为卷积运算符号,卷积运算的具体过程将在后文进行介绍,在此不做赘述。
根据公式(1)和公式(2)可以得到B_f=B_q/B_Sc,C_f=C_q/C_Sc,D_f=D_q/D_Sc,其中:B_q为B_f对应的对称量化的定点数矩阵,B_Sc为将B_f量化为B_q的对称量化缩放系数;C_q为C_f对应的对称量化的定点数卷积核,C_Sc为将C_f量化为C_q的对称量化缩放系数;D_q为D_f对应的对称量化的定点数矩阵,D_Sc为将D_f对称量化为D_q的对称量化缩放系数。进而公式(7)可以表示为如下公式(8)。
对公式(8)进行变形可以得到如下公式(9)所示的对称量化的卷积算子的运算逻辑。
也即是说电子设备中预设有公式(9)所示的运算逻辑,该运算逻辑的输入包括了定点数输入矩阵B_q,定点数卷积核C_q,以及定点数输入数据B_q的对称量化参数B_Sc,定点数输出数据D_q的对称量化参数D_Sc、卷积核的对称量化参数C_Sc,输出为定点数卷积结果D_q。
类似地,非对称量化的卷积算子的运算逻辑可以表示表如下公式(10),具体推导过程可以参考对称量化的卷积算子的运算逻辑,在此不做赘述。
公式(10)中,Zp_B为输入数据B_q的非对称量化零点、Zp_C为卷积核C_q的非对称量化零点、Zp_D为输出数据D_q的非对称量化零点、B_ASc为输入数据B_q的非对称量化缩放系数、C_ASc为卷积核C_q的非对称量化缩放系数、D_ASc为输出数据D_q的非对称量化缩放系数。
从公式(9)和公式(10)中可以看出,对于同一算子,采用非对称量化和对称量化的运算逻辑和输入参数并不相同。如前所述,部分NPU只能运行对称量化的神经网络模型,即只能运行对称量化的算子的运算逻辑(例如公式(9)所示的卷积算子的运算逻辑),而无法运行非对称量化的神经网络模型。若将非对称量化的神经网络模型部署到包括该部分NPU的电子设备中,需要先将非对称量化的神经网络模型转换浮点型神经网络模型(即神经网络模型的各算子的输入数据、输出数据及常量数据都为浮点数),再将浮点型神经网络模型量化为对称量化的神经网络后,才能部署到该电子设备中。
例如,参考图2,电子设备100的NPU只能运行对称量化的神经网络模型,而待运行的神经网络模型为非对称量化的神经网络模型。从而需要由电子设备200将非对称量化的神经网络模型转换为浮点型神经网络模型,并将浮点型神经网络模型量化为对称量化的神经网络模型后,再将对称量化后的神经网络模型部署到电子设备100中,由电子设备100的NPU来运行。由于将浮点数神经网络模型量化为定点数神经网络模型(即神经网络模型的各算子的输入数据、输出数据、常量数据等为定点数)的过程中占用大量计算资源,耗时较长,不利于神经网络模型的快速部署。
为了解决上述问题,本申请实施例提供了一种神经网络模型的运行方法,电子设备100在检测到非对称量化的神经网络模型后,获取该非对称量化的神经网络模型的各算子的非对称量化参数,并将各算子非对称量化参数转换为对应的对称量化参数,电子设备100的NPU再根据各算子的对称量化参数调用预设的对称量化的算子的运算逻辑,来实现该非对称量化的神经网络模型的相关功能。如此,参考图3,虽然电子设备100的NPU并不能运行非对称量化的神经网络模型,但电子设备100通过将非对称量化的神经网络模型中的各算子的非对称量化参数转换为对称量化参数,电子设备100的NPU即可调用预设的对称量化的算子的运算逻辑,来实现该非对称量化神经网络模型的相关功能,而无需由其他电子设备将非对称量化的神经网络模型转换为浮点型神经网络模型,并将浮点型神经网络模型转化为对称量化的神经网络模型后,再由电子设备100的NPU来运行,增加了电子设备100能够运行的神经网络模型的类型,提高了NPU的通用性,提升了神经网络模型的部署速度。
可以理解,各算子的非对称量化参数包括以下参数中的至少一项:输入数据的非对称量化缩放系数、输入数据的非对称量化零点、输出数据的非对称量化缩放系数、输出数据的非对称量化零点、非对称量化常量数据、非对称量化常量数据的非对称量化零点、非对称量化常量数据的非对称量化缩放系数。各算子的对称量化参数包括以下参数中的至少一项:输入数据的对称量化缩放系数、输出数据的对称量化缩放系数、对称量化常量数据、对称量化常量数据的对称量化缩放系数。
可以理解,在另一些实施例中,各算子的非对称量化参数/对称量化参数也可以包括更多或更少的参数,在此不做限定。
可以理解,预设的对称量化的算子的运算逻辑可以由电子设备100的NPU的开发商预设于NPU中,也可以由NPU的开发商提供给电子设备100的开发商,由电子设备100的开发商预设于电子设备100的存储器中。电子设备100的NPU可以根据基于算子的对称量化的输入数据及对称量化的输入数据的对称量化参数、输出数据的对称量化参数、对称量化常量数据调用对称量化的算子的运算逻辑,得到算子的对称量化的定点数输出数据。
具体地,在一些实施例中,对上述公式(6)进行变形可以得到如公式(11)所示的、将非对称量化的定点数转化为浮点数的计算公式。
电子设备100可以根据非对称量化的算子的定点数输入数据的数据类型确定定点数输入数据的取值范围(例如若输入数据为UINT8,说明取值范围为定点数[0,255],最大值为255,最小值为0),基于非对称量化的输入数据的最大值和最小值、非对称量化的输入数据的非对称量化缩放系数和非对称量化零点,基于公式(11)确定输入数据对应的浮点数的最大值和最小值;再基于输入数据对应的浮点数的最大值和最小值,根据公式(2)确定输入数据的对称量化缩放系数。
类似地,电子设备100可以根据非对称量化的算子的输出数据的类型确定定点数输出数据的取值范围(例如若输入数据为UINT8,说明取值范围为定点数[0,255],最大值为255,最小值为0),并根据非对称量化的输出数据的最大值和最小值、输出数据的非对称量化缩放系数和非对称量化零点,基于公式(11)确定输出数据对应的浮点数的最大值和最小值;再基于确定的浮点数的最大值和最小值,根据公式(2)确定输出数据的对称量化缩放系数。
类似地,电子设备100也可以根据非对称量化的算子中非对称量化常量数据的数据类型,确定非对称量化常量数据的定点数的最大值和最小值,再基于确定的最大值和最小值、非对称量化常量数据的非对称量化缩放系数和非对称量化零点,根据公式(11)确定非对称量化常量数据对应的浮点数的最大值和最小值;再基于确定的浮点数的最大值和最小值,根据公式(2)确定常量数据的对称量化缩放系数;然后,根据公式(11)将非对称量化常量数据转换对应的浮点数,再基于确定的对称量化缩放系数和非对称量化常量数据对应的浮点数常量数据,根据公式(1)和公式(2)将非对称量化常量数据对应的浮点数常量数据转换为对称量化常量数据。
根据公式(4)和公式(5),可以得到输入数据的非对称量化零点Zp_B=0、非对称量化缩放系数B_ASc=255,输出数据的非对称量化零点Zp_D=0、非对称量化缩放系数D_ASc=364.29。假设卷积核C_f的量化参数与输入数据B_f的非对称量化参数相同(即C_ASc=255,Zp_C=0),根据公式(6)可以得到 也即是该非对称量化的卷积算子的非对称量化参数包括:输入数据的非对称量化零点Zp_B、非对称量化缩放系数B_ASc,输出数据的非对称量化零点Zp_D、非对称量化缩放系数D_ASc,非对称量化常量数据C_q,以及非对称量化常量数据的非对称量化缩放系数C_ASc、非对称量化零点Zp_C。
电子设备在检测到上述非对称量化的卷积算子时,先根据输入数据的数据类型UINT8,确定定点数输入数据D_q的取值范围为[0,255],最大值为255,最小值为0;将xq=255、Zp_B=0、B_ASc=255代入公式(11)得到输入数据对应的浮点数最大值为1;将xq=0、Zp_B=0、B_ASc=255代入公式(11)得到输入数据对应的浮点数最小值为0,进而根据公式(2)可以得到输入数据的对称量化缩放系数B_Sc=(28-1-1)/1=127。
类似地,电子设备可以据输出数据的数据类型UINT8,确定定点数输出数据D_q的取值范围为[0,255],最大值为255,最小值为0;将xq=255、Zp_D=0、D_ASc=364.29代入公式(11)得到输出数据对应的浮点数最大值为(255-0)/364.29=0.7;将xq=0、Zp_D=0、D_ASc=364.29代入公式(11)得到输出数据对应的浮点数最小值为(0-0)/364.29=0,进而根据公式(2)可以得到输出数据的对称量化缩放系数D_Sc=(28-1-1)/0.7=181.43。
由于卷积核C_q的非对称量化参数与输入数据B_q的非对称量化参数相同,卷积核C_q的对称量化参数也应当与输入数据B_q的对称量化参数相同,即是卷积核C_q的对称量化缩放系数C_Sc=127。将C_ASc=255、Zp_C=0、C_q代入公式(11)可以得到再根据C_f和C_Sc=127、公式(1)和公式(2)可以得到对称量化的卷积核
进而电子设备100的NPU可以根据B_Sc=127、D_Sc=181.43、C_Sc=127以及输入到该卷积算子的定点数输入数据B_q,即可调用预设的公式(9)所示的对称量化的卷积算子的运算逻辑来实现前述非对称量化的卷积算子的功能,增加了电子设备100的NPU能够运行的神经网络模型的类型,提高了NPU的通用性。
下面结合具体的神经网络模型介绍本申请实施例的技术方案。
图4根据本申请的一些实施例,示出了一种神经网络模型10的结构示意图。如图4所示,神经网络模型10为非对称量化的神经网络模型,包括输入层11、卷积算子12、全连接算子13、Softmax算子14和输出层15,用于对输入的图像数据进行分类。其中,输入层11用于对输入的图像进行预处理,将输入的图像数据转换为非对称量化的输入数据,例如UINT8型的数据;卷积算子12用于对非对称量化的输入数据进行卷积运算,得到输入的图像对应的非对称量化的特征矩阵;全连接算子13用于对非对称量化的特征矩阵进行全连接运算,得到输入的图像数据属于各预设类别的得分;Softmax算子14,用于根据输入的图像数据属于各预设类别的得分,得到输入的图像数据属于各预设类别的概率;输出层15用于根据输入的图像数据属于各预设类别的概率,确定出输入的图像数据的类别,例如以输入的图像数据为各预设类别的概率最大的类别作为该输入的图像数据的类别。
进一步,图5根据本申请实施例,示出了电子设备利用神经网络模型10对图像20进行分类的过程示意图。
参考图5,电子设备先利用输入层11对图像20进行预处理,得到UINT8的图像矩阵H,输入层11的非对称量化缩放系数为ASc_out1=1,非对称量化零点为Zp_out1=0。
其次,利用卷积算子12将图像矩阵H分别与卷积核Ki(i=1,2,3)进行卷积运算,得到三个特征矩阵Ai(i=1,2,3),卷积算子12的输入数据的非对称量化缩放系数为ASc_in2=1、输入数据的非对称量化零点Zp_in2=0、输出数据的非对称量化缩放系数为ASc_out2=0.0833、输出数据的非对称量化零点为Zp_out2=0、非对称量化常量数据包括卷积核Ki(i=1,2,3)(卷积核的非对称量化参数与卷积算子12的输入数据的非对称量化参数相同)。
再利用全连接算子13对特征矩阵Ai(i=1,2,3)进行全连接运算,例如分别将特征矩阵Ai(i=1,2,3)与权重矩阵W做内积运算,得到图像20为预设类别(兔子/狗/猫)的得分,全连接算子13的输入数据的非对称量化缩放系数ASc_in3=0.08333、输入数据的非对称量化零点Zp_in3=0、输出数据的非对称量化缩放系数为ASc_out3=2.2×10-5、输出数据的非对称量化零点为Zp_out3=0、非对称量化常量数据包括权重矩阵W(权重矩阵的非对称量化参数与全连接算子13的输入数据的非对称量化参数相同)。
然后,利用Softmax算子14根据图像20为预设类别的得分,从查找表LUT中获取图像20为预设类别的概率,Softmax算子14的输入数据的非对称量化缩放系数ASc_in4=2.2×10-5、输入数据的非对称量化零点Zp_in4=0、输出数据的非对称量化缩放系数为ASc_out4=255、输出数据的非对称量化零点为Zp_out4=0、非对称量化常量数据包括查找表LUT。
最后,利用输出层15根据图像20为各预设类别的概率,确定图像20的类别,例如比较图像20为各预设类别的概率,将图像20为预设类别的概率中最大的概率确定为图像20的类别(猫)。
下面结合图4所示的神经网络模型10的结构和图5所示的神经网络模型10对图像20进行分类的过程,介绍本申请实施例的技术方案。
具体地,图6根据本申请的一些实施例,示出了一种神经网络模型的运行方法的流程示意图。该方法的执行主体为电子设备100,如图6所示,该流程包括如下步骤。
S601:检测到非对称量化的神经网络模型。
电子设备100在检测待运行的神经网络模型为非对称量化的神经网络模型的情况下,触发本申请实施例提供的神经网络模型的运行方法。
在一些实施例中,电子设备100可以根据待运行神经网络模型中的数据的数据类型,来确定该神经网络是否是非对称量化的神经网络模型。具体地,电子设备100在检测到待运行神经网络模型中的数据的数据类型为UINT(UINT包括但不限于UINT4、UINT8、UINT16、UINT32等)时,例如检测到神经网络模型10中的数据的数据类型为UINT8时,确定待运行的神经网络模型为非对称量化的神经网络模型。
在一些实施例,电子设备100也可以根据待运行神经网络模型各算子的量化参数来确定待运行神经网络模型是否是非对称量化的神经网络模型。例如,电子设备100可以在检测到待运行神经网络模型的量化参数包括缩放系数和零点时,确定该神经网络模型为非对称量化的神经网络模型。
可以理解,在另一些实施例中,电子设备100也可以通过其他方式确定待运行的神经网络模型是否为非对称量化的神经网络模型,并在检测到待运行的神经网络模型是非对称量化的神经网络模型的情况下,触发本申请实施例提供的神经网络模型的运行方法。
S602:获取各算子的输入数据/输出数据的非对称量化参数,并将非对称量化参数转换为对称量化参数。
即是电子设备100依次获取各算子的输入数据和输出数据的非对称量化参数,并将输入数据的非对称量化参数(输入数据的非对称量化缩放系数、输入数据的非对称量化零点)转换为输入数据的对称量化参数(输入数据的对称量化缩放系数),将输出数据的非对称量化参数(输出数据的非对称量化缩放系数、输出数据的非对称量化零点)转换为输出数据的对称量化参数(输出数据的对称量化缩放系数)。
例如,对于图4所示的神经网络模型10,输入层11的非对称量化参数包括:输出数据的非对称量化缩放系数ASc_out1=1、输出数据的非对称量化零点Zp_out1=0。由于UINT8对应的取值范围为[0,255],从而根据公式(11)可以得到输出数据对应的浮点数的最大值为浮点数(255-0)/1=255,最小值为浮点数(0-0)/1=0,电子设备100可以基于公式(2),确定输入层11的输出数据的对称量化缩放系数Sc_out1=(27-1)/255=0.498。
又例如,对于图4所示的神经网络模型10,卷积算子12的非对称量化参数包括:输入数据的非对称量化缩放系数ASc_in2=2、输入数据的非对称量化零点Zp_in2=0、输出数据的非对称量化缩放系数ASc_out2=0.0833、输入数据的非对称量化零点Zp_out2=0。由于UINT8对应的取值范围为[0,255],从而根据公式(11)可以得到输入数据对应的浮点数的最大值为浮点数(255-0)/1=255、最小值为浮点数(0-0)/1=0,输出数据对应的浮点数的最大值为浮点数(255-0)/0.0833=3061,最小值为浮点数(0-0)/1=0。电子设备100可以基于公式(2),确定卷积算子12的输入数据的对称量化缩放系数Sc_in2=(27-1)/255=0.498,输出数据的对称量化缩放系数Sc_out2=(27-1)/3061=0.0417。类似地,可以得到全连接算子13的输入数据的对称量化缩放系数Sc_in3=0.0417、输出数据的对称量化缩放系数Sc_out3=1.1×10-5。
再例如,对于图4所示的神经网络模型10,Softmax算子14的非对称量化参数包括:输入数据的非对称量化缩放系数ASc_in4=2.2×10-5、输入数据的非对称量化零点Zp_in4=0、输出数据的非对称量化缩放系数ASc_out4=255、输出数据的非对称量化零点Zp_out4=0。由于UINT8对应的取值范围为[0,255],从而根据公式(11)可以得到输入数据对应的浮点数的最大值为浮点数(255-0)/(2.2×10-5)=11590909、最小值为浮点数(0-0)/(2.2×10-5)=0,输出数据对应的浮点数的最大值为浮点数(255-0)/255=1,最小值为浮点数(0-0)/255=0。电子设备100可以基于公式(2),确定Softmax算子14的输入数据的对称量化缩放系数Sc_in4=(27-1)/11590909=1.1×10-5,输出数据的对称量化缩放系数Sc_out4=(27-1)/1=127。
S603:判断当前算子是否包括非对称量化常量数据。
电子设备100判断当前算子是否包括非对称量化常量数据,如果有,说明需要将非对称量化常量数据转换为对称量化常量数据,转至步骤S604;否则,说明不需要将非对称量化常量数据转换为对称量化常量数据,转至步骤S605。
例如,对于前述神经网络模型10,在当前算子为输入层11或输出层15时,当前算子不存在非对称量化常量数据,转至步骤S605;对于前述神经网络模型10,卷积算子12存在非对称量化常量数据卷积核Ki(i=1,2,3)、全连接算子13存在非对称量化常量数据权重矩阵W,Softmax算子14存在非对称量化常量数据查找表LUT,在当前算子为卷积算子12、全连接算子13或Softmax算子14时,电子设备100可以确定出当前算子包括非对称量化常量数据,转至步骤S604。
S604:根据非对称量化常量数据的非对称量化参数,将非对称量化常量数据转化为对称量化常量数据。
电子设备100在当前算子存在非对称量化常量数据的情况下,根据当前算子的非对称量化常量数据的非对称量化参数,先根据非对称量化常量数据的定点数的数据类型,确定非对称量化常量数据的定点数的最大值和最小值,从而根据公式(11)确定非对称量化常量数据对应的浮点数的最大值和最小值;再根据公式(2)确定将浮点数的常量数据转化为对称量化常量数据的对称量化缩放系数;然后根据公式(11)将非对称量化常量数据转化为对应的浮点数的常量数据,再根据公式(1)将浮点数的常量数据转换为对称量化常量数据。
例如,在当前算子为前述卷积算子12时,非对称量化常量数据包括卷积核Ki(i=1,2,3)。由于卷积核Ki的非对称量化参数与卷积算子12的输入数据的非对称量化参数相同,则卷积核Ki的对称量化缩放系数与卷积算子12的输入数据的对称量化缩放系数相同(均为Sc_in2)。电子设备100可以先根据公式(11),将Ki转换为对应的浮点数Ki_f=(Ki-Zp_in2)/ASc_in2;再根据公式(1),将Ki_f转换为对称量化的卷积核Ki′=round(Ki_f×Sc_in2)。具体地,参考图7,假设则
又例如,在当前算子为前述全连接算子13时,非对称量化常量数据包括权重矩阵W。由于权重矩阵W的非对称量化参数与全连接算子13的输入数据的非对称量化参数相同,则权重矩阵W的对称量化缩放系数与全连接算子13的输入数据的对称量化缩放系数相同(均为Sc_in3)。电子设备100可以先根据公式(11),将W转换为对应的浮点数W_f=(W-Zp_in3)/ASc_in3;再根据公式(1)和公式(2),将W_f转换为对称量化的权重矩阵W′=round(W_f×Sc_in3)。
具体地,参考图7,假设
则
再例如,在当前算子为前述Softmax算子14时,非对称量化常量数据包括查找表LUT。Softmax运算可以表示为如下公式(12)。
公式(12)中,ink_f表示Softmax算子的浮点数输入数据,即是输入的图像数据在第k类别的浮点数得分;Pk_f是Softmax算子的浮点数输出结果,表示输入的图像数据为第k类的概率,其中,k=1表示类别为兔子,k=2表示类别为狗,k=3表示类别为猫。从公式(12)可知,Pk_f的取值范围为[0,1]。
查找表LUT用于存储不同的定点数输入数据ink_q对应的Softmax运算的定数结果。例如,假设全连接算子13的输出数据的非对称量化缩放系数为2.2×10-5,非对称量化零点为0,in1_q=59,in2_q=104,in3_q=182,则可以得到in1_f=2681818,in2_f=4727273,in3_f=8272727,将in1_f=2681818,in2_f=4727273,in3_f=8272727代入前述公式(12)可以得到P1_f=0.0069,P2_f=0.042,P3_f=0.9511,再将P1_f=0.0069,P2_f=0.042,P3_f=0.9511进行8位非对称量化得到:P1_q=2,P2_q=11,P3_q=243,也即说,在查找表LUT中,存储有查表索引[59,104,182](对应[in1,in2,in3])对应的查表结果为[2,11,243](对应P1,P2,P3)。其他的查表索引对应的查表结果可以通过类似的方法得到,在此不做赘述。
电子设备100在检测到上述查找表LUT时,先根据公式(11)将查找表LUT的查表索引转换为浮点数查表索引,将浮点数查表索引转化为对称量化的定点数查表索引,并将浮点数查表索引代入前述公式(12)得到浮点数Pk_f,再将浮点数Pk_f进行对称量化的对称量化查表结果作为前述对称量化的定点数查表索引在新的查找表LUT′的查表结果。例如,将查表索引[59,104,182]转换为浮点数得到in1_f=2681818,in2_f=4727273,in3_f=8272727,将in1_f=2681818,in2_f=4727273,in3_f=8272727进行8位对称量化得到新的查表索引[30,52,91],并将in1_f=2681818,in2_f=4727273,in3_f=8272727代入前述公式(12)可以得到P1_f=0.0069,P2_f=0.042,P3_f=0.9511,再将P1_f=0.0069,P2_f=0.042,P3_f=0.9511进行8位对称量化得到P1_q=1,P2_q=5,P3_q=121,即是在图7所示的查找表LUT′中,查表索引[30,52,91](对应[in1′,in2′,in3′])对应的查表结果为[1,5,121](对应P1′,P2′,P3′)。其他的查表索引对应的结果可以通过类似的方法得到,在此不做赘述。
可以理解,以上将卷积算子、全连接算子和Softmax算子中非对称量化常量数据转换为对称量化常量数据只是一种示例,对于其他算子(包括但不限于池化算子、激活算子、排序算子、归一化算子等)中的非对称量化常量数据,可以使用类似的方法转换为对称量化常量数据,在此不做赘述。
S605:判断是否完成所有算子的量化参数的转换。
电子设备100判断是否完成所有算子的转换,如果完成,则转至步骤S606;否则转至步骤S602进行下一个算子的量化参数的转换。
S606:根据各算子的对称量化参数,调用相应的对称量化算子的运算逻辑,实现非对称量化的神经网络模型的功能。
电子设备100在完成所有算子的量化参数的转换后,根据各算子的对称量化参数,通过NPU调用相对应的对称量化算子的运算逻辑,实现非对称量化的神经网络模型的功能。
具体地,参考图7,电子设备100将神经网络模型10的各算子的非对称量化参数转换为对称量化参数后,各算子可以表示为图7所示的输入层11′,卷积算子12′,全连接算子13′,Softmax算子14′,和输出层15′。
电子设备100的NPU可以先在对称量化缩放系数Sc_out1=0.0498的情况下,基于公式(1)将图像20量化为图像矩阵H′。
其次,电子设备100的NPU调用对称量化的卷积算子的运算逻辑,例如前述公式(9)所示的运算逻辑,在卷积核为Ki′(i=1,2,3)的情况下,将图像矩阵H′分别与Ki′进行卷积,得到定点数特征矩阵Ai′(i=1,2,3)。即是NPU获取对称量化的输入数据B_q(例如前述H′)、输入数据的对称量化缩放系数B_Sc(例如由前述步骤S602得到的Sc_in2)、对称量化的卷积核C_q(例如由前述步骤S603得到的卷积核Ki′)、卷积核的对称量化缩放系数C_Sc(例如前述Sc_in2)、输出数据的对称量化缩放系数D_Sc(例如由前述步骤S602得到的Sc_out2),再根据前述公式(9)得到D_q。例如,在B_q=H′,C_q=K1′的情况下,可以得到前述特征矩阵A1′。
可以理解,由于NPU中并没有可以直接实现除法运算的电路,在一些实施例中,公式(9)中的除法运算可以通过乘法移位来实现,以提高NPU运行卷积算子的速度。例如,假设B_Sc×C_Sc=0.4982=0.248,可以将0.248表示为1/1×2-2,从而将B_q*C_q×D_Sc的结果对应的二进制数向右移-2位再乘以1,即可得到B_q*C_q×D_Sc/(B_Sc×C_Sc)的运算结果。
然后,电子设备100的NPU调用对称量化的全连接算子的运算逻辑(例如下方公式(17)所示的运算逻辑),分别将特征矩阵Ai′与权重矩阵W′作全连接运算,例如做内积,得到图像20为各预设类别的得分in1′、in2′和in3′;再调用对称量化的Softmax算子的运算逻辑,即是以[in1′,in2′,in3′]为查表索引从查找表LUT′中查找得到图像20属于各预设类别的概率;最后再调用对称量化的输出层的运算逻辑,将图像20属于各预设类别的概率中最大的概率对应的预设类别作为图像20的类别,例如将图像20的类别确定为猫。对称量化全连接算子的运算逻辑的推导过程将在将在下文进行介绍,在此不做赘述。
可以理解,对称量化的算子的运算逻辑可以由电子设备100的NPU的开发商预先设置于NPU中,也可以由NPU的开发商提供给电子设备100的开发商,由电子设备100的开发商预设于电子设备100的存储器中。
可以理解,上述步骤S601至步骤S605中的各步骤可以全部由电子设备100的CPU来完成,也可以全部由电子设备100的NPU来完成,还可以由电子设备100的CPU和NPU分别完成部分步骤,在此不做限定。
可以理解,上述步骤S601至步骤S605的运行顺序只是一种示例,在另一些实施例中,可以调整部分步骤的运行顺序,也可以合并或拆分部分步骤,本申请实施例不做限定。
通过本申请实施例提供的方法,电子设备100的NPU可以通过调用预设的对称量化的算子来实现该非对称量化神经网络模型的相关功能,而无需由其他电子设备将非对称量化的神经网络模型转换为浮点型神经网络模型,并将浮点型神经网络模型转化为对称量化的神经网络模型后,再由电子设备100的NPU来运行,增加了电子设备100能够运行的神经网络模型的类型,提高了NPU的通用性,提升了神经网络模型的部署速度。
下面介绍卷积计算的具体过程和对称量化的全连接算子的运算逻辑。
首先介绍卷积运算的计算过程。
假设输入数据矩阵B的大小为M×M,卷积核C的大小为N×N,卷积步长为k,则矩阵B与卷积核C的卷积结果D可以表示为:
在公式(13)中,D(m,n)为矩阵D第m行第n列的元素;m,n满足以下关系式:
为确保卷积结果对应的矩阵的大小与输入数据的大小相同,避免丢失数据矩阵边缘的数据特征,通常在卷积计算的过程中在输入矩阵的第一行前和最后一行后填充值为0的行以及在输入矩阵第一列之前和最后一列之后填充值为0的行或列,即在输入矩阵的四周填充值为0的行或列。设在输入矩阵B的四周各填充数量为P的值为0的行或列,此时,输入矩阵B的大小变为(M+2P)×(M+2P)。此时,公式(1)中的m,n满足以下关系式:
下面介绍对称量化的全连接算子的运算逻辑。
全连接算子为对输入数据进行加权计算的算子,输入矩阵E和权重矩阵W的全连接计算结果F可以表示为如下公式(14)。
其中,E(i,j)为输入矩阵的第i行第j列的元素,W(i,j)为权重矩阵的第i行第j列的元素,输入矩阵E和权重矩阵W的大小均为M×N。
假设E_f为浮点数输入矩阵,W_f为浮点数权重矩阵,F_f为浮点数全连接计算结果,基于公式(14),E_f、W_f、F_f间的关系可以表示为如下公式(15)。
根据公式(1)和公式(2)可以得到E_f=E_q/E_Sc,W_f=W_q/W_Sc,F_f=F_q/F_Sc,其中:E_q为E_f对应的对称量化的定点数矩阵,E_Sc为将E_f量化为E_q的对称量化缩放系数;W_q为W_f对应的对称量化的定点数权重矩阵,W_Sc为将W_f量化为W_q的对称量化缩放系数;F_q为F_f对应的对称量化的定点数,F_Sc为将F_f量化为F_q的对称量化缩放系数。进而公式(15)可以表示为如下公式(16)。
对公式(16)进行变形可以得到如下公式(17)所示的对称量化的全连接算子的运算逻辑。
NPU在执行公式(17)所示的全连接算子的运算逻辑时,获取对称量化的输入数据E_q(例如前述Ai′(i=1,2,3))及输入数据的对称量化缩放系数E_Sc(例如由前述步骤S602得到的Sc_in3)、对称量化的权重矩阵W_q(例如由前述步骤S603得到的权重矩阵W′)、权重矩阵的对称量化缩放系数W_Sc(例如前述Sc_in3)、输出数据的对称量化缩放系数F_Sc(例由前述步骤S602得到的Sc_out3),再根据前述公式(17)得到Ai′和W′的全连接计算结果,例如在E_q=A1′的情况下,可以得到前述in1′。
可以理解,由于NPU中并没有可以直接实现除法运算的电路,在一些实施例中,公式(17)中的除法运算可以通过移位和乘法来实现,以提高NPU运行全连接算子的速度。例如,假设E_Sc×W_Sc=0.04172=0.00174,可以将0.00174表示为1/9×2-6,从而将B_q*C_q×D_Sc的结果对应的二进制数向右移-6位(即向左移6位)再乘以9,即可得到B_q*C_q×D_Sc/(B_Sc×C_Sc)的运算结果。
可以理解,在另一些实施例中全连接算子也可以采用其他运算逻辑,本申请实施例不做限定。
可以理解,对于其他的对称量化的算子,运算逻辑可以通过相似的方法得到,在此不做赘述。
进一步,图8根据本申请的一些实施例,示出了一种电子设备100的结构示意图。如图8所示,电子设备100包括一个或多个处理器101A、NPU 101B、***内存102、非易失性存储器(Non-Volatile Memory,NVM)103、通信接口104、输入/输出(I/O)设备105、以及用于耦接处理器101A、***内存102、非易失性存储器103、通信接口104和输入/输出(I/O)设备105的***控制逻辑106。其中:
处理器101A可以包括一个或多个处理单元,例如,可以包括中央处理器CPU(Central Processing Unit)、图像处理器GPU(Graphics Processing Unit)、数字信号处理器DSP(Digital Signal Processor)、微处理器MCU(Micro-programmed Control Unit)、AI(Artificial Intelligence,人工智能)处理器或可编程逻辑器件FPGA(FieldProgrammable Gate Array)的处理模块或处理电路可以包括一个或多个单核或多核处理器。
神经网络处理器101B可以用于调用预设的对称量化的算子的运算逻辑,实现神经网络模型的推理。神经网络处理器101B可以是独立的处理器,也可以集成于处理器101A内部。在一些实施例中,NPU可以用于运行本申请实施例提供的神经网络模型的运行方法对应的指令。
***内存102是易失性存储器,例如随机存取存储器(Random-Access Memory,RAM),双倍数据率同步动态随机存取存储器(Double Data Rate Synchronous DynamicRandom Access Memory,DDR SDRAM)等。***内存用于临时存储数据和/或指令,例如,在一些实施例中,***内存102可以用于存储上述神经网络模型10的相关指令、非对称/对称量化参数、非对称/对称量化常量数据等,也可以用于存储预设的对称量化的算子的运算逻辑。
非易失性存储器103可以包括用于存储数据和/或指令的一个或多个有形的、非暂时性的计算机可读介质。在一些实施例中,非易失性存储器103可以包括闪存等任意合适的非易失性存储器和/或任意合适的非易失性存储设备,例如硬盘驱动器(Hard Disk Drive,HDD)、光盘(Compact Disc,CD)、数字通用光盘(Digital Versatile Disc,DVD)、固态硬盘(Solid-State Drive,SSD)等。在一些实施例中,非易失性存储器103也可以是可移动存储介质,例如安全数字(Secure Digital,SD)存储卡等。在另一些实施例中,非易失性存储器103可以用于存储上述神经网络模型10的相关指令、非对称/对称量化参数、非对称/对称量化常量数据等,也可以用于存储预设的对称量化的算子的运算逻辑。
特别地,***内存102和非易失性存储器103可以分别包括:指令107的临时副本和永久副本。指令107可以包括:由处理器101A和/或神经网络处理器101B中的至少一个执行时使电子设备100实现本申请各实施例提供的神经网络模型的运行方法。
通信接口104可以包括收发器,用于为电子设备100提供有线或无线通信接口,进而通过一个或多个网络与任意其他合适的设备进行通信。在一些实施例中,通信接口104可以集成于电子设备100的其他组件,例如通信接口104可以集成于处理器101A中。在一些实施例中,电子设备100可以通过通信接口104和其他设备通信,例如,电子设备100可以通过通信接口104从其他电子设备获取待运行的神经网络模型。
输入/输出(I/O)设备105可以包括输入设备如键盘、鼠标等,输出设备如显示器等,用户可以通过输入/输出(I/O)设备105与电子设备100进行交互。
***控制逻辑106可以包括任意合适的接口控制器,以电子设备100的其他模块提供任意合适的接口。例如在一些实施例中,***控制逻辑106可以包括一个或多个存储器控制器,以提供连接到***内存102和非易失性存储器103的接口。
在一些实施例中,处理器101A中的至少一个可以与用于***控制逻辑106的一个或多个控制器的逻辑封装在一起,以形成***封装(System in Package,SiP)。在另一些实施例中,处理器101A中的至少一个还可以与用于***控制逻辑106的一个或多个控制器的逻辑集成在同一芯片上,以形成片上***(System-on-Chip,SoC)。
可以理解,电子设备100可以是能够运行神经网络模型的任意电子设备,包括但不限于手机、可穿戴设备(如智能手表等)、平板电脑、桌面型、膝上型、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本,以及蜂窝电话、个人数字助理(personal digital assistant,PDA)、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备等,本申请实施例不做限定。
可以理解,图8所示的电子设备100的结构只是一种示例,在另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
本申请公开的机制的各实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。本申请的实施例可实现为在可编程***上执行的计算机程序或程序代码,该可编程***包括至少一个处理器、存储***(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。
可将程序代码应用于输入指令,以执行本申请描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本申请的目的,处理***包括具有诸如例如数字信号处理器(Digital Signal Processor,DSP)、微控制器、专用集成电路(Application Specific Integrated Circuit,ASIC)或微处理器之类的处理器的任何***。
程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理***通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本申请中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以被实现为由一个或多个暂时或非暂时性机器可读(例如,计算机可读)存储介质承载或存储在其上的指令,其可以由一个或多个处理器读取和执行。例如,指令可以通过网络或通过其他计算机可读介质分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,包括但不限于,软盘、光盘、光碟、只读存储器(CD-ROMs)、磁光盘、只读存储器(Read Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、可擦除可编程只读存储器(Erasable Programmable Read OnlyMemory,EPROM)、电可擦除可编程只读存储器(Electrically Erasable ProgrammableRead-Only Memory,EEPROM)、磁卡或光卡、闪存、或用于利用因特网以电、光、声或其他形式的传播信号来传输信息(例如,载波、红外信号数字信号等)的有形的机器可读存储器。因此,机器可读介质包括适合于以机器(例如计算机)可读的形式存储或传输电子指令或信息的任何类型的机器可读介质。
在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应该理解,可能不需要这样的特定布置和/或排序。而是,在一些实施例中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,可以不包括这些特征或者可以与其他特征组合。
需要说明的是,本申请各设备实施例中提到的各单元/模块都是逻辑单元/模块,在物理上,一个逻辑单元/模块可以是一个物理单元/模块,也可以是一个物理单元/模块的一部分,还可以以多个物理单元/模块的组合实现,这些逻辑单元/模块本身的物理实现方式并不是最重要的,这些逻辑单元/模块所实现的功能的组合才是解决本申请所提出的技术问题的关键。此外,为了突出本申请的创新部分,本申请上述各设备实施例并没有将与解决本申请所提出的技术问题关系不太密切的单元/模块引入,这并不表明上述设备实施例并不存在其它的单元/模块。
需要说明的是,在本专利的示例和说明书中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
虽然通过参照本申请的某些优选实施例,已经对本申请进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本申请的精神和范围。
Claims (11)
1.一种神经网络模型的运行方法,应用于电子设备,其特征在于,包括:
检测到第一神经网络模型,所述第一神经网络模型为非对称量化的神经网络模型,并且所述第一神经网络模型中包括所述第一神经网络模型的各算子的非对称量化参数;
将各所述算子的非对称量化参数转换为对称量化参数;
利用各所述算子的对称量化参数,调用预设的对称量化的算子的运算逻辑,得到所述第一神经网络模型的推理结果。
2.根据权利要求1所述的方法其特征在于,所述电子设备包括第一处理器,所述第一处理器能够对对称量化的神经网络模型进行推理,不能对非对称量化的神经网络模型进行推理;并且
由所述第一处理器运行所述第一神经网络模型。
3.根据权利要求1或2所述的方法,其特征在于,所述非对称量化参数包括以下参数中的至少一种:
输入数据的非对称量化参数,所述输入数据的非对称量化参数包括输入数据的非对称量化缩放系数、输入数据的非对称量化零点;
输出数据的非对称量化参数,所述输出数据的非对称量化参数包括输出数据的非对称量化缩放系数、输出数据的非对称量化零点;
常量数据的非对称量化参数,所述常量数据的非对称量化参数包括非对称量化常量数据、非对称量化常量数据的非对称量化缩放系数、非对称量化常量数据的非对称量化零点。
4.根据权利要求3所述的方法,其特征在于,所述将各所述算子的非对称量化参数转换为对称量化参数,包括:
根据所述输入数据或所述输出数据的数据类型、所述输入数据或所述输出数据的非对称量化参数,确定所述输入数据或所述输出数据对应的浮点数的最大值和最小值;
根据所述输入数据或所述输出数据对应的浮点数的最大值和最小值,确定所述输入数据或所述输出数据的对称量化缩放系数。
5.根据权利要求4所述的方法,其特征在于,根据所述输入数据或所述输出数据的数据类型、所述输入数据或所述输出数据的非对称量化参数,确定所述输入数据或所述输出数据对应的浮点数的最大值和最小值,包括:
根据各算子的所述输入数据或所述输出数据的数据类型,确定所述输入数据或所述输出数据的定点数的最大值和最小值;
根据所述输入数据或所述输出数据的非对称量化参数以及所述输入数据或所述输出数据的定点数的最大值和最小值,确定所述输入数据或所述输出数据对应的浮点数的最大值和最小值。
6.根据权利要求3所述的方法,其特征在于,所述非对称量化常量数据包括非对称量化常数、非对称量化矩阵;并且,所述将各所述算子的非对称量化参数转换为对称量化参数,包括:
根据所述非对称量化常量数据的数据类型、所述非对称量化常量数据的非对称量化缩放系数和所述非对称量化常量数据的非对称量化零点,确定所述非对称量化常量数据对应的浮点数的最大值和最小值;
根据所述非对称量化常量数据对应的浮点数的最大值和最小值,确定所述非对称量化常量数据对应的浮点数的对称量化缩放系数;
根据确定出的所述非对称量化常量数据的对称量化缩放系数,将所述非对称量化常量数据对应的浮点数常量数据转换为对称量化常量数据,其中,所述非对称量化常量数据对应的浮点数常量数据,由所述常量数据的非对称量化参数确定。
7.根据权利要求6所述的方法,其特征在于,所述根据所述非对称量化常量数据的定点数的数据类型、所述非对称量化常量数据的非对称量化缩放系数和所述非对称量化常量数据的非对称量化零点,确定所述非对称量化常量数据对应的浮点数的最大值和最小值,包括:
根据所述非对称量化常量数据的数据类型,确定所述非对称量化常量数据的定点数的最大值和最小值;
根据所述非对称量化常量数据的非对称量化缩放系数、所述非对称量化常量数据的非对称量化零点以及确定出的所述非对称量化常量数据的定点数的最大值和最小值,确定所述非对称量化常量数据对应的浮点数的最大值和最小值。
8.根据权利要求3所述的方法,其特征在于,所述非对称量化常量数据还包括非对称量化的查找表,所述非对称量化的查找表中包括非对称量化的查表索引和各非对称量化的查表索引对应的非对称量化的查表结果;并且,所述将各所述算子的非对称量化参数转换为对称量化参数,包括:
根据所述非对称量化常量数据的非对称量化缩放系数和所述非对称量化常量数据的非对称量化零点,确定出各所述非对称量化的查表索引对应的浮点数查表索引;
根据各所述非对称量化的查表索引对应的浮点数查表索引和各所述算子的运算逻辑,确定各所述浮点数查表索引对应的浮点数查表结果;
根据所述浮点数查表索引的对称量化缩放系数得到对称量化的查表索引、根据所述浮点数据查表结果的对称量化缩放系数得到对称量化的查表结果,其中,所述浮点数查表索引的对称量化缩放系数基于所述非对称量化的查表索引的数据类型确定、所述浮点数查表结果的对称量化缩放系数基于所述非对称量化的查表结果的数据类型确定;
基于各所述对称量化的查表索引和相对应的对称量化的查表结果,得到对称量化的查找表。
9.根据权利要求8所述的方法,其特征在于,还包括:
根据所述非对称量化的查表索引或所述非对称量化的查表结果的数据类型,确定所述非对称量化的查表索引或所述非对称量化的查表结果对应的定点数的最大值和最小值,并基于确定出的最大值和最小值,根据所述非对称量化常量数据的非对称量化缩放系数、所述非对称量化常量数据的非对称量化零点,确定非对称量化的查表索引对应的符点数查表索引的最大值和最小值或所述非对称量化的查表结果对应的符点数查表结果的最大值和最小值;
根据确定出的非对称量化的查表索引对应的符点数查表索引的最大值和最小值或所述非对称量化的查表结果对应的符点数查表结果的最大值和最小值,确定所述浮点数查表索引或所述浮点数查表结果的对称量化缩放系数。
10.一种可读介质,其特征在于,所述可读介质中包含有指令,当所述指令被电子设备的处理器执行时使电子设备实现权利要求1至9中任一项所述的神经网络模型的运行方法。
11.一种电子设备,其特征在于,包括:
存储器,用于存储由电子设备的一个或多个处理器执行的指令;
以及处理器,是所述电子设备的处理器之一,用于运行所述指令以使所述电子设备实现权利要求1至9中任一项所述的神经网络模型的运行方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210141274.7A CN114492778A (zh) | 2022-02-16 | 2022-02-16 | 神经网络模型的运行方法、可读介质和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210141274.7A CN114492778A (zh) | 2022-02-16 | 2022-02-16 | 神经网络模型的运行方法、可读介质和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114492778A true CN114492778A (zh) | 2022-05-13 |
Family
ID=81480537
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210141274.7A Pending CN114492778A (zh) | 2022-02-16 | 2022-02-16 | 神经网络模型的运行方法、可读介质和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114492778A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI815539B (zh) * | 2022-06-12 | 2023-09-11 | 聯發科技股份有限公司 | 神經網絡計算方法及系統 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109685198A (zh) * | 2017-10-19 | 2019-04-26 | 三星电子株式会社 | 用于量化神经网络的参数的方法和装置 |
JP2019160319A (ja) * | 2018-03-09 | 2019-09-19 | キヤノン株式会社 | 多階層ニューラルネットワークモデルを最適化して適用する方法及び装置、及び記憶媒体 |
WO2019183202A1 (en) * | 2018-03-23 | 2019-09-26 | Amazon Technologies, Inc. | Accelerated quantized multiply-and-add operations |
CN110929862A (zh) * | 2019-11-26 | 2020-03-27 | 陈子祺 | 定点化的神经网络模型量化装置和方法 |
WO2020088131A1 (zh) * | 2018-10-31 | 2020-05-07 | 北京嘉楠捷思信息技术有限公司 | 一种卷积神经网络计算加速方法及装置、设备、介质 |
US20200234126A1 (en) * | 2019-01-23 | 2020-07-23 | Google Llc | Look-up table based neural networks |
CN112085154A (zh) * | 2019-07-01 | 2020-12-15 | 百度(美国)有限责任公司 | 用于神经网络的压缩和推断加速的非对称量化 |
CN112733863A (zh) * | 2021-01-07 | 2021-04-30 | 苏州浪潮智能科技有限公司 | 一种图像特征提取方法、装置、设备及存储介质 |
US20210224658A1 (en) * | 2019-12-12 | 2021-07-22 | Texas Instruments Incorporated | Parametric Power-Of-2 Clipping Activations for Quantization for Convolutional Neural Networks |
WO2021235656A1 (en) * | 2020-05-19 | 2021-11-25 | Samsung Electronics Co., Ltd. | Electronic apparatus and control method thereof |
CN114021691A (zh) * | 2021-10-13 | 2022-02-08 | 山东浪潮科学研究院有限公司 | 神经网络模型量化方法、***、装置及计算机可读介质 |
-
2022
- 2022-02-16 CN CN202210141274.7A patent/CN114492778A/zh active Pending
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109685198A (zh) * | 2017-10-19 | 2019-04-26 | 三星电子株式会社 | 用于量化神经网络的参数的方法和装置 |
JP2019160319A (ja) * | 2018-03-09 | 2019-09-19 | キヤノン株式会社 | 多階層ニューラルネットワークモデルを最適化して適用する方法及び装置、及び記憶媒体 |
WO2019183202A1 (en) * | 2018-03-23 | 2019-09-26 | Amazon Technologies, Inc. | Accelerated quantized multiply-and-add operations |
WO2020088131A1 (zh) * | 2018-10-31 | 2020-05-07 | 北京嘉楠捷思信息技术有限公司 | 一种卷积神经网络计算加速方法及装置、设备、介质 |
CN111126558A (zh) * | 2018-10-31 | 2020-05-08 | 北京嘉楠捷思信息技术有限公司 | 一种卷积神经网络计算加速方法及装置、设备、介质 |
US20200234126A1 (en) * | 2019-01-23 | 2020-07-23 | Google Llc | Look-up table based neural networks |
CN112085154A (zh) * | 2019-07-01 | 2020-12-15 | 百度(美国)有限责任公司 | 用于神经网络的压缩和推断加速的非对称量化 |
CN110929862A (zh) * | 2019-11-26 | 2020-03-27 | 陈子祺 | 定点化的神经网络模型量化装置和方法 |
US20210224658A1 (en) * | 2019-12-12 | 2021-07-22 | Texas Instruments Incorporated | Parametric Power-Of-2 Clipping Activations for Quantization for Convolutional Neural Networks |
WO2021235656A1 (en) * | 2020-05-19 | 2021-11-25 | Samsung Electronics Co., Ltd. | Electronic apparatus and control method thereof |
CN112733863A (zh) * | 2021-01-07 | 2021-04-30 | 苏州浪潮智能科技有限公司 | 一种图像特征提取方法、装置、设备及存储介质 |
CN114021691A (zh) * | 2021-10-13 | 2022-02-08 | 山东浪潮科学研究院有限公司 | 神经网络模型量化方法、***、装置及计算机可读介质 |
Non-Patent Citations (4)
Title |
---|
CLIEN, X: "A Quantization Model Based on a Floating-point Computing-in-Memory Architecture", 2022 IEEE ASIA PACIFIC CONFERENCE ON CIRCUITS AND SYSTEMS, APCCAS, 3 June 2023 (2023-06-03), pages 493 - 496 * |
WEI, X等: "FPGA-Based Hybrid-Type Implementation of Quantized Neural Networks for Remote Sensing Applications", SENSORS, vol. 19, no. 4, 22 March 2019 (2019-03-22) * |
刘毅;罗军;黄启俊;常胜;: "HEVC整数DCT变换与量化的FPGA实现", 电视技术, no. 11, 2 June 2013 (2013-06-02), pages 12 - 15 * |
王骞等: "基于AI神经网络加速芯片的模型量化算法", 现代计算机, vol. 27, no. 36, 31 December 2021 (2021-12-31), pages 28 - 33 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI815539B (zh) * | 2022-06-12 | 2023-09-11 | 聯發科技股份有限公司 | 神經網絡計算方法及系統 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210004663A1 (en) | Neural network device and method of quantizing parameters of neural network | |
US20200097828A1 (en) | Processing method and accelerating device | |
US11790212B2 (en) | Quantization-aware neural architecture search | |
CN110880038B (zh) | 基于fpga的加速卷积计算的***、卷积神经网络 | |
US11604960B2 (en) | Differential bit width neural architecture search | |
JP2020009444A (ja) | ニューラルネットワークにおいてパラメータを処理する方法及び装置 | |
US20210224640A1 (en) | Neural network circuit device, neural network processingmethod, and neural network execution program | |
US10114554B1 (en) | Arrangements for storing more data in faster memory when using a hierarchical memory structure | |
US11574239B2 (en) | Outlier quantization for training and inference | |
US20210287074A1 (en) | Neural network weight encoding | |
KR102655950B1 (ko) | 뉴럴 네트워크의 고속 처리 방법 및 그 방법을 이용한 장치 | |
US11669747B2 (en) | Constraining function approximation hardware integrated with fixed-point to floating-point conversion | |
KR20190089685A (ko) | 데이터를 처리하는 방법 및 장치 | |
CN113126953A (zh) | 针对浮点处理的方法和装置 | |
WO2023146613A1 (en) | Reduced power consumption analog or hybrid mac neural network | |
CN114492778A (zh) | 神经网络模型的运行方法、可读介质和电子设备 | |
CN109389218B (zh) | 数据压缩方法及压缩装置 | |
CN109389209B (zh) | 处理装置及处理方法 | |
WO2021081854A1 (zh) | 一种卷积运算电路和卷积运算方法 | |
Zhan et al. | Field programmable gate array‐based all‐layer accelerator with quantization neural networks for sustainable cyber‐physical systems | |
CN112561050A (zh) | 一种神经网络模型训练方法及装置 | |
CN114492779A (zh) | 神经网络模型的运行方法、可读介质和电子设备 | |
CN111198714B (zh) | 重训练方法及相关产品 | |
CN109416757B (zh) | 用于处理数值数据的方法、设备和计算机可读存储介质 | |
JP6757349B2 (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 |