CN116679904A - 数据处理方法、介质及电子设备 - Google Patents
数据处理方法、介质及电子设备 Download PDFInfo
- Publication number
- CN116679904A CN116679904A CN202310828324.3A CN202310828324A CN116679904A CN 116679904 A CN116679904 A CN 116679904A CN 202310828324 A CN202310828324 A CN 202310828324A CN 116679904 A CN116679904 A CN 116679904A
- Authority
- CN
- China
- Prior art keywords
- multiplication
- equivalent
- parameter
- continuous multiplication
- point
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 20
- 239000000047 product Substances 0.000 claims abstract description 113
- 239000013067 intermediate product Substances 0.000 claims abstract description 98
- 238000000034 method Methods 0.000 claims abstract description 72
- 238000004364 calculation method Methods 0.000 claims abstract description 42
- 230000015654 memory Effects 0.000 claims description 32
- 238000003062 neural network model Methods 0.000 claims description 24
- 101100317378 Mus musculus Wnt3 gene Proteins 0.000 claims description 13
- 238000003860 storage Methods 0.000 claims description 9
- 238000013473 artificial intelligence Methods 0.000 abstract description 9
- 238000005516 engineering process Methods 0.000 abstract description 3
- 238000013139 quantization Methods 0.000 description 75
- 238000007667 floating Methods 0.000 description 49
- YBJHBAHKTGYVGT-ZKWXMUAHSA-N (+)-Biotin Chemical compound N1C(=O)N[C@@H]2[C@H](CCCCC(=O)O)SC[C@@H]21 YBJHBAHKTGYVGT-ZKWXMUAHSA-N 0.000 description 14
- FEPMHVLSLDOMQC-UHFFFAOYSA-N virginiamycin-S1 Natural products CC1OC(=O)C(C=2C=CC=CC=2)NC(=O)C2CC(=O)CCN2C(=O)C(CC=2C=CC=CC=2)N(C)C(=O)C2CCCN2C(=O)C(CC)NC(=O)C1NC(=O)C1=NC=CC=C1O FEPMHVLSLDOMQC-UHFFFAOYSA-N 0.000 description 14
- 230000006870 function Effects 0.000 description 11
- 230000014509 gene expression Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 7
- 238000005303 weighing Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 230000001186 cumulative effect Effects 0.000 description 6
- 238000013528 artificial neural network Methods 0.000 description 5
- 230000003190 augmentative effect Effects 0.000 description 4
- 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
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- 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
- G06F7/487—Multiplying; Dividing
- G06F7/4876—Multiplying
-
- 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/491—Computations with decimal numbers radix 12 or 20.
- G06F7/498—Computations with decimal numbers radix 12 or 20. using counter-type accumulators
- G06F7/4983—Multiplying; Dividing
- G06F7/4986—Multiplying; Dividing by successive multiplication or division by 2
-
- 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
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Computational Linguistics (AREA)
- Neurology (AREA)
- Artificial Intelligence (AREA)
- Nonlinear Science (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Image Processing (AREA)
Abstract
本申请涉及人工智能技术领域,特别涉及一种数据处理方法、介质及电子设备。该方法通过A次连乘计算,得到求积算子的定点连乘结果,并且在连乘时,每次连乘计算都获取该次的等效中间连乘结果的等效中间乘积参数和该次的等效中间连乘结果的乘积参数移位位数,从而将各个连乘中间结果,转换为数值较小的定点表示形式,进而解决在进行求积算子的连乘运算时,存在运算过程中的相乘的中间结果值过大的问题,从而避免硬件溢出。
Description
本申请是2023年3月27日提出的发明名称为“数据处理方法、介质及电子设备”的分案申请,申请号为:202310313645.X。
技术领域
本申请涉及人工智能技术领域,特别是涉及一种数据处理方法、介质及电子设备。
背景技术
人工智能技术(artificial intelligence,AI)领域在人们生产生活中应用越来越广泛。可以理解的,可以通过神经网络模型对文字、视频、音频、图像等数据进行处理,从而获得所需要的结果。例如,用户在手机时,手机内置的人脸识别模型可以对拍摄到的人脸图像进行处理,从而识别出人的身份;又例如,手机内置的文本识别模型可以对网页上的某段话进行处理,从而得到文字的出处;还例如,手机内置的音频匹配模型可以对音频进行处理,识别出声音/歌曲等等。
由于神经网络是资源密集型算法,其计算成本、内存占用量大,所以需要将神经网络模型量化,使得电子设备使用内置的量化的神经网络模型进行数据处理时,将高精度浮点运算转化为定点运算,以实现降低电子设备的内存占用。
求积(Prod)算子是一种可以运用在神经网络模型对数据处理时,将输入的特征数据按照指定维度进行乘积处理的算子。可以理解的,当神经网络模型中包括求积算子时,需要将求积算子进行量化,使得利用量化的求积算子进行数据处理。但是,在利用量化的求积算子进行数据处理过程中会出现结果误差较大的问题,从而导致神经网络模型准确度下降。
发明内容
为了解决上述问题,本申请提供了一种数据处理方法、介质及电子设备。
第一方面,本申请实施例提供了一种数据处理方法,应用于电子设备,电子设备上运行有神经网络模型,方法包括:获取神经网络模型在运行的过程中,求积算子中的定点乘法关系系数和A个定点连乘因子;通过A次连乘计算,得到求积算子的定点连乘结果;其中,通过A次连乘计算,得到求积算子的定点连乘结果,包括:通过以下方式完成第i次连乘计算,其中i为小于等于A的正整数:获取第i次等效中间连乘结果的等效中间乘积参数和第i次等效中间连乘结果的乘积参数移位位数;基于第A次等效中间连乘结果的等效中间乘积参数和第1至A次中得到的等效中间连乘结果的乘积参数移位位数,得到求积计算的定点连乘结果。
可以理解的,在每次进行连乘计算时,将各个连乘中间结果转换成该次的数值更小的定点表示,具体转换为由等效中间连乘结果的等效中间乘积参数和该次的等效中间连乘结果的乘积参数移位位数表示,从而解决在进行求积算子的连乘运算时,存在运算过程中的相乘的中间结果值过大的问题,进而避免硬件溢出。
可以理解的,定点连乘因子可以为定点元素或者定点偏移元素。
在上述第一方面的一种可能的实现中,第i次为第1次,并且,获取第i次等效中间连乘结果的等效中间乘积参数和第i次等效中间连乘结果的乘积参数移位位数,包括:将定点乘法关系系数与定点连乘因子相乘,得到第i次等效中间连乘结果的等效中间乘积参数和第i次等效中间连乘结果的乘积参数移位位数。
在上述第一方面的一种可能的实现中,第i次为第2次至第A次中的任意一次,并且获取第i次等效中间连乘结果的等效中间乘积参数和第i次等效中间连乘结果的乘积参数移位位数,包括:将第i-1次连乘计算的等效中间连乘结果的等效中间乘积参数与第i个定点连乘因子相乘,得到第i次等效中间连乘结果的等效中间乘积参数和第i次等效中间连乘结果的乘积参数移位位数。
在上述第一方面的一种可能的实现中,基于第A次等效中间连乘结果的等效中间乘积参数和第1至A次中得到的等效中间连乘结果的乘积参数移位位数,得到求积计算的定点连乘结果,包括:基于第A次等效中间连乘结果的等效中间乘积参数得到定点连乘结果的等效连乘参数;基于第1至A次中得到的等效中间连乘结果的乘积参数移位位数得到定点连乘结果的等效连乘移位位数。
在上述第一方面的一种可能的实现中,乘法关系移位位数包括乘法定点参数和乘法关系移位位数,并且,基于第1至A次中得到的等效中间连乘结果的乘积参数移位位数得到定点连乘结果的等效连乘移位位数,包括:将第1至A次中得到的等效中间连乘结果的乘积参数移位位数以及乘法关系移位位数的负数相加,得到定点连乘结果的等效连乘移位位数。
在上述第一方面的一种可能的实现中,在定点连乘因子为定点元素时,可以通过以下公式完成第i次连乘计算,其中i为小于等于A,并且大于等于2的正整数:
Qt(i-1)*Qi=Qti*2ki
其中,Qt(i-1)为第i-1次的等效中间连乘结果的等效中间乘积参数,Qi为第i个定点元素,Qti为第i次得到的等效中间连乘结果的等效中间乘积参数,ki为第i次等效中间连乘结果的乘积参数移位位数。
在上述第一方面的一种可能的实现中,在定点连乘因子为定点偏移元素时,可以通过以下公式完成第i次连乘计算,其中i为小于等于A,并且大于等于2的正整数:
Qt(i-1)*Hi=Qti*2ki
其中,Qt(i-1)为第i-1次得到的等效中间连乘结果的等效中间乘积参数,Hi为第i个定点偏移元素,Qti为第i次得到的等效中间连乘结果的等效中间乘积参数,ki为第i次等效中间连乘结果的乘积参数移位位数。
在上述第一方面的一种可能的实现中,等效中间乘积参数在预设第一数据类型所对应的范围内,其中,第一数据类型为以下数据类型中的任意一种:
int32、int16、int8、int4、uint32、uint16、uint8、uint4。
在上述第一方面的一种可能的实现中,等效连乘参数在预设第二数据类型所对应的范围内,其中,第二数据类型为以下数据类型中的任意一种:
int32、int16、int8、int4、uint32、uint16、uint8、uint4。
在上述第一方面的一种可能的实现中,连乘因子和定点连乘结果包括图像数据以及与图像数据相关的中间数据、音频数据以及与音频数据相关的中间数据、文本数据以及与文本数据相关的中间数据、视频数据以及与视频数据相关的中间数据中的至少一种数据。
第二方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质上存储有指令,该指令在电子设备执行上述第一方面以及第一方面的各种可能实现中的任一项的数据处理方法。
第三方面,本申请实施例提供了一种电子设备,包括:
存储器,用于存储指令,以及
一个或多个处理器,指令被一个或多个处理器执行时,处理器执行上述第一方面以及第一方面的各种可能实现中的任一项的数据处理方法。
附图说明
图1根据本申请的一些实施例,示出了一种终端100通过人脸识别模型对采集到的人脸图像进行识别的场景图;
图2根据本申请的一些实施例,示出了一种量化求积算子的过程示意图;
图3根据本申请的一些实施例,示出了一种以对称量化为例的数据处理流程示意图;
图4根据本申请的一些实施例,示出了一种以非对称量化为例的数据处理流程示意图;
图5根据本申请的一些实施例,示出了一种相乘移位方式流程示意图;
图6根据本申请的一些实施例,示出了一种终端100的结构示意图。
具体实施方式
本申请的说明性实施例包括但不限于一种数据处理方法、介质及电子设备。
为了更加清楚的说明本申请实施例的方案,下面对本申请实施例中涉及到的一些术语进行解释。
神经网络模型量化:将神经网络模型中的浮点运算转换为定点运算。
可以理解的,一般可以通过对称量化的方式或者非对称量化的方式进行量化。
(一)为了便于理解,下面对上述对称量化方式以及非对称量化方式进行介绍。
(1)对称量化:将范围在[Xmin,Xmax]的浮点数X通过量化参数映射为范围在[Qmin,Qmax]内的定点数Q,如下述公式1所示:
Q=round(X*S)(公式1)
其中,对称量化的量化参数包括缩放因子S,缩放因子S是将一定范围在[Xmin,Xmax]的X量化为一定范围[Qmin,Qmax]的Q的比例系数。其中,round()表示四舍五入取整,可以理解的,取整方式还可以为向下取整floor(),向上取整ceil()等,在此不做限制。可以理解的,对于对称量化,量化参数中的缩放因子S确定后,可以根据输入的浮点数X通过量化参数得到量化后的定点数Q。可以理解的,定点数Q的范围与量化数据类型(即定点数Q所对应的数据类型)对应,其中,量化数据类型包括:int32、int16、int8、int4、uint32、uint16、uint8或uint4等等。例如,若量化数据类型为int8,即定点数Q为int8类型时,则[Qmin,Qmax]具体为[-128,127](即[-2n-1,2n-1-1],其中,n=8)。
对于对称量化,下述公式(2)示出了一种获取量化参数所对应的缩放因子S的公式,其中浮点数X的范围为[Xmin,Xmax]、定点数Q的范围为[Qmin,Qmax]:
其中,公式(2)中max()函数为最大值函数。|*|为取绝对值。可以理解的,上述公式(2)只是将浮点数量化到int类型的定点数时,量化参数所对应的缩放因子S的一种获取方式,也可以由其他变形公式得到,这里不做具体限制。可以理解的,将浮点数量化到uint类型的定点数时,可以按照其他公式获取缩放因子S,在此不做赘述。
(2)对称量化所对应的反量化:可以理解的,对于一个定点数,可以根据对称量化所对应的反量化确定该定点数对应的浮点数。在一些实施例中,将上述公式(1)变形,可以得到对称量化所对应的反量化公式(3):
X=Q/S(公式3)
可以理解的,当得到定点数Q就可以通过反量化公式得到浮点数X。可以理解的,在本申请的一些实施例中,浮点X和定点Q所对应的量化参数为同一个量化参数。
(3)非对称量化:范围在[Xmin,Xmax]的浮点数X通过量化参数映射为范围在[Qmin,Qmax]内的定点数Q。
Q=round(X*S')+Z'(公式4)
其中,对于非对称量化,非对称量化的量化参数包括缩放因子S'以及零点偏移量Z'。round()可以用于表征取整函数,例如四舍五入取整。可以理解的,取整方式还可以为向下取整floor(),向上取整ceil()等,在此不做限制。
具体地,Z'为零点偏移量,且为整型数,即为浮点数X为0时对应的定点数Q的值。S'为缩放因子,即将取值范围在[Xmin,Xmax]的X量化为取值范围在[Qmin,Qmax]的Q的比例系数。当S'与Z'确定后,可以根据输入的浮点数X确定量化后的定点数Q。其中,与上述对称量化提及的量化数据类型相同,量化数据类型包括:int32、int16、int8、int4、uint32、uint16、uint8或uint4等等。在一些实施例中,上述定点数Q为无符号整型数(unsignedintegralnumeric types,UINT),它的范围[Qmin,Qmax]具体为[0,2n-1],其中n为量化的比特数,例如,定点数Q为uint8类型,则[Qmin,Qmax]具体为[0,255](即[0,2n-1],其中n=8)。
对于非对称量化,以下公式(5)、公式(6)示出了一种获取量化参数所对应的缩放因子S'和零点偏移量Z'的公式。可选地,也可以通过其他方式得到非对称量化方式下的参数因子S'和Z',获得的具体方式在此不做具体要求。
Z'=Qmin-round(Xmin*S')(公式6)
其中,round()可以用于表征取整函数,例如四舍五入取整。可以理解的,取整方式还可以为向下取整floor(),向上取整ceil()等,在此不做限制。
(4)非对称量化所对应的反量化:可以理解的,同样的,对于一个定点数,可以根据非对称量化所对应的反量化确定该定点数对应的浮点数。在一些实施例中,将上述公式(4)变形,可以得到非对称量化所对应的反量化公式(7):
X=(Q-Z')/S'(公式7)
可以理解的,当得到定点数Q就可以通过上述反量化公式(7)得到浮点数X。
(二)下面对本申请中提到的求积(Prod)算子进行介绍。
在神经网络中,求积(Prod)算子是一种可以对神经网络中的特征数据按照指定维度进行连乘运算的算子。可以理解的,可以把输入的特征数据中的单个数值确定为单个元素。则将特征数据按照指定维度进行连乘运算实质上是将各元素按照指定维度划分为多组,并且将每组的元素进行连乘。下述公式(8)示出了一组多个元素连乘的运算公式:
其中,x1、x2……、xn为需要进行乘积运算的元素,y为连乘结果。
例如,特征数据是一个高维的特征图(feature map),包含多个维度,假设包含[N,H,W,C]这四个维度,求积算子可以在前述四个维度中按照指定维度进行连乘运算。
可以理解的,可以按照指定维度将特征数据中的指定范围内的各元素进行连乘后得到多个连乘结果,从而基于连乘结果的算子得到求积算子处理输入特征数据后得到的特征处理结果。
(三)量化求积(Prod)算子
可以理解的,可以按照对称量化方式以及非对称量化方式对求积算子进行量化,例如,对求积算子进行量化,可以是对上述公式(8)所指代的元素连乘方式进行量化。在本申请的一些实例中,可以按照上述介绍的对称量化方式以及非对称量化方式对求积算子进行量化。
下面以对称量化为例,对求积算子的量化进行详细介绍。
可以理解的,对于对称量化,量化参数仅包括缩放因子S。所以记元素xi所对应的缩放因子为Sxi。对连乘结果y,记所对应的缩放因子为Sy,则结合公式(8)和公式(3)得到如下述公式(9)所示的定点连乘公式:
其中,Qy为定点连乘结果,Qx为定点元素。
在一些实施例中,假设Sx=Sx1=Sx2=......=Sxn,则上述公式(9)可以转变为下述公式(10):
其中,n为元素数量。
可以理解的,由于Qy为一个定点数,而Sy和Sx是一个浮点数,公式(10)中是约等号。
根据公式(10),得到如下公式(11)所示的乘法关系参数L:
可以理解的,该乘法关系系数L是连乘结果y与元素xi所对应的缩放因子的比值,并且,L可以随着连乘结果y与元素xi所对应的缩放因子的变化而变化。
可以理解的,由于需要支持定点运算,在一些实施例中,需要将上述公式(11)中的乘法关系系数L定点化,得到定点乘法关系系数QL,以实现定点运算。
例如,下述公式(12)示出了一种根据定点运算过程,根据定点乘法关系系数QL得到定点连乘结果Qy的表达式:
Qy=QL*Qx1*Qx2......*Qxn(公式12)
下面以非对称量化为例,对求积算子的量化进行介绍。
例如,当为非对称量化时,结合公式(8),下述公式(13)示出了一种非对称量化下各定点元素与定点连乘结果关系的量化公式:
其中,Z1、......Zn是各元素所对应的零点偏移量,Zy为连乘结果所对应的零点偏移量。
在一些实施例中,假设Sx=Sx1=Sx2=......=Sxn,Zx=Zx1=Zx2=......=Zxn,此外,为了方便阐述,将Qxi-Zxi记为定点偏移元素Hxi,即Hxi=Qxi-Zxi;结合上述公式(11),则可以根据公式(13)得到如下公式(14):
Qy=QL*Hx1*Hx2......*Hxn+Zy(公式14)
(四)浮点数定点化(量化)
1.分数表现形式:
可以理解的,任何小数都可以用一个分数近似表示。所以,对于一个浮点数,可以使用分子分母都为定点数的等效分数来表示。
例如,下述公式(15)示出了浮点数F所对应的等效分数的公式:
其中,W、V均为定点数。可以理解的,对于同一个F,W、V可以取不同的值,只是所对应的精度不同。
可以理解的,在计算机执行过程中,2V不直接参与乘法运算。所以W/2V实质上可以看做定点数W右移V位即可。可以理解的,虽然移位操作有微小损失,但是损失对结果影响不大。
可以理解的,在本申请的一些实施例中,等效分数实质上包括一个等效定点数以及移位位数。
例如,浮点数0.1245,则可以约等于254/211。可以理解的,浮点数0.1245还以约等于其他分子分母都为定点数的等效分数,只是各等效分数的精度不同而已。
在本申请的一些实施例中,限定分母的数据类型范围,例如,为16bit,此时,就可以确定出一个分子满足数据类型范围内,并且精度最高的等效分数。
例如,下面以将等效分数的分母W,限制在uint8范围内为例阐述一种确定浮点数的等效分数的方式。
可以理解的,uint8所对应的数值范围为[0,255]。为了方便理解,下述公式(16)示出了一种得到M、N的具体方式:
根据上述公式(15),假设F*2v≤255,其中,255为uint8所对应范围的最大值。假设F大于0,则2V≤(255/F),则,V≤log2(255/F)。
由于V为整数,使得V最大,则可以得到如下公式(16):
V=floor(log2(255/F))公式(16)
其中,floor()表示向下取整函数,V为整数。
则,当V确定后,结合上述公式(15)、公式(16),下述公式(17)示出一种W的表达式
其中,W为整数,round()表示取整函数,例如四舍五入取整,可以理解的,取整方式还可以为向下取整floor()函数,向上取整ceil()函数。
可以理解的,上述阐述的确定浮点数的等效分数的方式只是示例,在其他实施例中,可以采用其他的方式。例如,在另一些实施例中,还可以遍历W、V,选取和F误差最小的一组W、V。例如,将W限制在uint8范围内,将W在0~255范围内进行遍历,分别根据F求对应的V是多少,然后根据W/2V的结果来取误差最小的一组W、V。
2.乘积表现形式:
可以理解的,上述公式(15)示出的是相除的表示方式,也可以转变为另一种相乘的形式。下述公式(18)示出了另一种将浮点数使用等效定点数以及移位位数的等效乘数表示方式:
F≈W'*2v'公式(18)
可以理解的,其中,W'、V'均为定点数。可以理解的,对于同一个F',W'、V'可以取不同的值,只是所对应的精度不同。
参考上述公式(15)和公式(18)可以发现,两种表现方式实质相同,只是当用分数表现时,例如公式(15),V为M需要右移的移位位数;当用乘积表现时,例如公式(18),V'为M'需要左移的移位位数。
可以理解的,当右移的位数为负数时,就表明为需要左移相应位数;当左移的位数为负数时,就表明为需要右移相应位数。
可以理解的,在本申请的一些实施例中,对此表现形式不做要求。V以及V'可以为负整数、正整数、以及0。
(五)乘法关系系数量化(定点化)
在一些实施例中,下述公式(19)示出了一种将定点乘法关系系数QL所对应的等效分数的表示形式:
其中,M为乘法定点参数,N为乘法关系移位位数,即为乘法定点参数M所对应的需要右移的移位位数,QL为定点乘法关系系数。可以理解的,当确定了M以及N,即可得到定点乘法关系系数QL。
可以理解的,定点乘法关系系数QL可以用乘法定点参数M,以及乘法关系移位位数N来表示。
为了更好的理解本方案,下面结合应用场景介绍本申请技术方案。
可以理解的,本申请技术方案可以应用在需要通过神经网络模型对文字、视频、音频、图像等数据进行处理的任何场景,下面介绍的一种应用场景仅仅是一种示例。
图1示出了一种终端100通过人脸识别模型对采集到的人脸图像进行识别的场景图。如图1所示,终端100部署有通过服务器200量化好的人脸识别模型,进而可以将高精度浮点运算转化为定点运算。
其中,人脸识别模型中包括输入层、隐藏层、输出层等。各层中可以包括各种用于对输入到人脸识别模型中的图像数据进行数据处理的算子,从而识别图像数据中的人脸特征。其中,求积算子是一种可以运用在神经网络模型的各种层中,以实现对特征数据进行处理的算子。例如,对于上述人脸识别模型,激活层中的求积算子可以对上一层输入的与人脸图像相关联的特征数据按照指定维度进行连乘处理,从而得到处理后的新的与人脸图像相关联的特征数据。
在一些实施例中,量化后的求积算子会对输入的特征数据中的多组定点元素利用内置的定点乘法关系系数进行连乘运算得到定点连乘结果,从而基于定点连乘结果输出相应的特征处理结果。
但是,在获取定点乘法关系系数QL时,由于在将乘法关系系数L定点化的过程中,将乘法关系系数的结果计算出来得到一个浮点数,参考上述公式(11),存在乘法关系系数L中的分母部分太大可能无法计算的问题,使得得到的定点乘法关系系数QL的值误差较大,从而导致求积算子的数据处理精度较低。
例如,参与连乘元素的数量较多(例如,连乘的元素数量n为10000),而乘法关系系数中的分子为连乘结果的缩放因子(例如,Sy为50.0),分母为多个元素所对应的缩放因子的乘积(例如,每个元素所对应的缩放因子Sx为10.01,则分母为(10.01)10000),分母会超出计算机可以存储的范围,例如,(10.01)10000超出32位浮点数可以表示的范围。此时,在一些情况下,50除以一个无穷大的数就会认为为0,使得定点乘法关系系数QL误差较大,从而导致求积算子的数据处理精度较低,进而导致神经网络模型的数据处理准确度下降。
因此,本申请提出了一种数据处理方法,该方式包括:获取神经网络模型在运行的过程中,求积算子中乘法关系系数L的第一浮点缩放系数(例如,公式(11)中的元素的缩放因子Sx)、第二浮点缩放系数(例如,公式(11)中的连乘结果的缩放因子Sy)、以及连乘元素的数量(例如,公式(11)中的n);然后分别对第一浮点缩放系数的倒数(例如,连乘元素的缩放因子的倒数1/Sx)和第二浮点缩放系数(Sy)定点化,得到第一定点缩放系数的第一缩放参数,以及第二定点缩放系数的第二缩放参数;基于第一定点缩放系数的第一缩放参数、第二定点缩放系数的第二缩放参数、以及进行连乘的元素数量,得到定点乘法关系系数;从而基于定点乘法关系系数,实现对求积算子的计算。
例如,可以将1/Sx=1/10.01表示成p0/2q0,其中,p0、q0均为定点数,将Sy=50.01表示成表示成p1/2q1,其中,p1、q1均为定点数。然后,将p0/2q0和p1/2q1进行后续定点计算得到定点乘法关系参数。
可以理解的,在该量化方式中,直接先将连乘元素的缩放因子的倒数以及连乘结果的缩放因子进行定点化,避免了在浮点域中,因为乘法关系系数中的分母无穷大或者无穷小,而无法将分母直接计算出来的问题。且定点化后得到的定点乘法关系系数的误差尽可能的小,有效保证求积算子的数据处理精度,进而提高神经网络模型的数据处理准确度。
下面结合公式以及具体的例子阐述得到定点乘法关系系数:
(1)将第一浮点缩放系数(Sx)的倒数(1/Sx)定点化(量化),得到第一定点缩放系数的第一缩放参数,并且第一缩放参数包括多个参数。
例如,下述公式(20)示出了一种将第一浮点缩放系数的倒数(1/Sx)量化得到第一定点缩放系数的第一缩放参数的计算公式:
其中,为第一定点缩放系数,M0为第一参数,N0为需要右移的第一移位位数,其中第一参数M0在指定的数据类型B1所对应的整数范围内;其中,第一缩放参数包括第一参数、第一移位位数。
例如,上述例子,将1/Sx=1/10.01表示成p0/2q0,其中,p0为第一参数的值,q0为需要右移的第一移位位数的值,其中,第一参数的值p0可以被限制在uint8所对应的范围内。
(2)将第二浮点缩放系数(Sy)定点化(量化)得到第二定点缩放系数的第二缩放参数,并且该第二缩放参数包括多个参数。
例如,下述公式(21)示出了一种将第二浮点缩放系数(Sy)量化得到第二定点缩放系数的第二缩放参数的计算公式:
其中,为第二定点缩放系数,M1为第二参数,N1为第二移位位数,即为第二参数M1需要右移的移位位数,并且,第二参数M1在指定的数据类型B2所对应的整数范围内;其中,第二缩放参数包括第二参数、第二移位位数。
例如,上述例子,将Sy=50.01表示成p1/2q1,其中,p1为第二参数的值和q1为需要右移的第二移位位数的值。其中,第二参数的值p1可以被限制在uint8所对应的范围内。
可以理解的,数据类型B1、数据类型B2可以相同或者不同。
(3)基于第一定点缩放系数的第一缩放参数、第二定点缩放系数的第二缩放参数、以及进行连乘的元素数量,得到定点乘法关系系数。
例如,在一些实施例中,下述公式(22)示出了一种定点乘法关系系数的计算方式:
其中,QL为定点乘法关系系数,Mc为乘法定点参数;T为乘法关系移位位数,即乘法定点参数Mc需要右移移位位数。
在一些实施例中,Mc=(M0)n*M1;T=n*N0+N1。
在另一些实施例中,为了避免定点乘法关系系数中乘法定点参数过大,并且,方便后续使用,需要将乘法定点参数限制在某个数据类型(以下简称“数据类型B3”)所对应的范围内:Mc=M2;T=n*N0+N1-N2;其中,M2为在预设数据类型B3所对应的范围内的定点数;N2为根据(M0)n*M1得到的M2所需要的移位位数,即将M2左移N2位数,即可近似得到(M0)n*M1。
下面将介绍确定Mc对应于(M0)n*M1,以及T对应于n*N0+N1的方式。
1:根据连乘元素数量以及第一缩放参数,得到第三定点缩放系数的第三缩放参数:
例如,在一些实施例中,下述公式(23)示出了一种根据连乘元素数量以及第一缩放参数,得到第三定点缩放系数的第三缩放参数的计算公式:
其中,为第三定点缩放系数;(M0)n为第三参数,n*N0为第三参数需要右移的第三移位位数,第三缩放参数包括第三参数以及第三移位位数。
2:根据第三缩放参数与第二缩放参数,得到第四定点缩放系数的第四缩放参数:
例如,在一些实施例中,下述公式(24)和公式(25)示出了一种根据第三缩放参数与第二缩放参数,得到第四定点缩放系数的第四缩放参数的计算公式:
将(M0)n与M1相乘得到(M0)n*M1,将2n*N0与2N1相乘得到2n*N0+N1,从而得到如下公式(25):
其中,为第四定点缩放系数;(M0)n*M1为第四参数,n*N0+N1为第四参数需要右移的第四移位位数;第四缩放参数包括第四参数和第四移位位数。
3.根据第四缩放参数,得到定点乘法关系系数。
例如,在一些实施例中,下述公式(26)-公式(28)示出了一种根据第四缩放参数,得到乘法定点参数和的乘法关系移位位数计算公式:
可以理解的,下述公式(26)示出了第四定点缩放系数与定点乘法关系系数QL的关系:
所以,结合上述公式(22),下述公式(27)和公式(28)示出了得到定点乘法关系系数QL的计算公式:
Mc=(M0)n*M1 公式(27)
T=n*N0+N1 公式(28)
其中,Mc为乘法定点参数;T为乘法关系移位位数,即乘法定点参数Mc需要右移的移位位数。
下面将介绍确定Mc对应于M2、T对应于n*N0+N1-N2的方式。
在另一些实施例中,乘法定点参数需要满足预设的数据类型B3所对应的范围内,根据第四缩放参数得到定点乘法关系系数。
例如,在一些实施例中,下述公式(29)-公式(32)示出了一种根据第四缩放参数,得到定点乘法关系系数QL的计算公式:
例如,下述公式(29)示出了将第四参数(M0)n*M1用第五参数M2和第五移位位数N2表示的计算公式:
(M0)n*M1≈M2*2N2 公式(29)
其中,第五参数M2满足在预设的数据类型B3所对应的范围内,比如说,uint8所对应的范围内。
此时,结合公式(25)和公式(29),可以得到如下公式(30):
此时,结合公式(26)和公式(30),可以得到如下公式(31)和公式(32):
Mc=M2 公式(31)
T=n*N0+N1-N2 公式(32)
可以理解的,QL是通过第一定点缩放系数的第一缩放参数,以第二定点缩放系数的第二缩放参数进行后续定点乘积运算得到的。并且,可以将乘法定点参数Mc限制在某些数据类型所对应的范围内。
下面以一个例子阐述得到乘法关系参数的过程:
对于乘法关系参数L=50.01/(10.01)10000,则为p0/2q0;Qy为p1/2q1;则将(p0)10000*p1转换为p2*2q2;此时则
可以理解的,其中,对于(p0)10000*p1是通过移位的方式得到p2*2q2,而并不是直接计算(p0)10000的结果,从而将(p0)10000*p1转换为p2*2q2。例如,假设(p0)10000*p1=(254)10000*50≈(28)10000*50=50*280000。此时,p2=50、q2=80000仍然满足可表示的范围。然后,将10000*q0+q1-q2进行加减运算。可以理解的,在得到定点乘法关系系数的过程中,主要是进行加减运算,并且由于加减运算借位的数量比乘法运算借位的数量要少,所以中间结果以及最后的结果能够满足计算机比特位的存储容量(例如,不管是float32或者int32)。
可以理解的,数据类型B1、数据类型B2、数据类型B3可以相同或者不同。
可以理解的,终端100部署有神经网络模型,并且,在神经网络模型运行时,获取需要求积算子处理的特征数据,并且特征数据包括待连乘运算的多组定点元素;可以将每组定点元素所对应的待连乘数据按照本申请提出的量化方式得到的定点乘法关系系数参与连乘计算,得到各组所对应的定点连乘结果,使得处理得到的定点连乘结果的精度较高,求积算子处理后得到的特征处理结果更加准确,避免模型数据数据过程中由于求积算子处理数据误差较大而模型运行结果误差较大的问题。
可以理解的,在另一些实施例中,在神经网络模型对数据处理时,获取需要求积算子处理的特征数据,获取特征数据中的定点元素,将需要进行连乘的定点元素按照如公式(12)和公式(14)所示的方式计算,得到定点连乘结果。可以理解的,定点乘法关系系数可以按照如上述提出的基于第一定点缩放系数的第一缩放参数、第二定点缩放系数的第二缩放参数、以及进行连乘元素的数量,得到定点乘法关系系数的方式得到,也可以直接将乘法关系系数计算出来,然后将计算出来的结果量化的方式得到,在此不做限制。
可以理解的,在具体得到定点连乘结果时,对于对称量化,可以按照如公式(12)所示的方式得到定点连乘结果;对于非对称量化,可以按照如公式(14)所示的方式得到定点连乘结果。
例如,在一些实施例中,对于公式(12)中,采用对称量化得到定点连乘结果的过程可以包括:
1.先将定点乘法关系系数QL与定点元素Qx1进行相乘,得到连乘中间结果P1,如下述公式(33):
P1=QL*Qx1公式(33)
2.将连乘中间结果P1与定点元素Qx2进行相乘,得到连乘中间结果P2,如下述公式(34):
P2=P1*Qx2公式(34)
......
3.如此类推,最后,将连乘中间结果Pn-1与定点元素Qxn进行相乘,得到连乘中间结果Pn,如下述公式(35):
Pn=Pn-1*Qxn公式(35)
可以理解的,结合公式(12),可以得到下述公式(36):
Pn=QL*Qx1*Qx2......*Qxn公式(36)
4.将连乘中间结果Pn作为定点连乘结果Qy,如下述公式(37):
Qy=Pn公式(37)
例如,在一些实施例中,对于公式(14)中,采用非对称量化得到定点连乘结果的过程可以包括::
1.先将定点乘法关系系数QL与定点偏移元素Hx1进行相乘,得到连乘中间结果P1,如下述公式(38):
P1=QL*Hx1公式(38)
2.将P1与定点偏移元素Hx2进行相乘,得到连乘中间结果P2,如下述公式(39):
P2=P1*Hx2 公式(39)
......
3.如此类推,最后,将连乘中间结果Pn-1与定点偏移元素Hxn进行相乘,得到连乘中间结果Pn,如下述公式(40):
Pn=Pn-1*Hxn 公式(40)
可以理解的,结合公式(14),从而可以得到下述公式(41):
QL*Hx1*Hx2......*Hxn=Pn 公式(41)
4.将连乘中间结果Pn加上连乘结果所对应的零点偏移量Zy,得到定点连乘结果Qy,如下述公式(42):
Qy=Pn+Zy 公式(42)
可以理解的,在另一些实施例中,也可以先将各定点元素Qxi(或者定点偏移元素Hxi)连乘,例如,将Qx1*Qx2......*Qxn连乘。然后,将定点乘法关系系数QL作为最后的乘数进行相乘,得到连乘中间结果Pn,具体连乘顺序不做具体限定。
但是,在进行求积算子的连乘运算时,会存在运算过程中的相乘的中间结果值过大,如上述公式中的P2、P3等等,超出硬件可支持的范围(下文中简称为硬件溢出),例如,超出int32的范围,导致硬件溢出,从而无法处理数据的问题。
因此,为了解决硬件溢出的问题,在本申请的另一些实施例中,示出了一种数据处理方法。该处理方法在连乘时,将各个连乘中间结果,例如,上述公式中的P2、P3等等,转换为数值较小的定点表示形式,进而解决在进行求积算子的连乘运算时,存在运算过程中的相乘的中间结果值过大的问题。例如,假设P1=QL*Qx1=184,则,可以将184的定点数据表示为23*23,那么,P1=QL*Qx1可以表示为P1=QL*Qx1=Qt1*2D1,其中,Qt1≤P1,而且,将P1表示为Qt1*2D1之后,计算机在计算时只需要将Qt1进行移位,移位位数为D1,无需将P1计算出来,从而减小了相乘的中间结果值,并且简化了计算过程。
可以理解,在另一些实施例中,对于定点连乘系数QL,为了简化计算,可以采用公式(19)所示的表示方式参与到连乘计算中,即如此,例如,对于P1,可以表示为:P1=M*Qx1/2N=Qt1*2k1/2N=Qt1*2D1,D1=-N+k1。
下面,具体地,分别对对称量化和非对称量化的求积算子的计算过程进行介绍。
下面结合公式阐述对称量化方式下得到定点连乘结果。
在一些实施例中,对于对称量化,下述公式(43)和公式(44)示出了一种根据定点元素Qxi得到定点连乘结果Qy的计算方式:
QL*Qx1*Qx2......*Qxn=QB*2D (公式43)
Qy=QB*2D (公式44)
其中,QL为定点乘法关系系数;QB为等效连乘参数,D为等效连乘移位位数。
假设定点乘法关系系数QL如上述公式(19)所表示,即包括乘法定点参数为M,乘法关系移位位数为N。
在一些实施例中,可以按照如下方式得到QB,D。
1.参考上述公式(33),需要将定点连乘系数QL与元素Qx1相乘,可以理解的,实质是将乘法定点参数为M与定点元素Qx1相乘,得到等效中间连乘结果Qv1,等效中间连乘结果Qv1包括等效中间乘积参数Qt1以及乘积参数移位位数k1,如下公式(45)所示:
M*Qx1=Qt1*2k1(公式45)
可以理解的,此时下述公式(46)示出了计算累积移位位数D1的表达式:
D1=-N+k1(公式46)
可以理解的,上述公式(33)中的连乘中间结果P1即为,P1=Qv1*2-N=Qt1*2D1。
2.参考上述公式(34),应该将等效中间连乘结果Qv1与元素Qx2相乘,此时实质是将等效中间乘积参数Qt1与元素Qx2相乘,得到等效中间连乘结果Qv2,等效中间连乘结果Qv2包括等效中间乘积参数Qt2以及乘积参数移位位数k2,如下公式(47)所示:
Qt1*Qx2=Qt2*2k2(公式47)
可以理解的,此时下述公式(48)示出了计算累积移位位数D2的表达式:
D2=-N+k1+k2(公式48)
可以理解的,上述公式(34)中的连乘中间结果P2即为,P2=Qv2*2D1=Qt2*2D2。
......
3.参考上述公式(35),应该将等效中间连乘结果Qv(n-1)与元素Qxn相乘,此时实质是将等效中间乘积参数Qt(n-1)与定点元素Qxn相乘,得到等效中间连乘结果Qvn,等效中间连乘结果Qvn包括等效中间乘积参数Qtn以及乘积参数移位位数kn,如下公式(49)所示:
Qt(n-1)*Qxn=Qtn*2kn(公式49)
可以理解的,此时下述公式(50)示出了计算累积移位位数Dn的表达式:
Dn=-N+k1+k2+......+kn(公式50)
可以理解的,上述公式(35)中的连乘中间结果Pn即为,Pn=Qvn*2D(n-1)=Qtn*2Dn。
4.结合公式(49)和公式(50),下述公式(51)和公式(52)示出了一种根据等效中间连乘结果Qvi得到QB以及D的计算公式:
QB=Qtn(公式51)
D=-N+k1+k2......+kn(公式52)
可以理解的,当得到了QB以及D,代入上述公式(43)和公式(44)即可。
下面结合公式阐述非对称量化方式下得到定点连乘结果。
在一些实施例中,对于非对称量化,下述公式(53)和公式(54)示出了一种根据定点偏移元素Hxi得到定点连乘结果Qy的计算方式:
QL*Hx1*Hx2......*Hxn=QB*2D(公式53)
Qy=QB*2D+Zy(公式54)
其中,QL为定点乘法关系系数,QB为等效连乘参数,D为等效连乘移位位数;Zy为连乘结果所对应的零点偏移量。
假设定点乘法关系系数QL如上述公式(19)所表示,即包括乘法定点参数为M,乘法关系移位位数为N。
在一些实施例中,可以按照如下方式得到QB,D。
1.参考上述公式(38),需要将定点连乘系数QL与定点偏移元素Hx1相乘,可以理解的,实质是将乘法定点参数为M与定点偏移元素Hx1相乘,得到等效中间连乘结果Qv1,等效中间连乘结果Qv1包括等效中间乘积参数Qt1以及乘积参数移位位数k1,如下公式(55)所示:
M*Hx1=Qt1*2k1(公式55)
可以理解的,此时下述公式(56)示出了计算累积移位位数D1的表达式:
D1=-N+k1(公式56)
可以理解的,上述公式(38)中的连乘中间结果P1即为,P1=Qv1*2-N=Qt1*2D1。
2.参考上述公式(39),应该将等效中间连乘结果Qv1与定点偏移元素Hx2相乘,此时实质是将等效中间乘积参数Qt1与定点偏移元素Hx2相乘,得到等效中间连乘结果Qv2,等效中间连乘结果Qv2包括等效中间乘积参数Qt2以及乘积参数移位位数k2,如下公式(57)所示:
Qt1*Hx2=Qt2*2k2(公式57)
可以理解的,此时下述公式(58)示出了计算累积移位位数D2的表达式:
D2=-N+k1+k2(公式58)
可以理解的,上述公式(39)中的连乘中间结果P2即为,P2=Qv2*2D1=Qt2*2D2。
......
3.参考上述公式(40),应该将等效中间连乘结果Qv(n-1)与定点偏移元素Hxn相乘,此时实质是将等效中间乘积参数Qt(n-1)与定点偏移元素Hxn相乘,得到等效中间连乘结果Qvn,等效中间连乘结果Qvn包括等效中间乘积参数Qtn以及乘积参数移位位数kn,如下公式(59)所示:
Qt(n-1)*Hxn=Qtn*2kn(公式59)
可以理解的,此时下述公式(60)示出了计算累积移位位数Dn的表达式:
Dn=-N+k1+k2+......+kn(公式60)
可以理解的,上述公式(40)中的连乘中间结果Pn即为,Pn=Qvn*2D(n-1)=Qtn*2Dn。
4.结合公式(59)和公式(60),下述公式(61)和公式(62)示出了一种根据等效中间连乘结果Qvi得到QB以及D的计算公式:
QB=Qtn(公式61)
D=-N+k1+k2......+kn(公式62)
可以理解的,当得到了QB以及D,代入上述公式(53)和公式(54)即可。可以理解的,上述阐述的得到对称量化以及非对称量化下得到定点连乘结果的过程只是一种示例,还可以有其他实现方式,在此不做赘述。
需要说明的是,可以由服务器200将神经网络模型中的求积算子进行量化,也可以由终端100将神经网络模型中的求积算子进行量化。终端100包括但不限于手机、平板电脑、智慧屏、可穿戴设备(例如,手表、手环、头盔、耳机等)、车载设备、增强现实(AugmentedReality,AR)/虚拟现实(Virtual Reality,VR)设备、笔记本电脑、超级移动个人计算机(Ultra-mobile Personal Computer,UMPC)、上网本、个人数字助理(Personal DigitalAssistant,PDA)等电子设备中的一种。服务器200可以是单独的服务器,也可以是多个服务器构成的服务器集群。
下面具体阐述量化求积(Prod)算子的过程。可以理解的,求积算子的量化实质上各组元素需要参与的连乘函数量化。下图2根据本申请的一些实施例,示出了一种量化求积算子的过程示意图。可以理解的,可以通过对称量化和非对称量化的方式量化求积算子。
具体过程如下:
S201,获取神经网络模型在运行的过程中,求积算子中的乘法关系系数的第一浮点缩放系数、第二浮点缩放系数、以及连乘元素数量。
其中,第一浮点缩放系数为元素的缩放因子Sx,第二浮点缩放系数为连乘结果的缩放因子Sy。
在一些实施例中,可以统计输入的特征数据中的所有元素的浮点范围,参考上述公式(2),根据元素的浮点范围、量化方式和量化的数据类型得到第一浮点缩放系数(Sx)。
在一些实施例中,可以统计连乘结果的浮点范围,参考上述公式(2),根据连乘结果的浮点范围、量化方式和量化的数据类型得到第二浮点缩放系数Sy。
在一些实施例中,可以统计得到进行连乘计算的元素的数量n。
S202,将第一浮点缩放系数的倒数量化(定点化),得到第一定点缩放系数的第一缩放参数。
在一些实施例中,通过上述公式(16)和公式(17)将第一浮点缩放系数的倒数(1/Sx)量化,得到第一定点缩放系数的第一缩放参数。
例如,上述公式(20)示出了第一定点缩放系数的表达式,并且,第一缩放参数包括第一参数M0、第一移位位数N0。其中,第一参数在预设的数据类型B1所对应的范围内。
可以理解的,预设的数据类型B1可以为int32、int16、int8、int4、uint32、uint16、uint8或uint4等等。
S203,将第二浮点缩放系数量化(定点化),得到第二定点缩放系数的第二缩放参数。
在一些实施例中,通过上述公式(16)和公式(17)将第二浮点缩放系数(Sy)量化,得到第二定点缩放系数的第二缩放参数。
例如,上述公式(21)示出了第二定点缩放系数QSy的表达式,并且,第二缩放参数包括第二参数M1、第二移位位数N1。其中,第二参数在预设的数据类型B2所对应的范围内。
可以理解的,预设的数据类型B2可以为int32、int16、int8、int4、uint32、uint16、uint8或uint4等等。
S204,基于第一定点缩放系数的第一缩放参数、第二定点缩放系数的第二缩放参数、以及进行连乘的元素数量,得到定点乘法关系系数。
可以理解的,在一些实施例中,根据连乘元素数量以及第一缩放参数,得到第三定点缩放系数的第三缩放参数;根据第三缩放参数与第二缩放参数,得到第四定点缩放系数的第四缩放参数:根据第四缩放参数,得到定点乘法关系系数。
例如,根据上述公式(23)所示的计算公式,根据连乘元素数量n以及第一缩放参数M0和N0得到第三定点缩放系数的第三缩放参数中的第三参数(M0)n和第三移位位数n*N0。根据上述公式(24)所示的计算公式得到第四定点缩放系数的第四缩放参数中的第四参数(M0)n*M1和第四移位位数n*N0+N1。根据公式(27)、公式(28)以及公式(22)得到定点乘法关系系数。其中,定点乘法关系系数中QL的乘法定点参数为(M0)n*M1,乘法关系移位位数T为n*N0+N1。
又例如,根据公式(30)、公式(31)、公式(32)以及公式(22)得到定点乘法关系系数。其中,定点乘法关系系数中QL的乘法定点参数Mc为M2,乘法关系移位位数T为n*N0+N1-N21。并且,乘法定点参数Mc(即M2)在预设的数据类型B3所对应的范围内。
可以理解的,预设的数据类型B3可以为int32、int16、int8、int4、uint32、uint16、uint8或uint4等等。
可以理解的,上述数据类型B1、数据类型B2、数据类型B3可以相同或者不同。
可以理解的,当得到定点乘法关系系数后,基于定点乘法关系系数,对求积算子进行计算。
可以理解,上述对于量化求积算子的方法,步骤S201至步骤S204的执行顺序只是一种示例,在另一些实施例中,也可以采用其他执行顺序,还可以拆分或合并部分步骤,在此不做限定。
可以理解的,当神经网络模型对数据处理的过程中需要求积算子处理的特征数据时,需要获取输入的定点特征数据,特征数据包括待连乘运算的多组定点元素。将每组定点元素或定点偏移元素与所对应的定点乘法关系系数进行连乘计算,得到各组所对应的定点连乘结果,从而根据各组所对应的定点连乘结果,得到求积算子的特征处理结果。
可以理解的,其中对得到定点乘法关系系数的方式不做要求。
可以理解的,每组定点元素或定点偏移元素的连乘的过程都是相同的。下面具体阐述一组定点元素或定点偏移元素进行连乘时防止硬件溢出的过程。可以理解的,在一些实施例中,定点乘法关系系数QL可以作为最后一个连乘的定点数,即可以先将多个定点元素或定点偏移元素连乘,最后再与定点乘法关系系数QL相乘,从而得到最终的定点连乘结果。在另一些实施例中,也可以先将定点乘法关系系数QL作为第一个连乘的定点数与各定点元素连乘或者定点偏移元素连乘,从而得到最终的定点连乘结果。可以理解的,具体连乘的顺序可以不同,在此不做具体限制。
为了方便阐述,图3示出了一种以对称量化为例的数据处理过程,以一组定点元素包括n个元素定点元素Qx1、Qx2......Qxn,并且定点乘法关系系数QL作为第一个定点数参与连乘为例进行阐述(参考上述公式(12)),其中,参考公式(19),定点乘法关系系数QL用乘法定点参数M和需要右移的乘法关系移位位数N表示。具体过程如下:
S301,将乘法定点参数M与定点元素Qx1进行相乘,得到等效中间乘积参数Qt1和对应的需要左移的乘积参数移位位数k1。
在一些实施例中,乘法定点参数M与定点元素Qx1按照相乘移位方式处理,得到等效中间乘积参数Qt1和对应的需要左移的乘积参数移位位数k1,并且等效中间乘积参数Qt1在预设的数据类型C1范围内。
例如,上述公式(45)示出了一种将乘法定点参数M与定点元素Qx1进行相乘,得到等效中间乘积参数Qt1和对应的需要左移的乘积参数移位位数k1的计算公式。
示例性的,预设的数据类型C1可以为int32、int16、int8、int4、uint32、uint16、uint8或uint4等等。
例如,预设的数据类型C1为int8,则int8所对应的范围为[-128,127];假设乘法定点参数M与定点元素Qx1相乘得到的数值为298;则将298表示为149*21,其中,149为等效中间乘积参数Qt1,1为乘积参数移位位数k1。
其中,相乘移位方式将在图5中具体阐述,在此不做赘述。可以理解的,相乘移位方式需要设置所对应的数据类型,使得两个定点数相乘得到的结果能够预设的数据类型所对应的范围内。并且,在乘法定点参数M与定点元素Qx1相乘时,相乘移位方式中所对应的数据类型为数据类型C1。
S302,将等效中间乘积参数Qt1与定点元素Qx2进行相乘,得到等效中间乘积参数Qt2和对应的需要左移的乘积参数移位位数k2。
在一些实施例中,将等效中间乘积参数Qt1与定点元素Qx2按照相乘移位方式处理,得到等效中间乘积参数Qt2和对应的需要左移的乘积参数移位位数k2。
可以理解的,在一些实施例中,等效中间乘积参数Qt2和等效中间乘积参数Qt1预设的数据类型相同。
例如,上述公式(47)示出了一种将等效中间乘积参数Qt1与定点元素Qx2进行相乘,得到等效中间乘积参数Qt2和对应的需要左移的乘积参数移位位数k2的计算公式。
......
S30n,将等效中间乘积参数Qt(n-1)与定点元素Qxn相乘,得到等效中间乘积参数Qtn以及乘积参数移位位数kn。
在一些实施例中,将等效中间乘积参数Qt(n-1)与定点元素Qxn按照相乘移位方式处理,得到等效中间乘积参数Qtn以及乘积参数移位位数kn,并且等效中间乘积参数Qtn在预设的数据类型C2范围内。
示例性的,预设的数据类型C2可以为int32、int16、int8、int4、uint32、uint16、uint8或uint4等等。
例如,上述公式(49)示出了一种,将等效中间乘积参数Qt(n-1)与定点元素Qxn相乘,得到等效中间乘积参数Qtn以及乘积参数移位位数kn。
例如,预设的数据类型C2为int16,则int16所对应的范围为[-32768,32767];假设乘法定点参数M与定点元素Qx1相乘得到的数值为298;则将298表示为298*20,其中,298为等效中间乘积参数Qtn,0为乘积参数移位位数kn。
S30(n+1):根据等效中间乘积参数Qtn以及乘积参数移位位数k1、kn......、kn得到定点连乘结果Qy。
在一些实施例中,定点连乘结果以如下述所示的计算公式(63)得到:
Qy=Qtn*2-N+k1+k2......+kn公式(63)
可以理解,上述以对称量化为例阐述的数据处理方法,步骤S301至步骤S30(n+1)的执行顺序只是一种示例,在另一些实施例中,也可以采用其他执行顺序,还可以拆分或合并部分步骤,在此不做限定。
为了方便阐述,图4示出了一种以非对称量化为例的数据处理过程,以一组定点元素包括n个定点元素Qx1、Qx2......Qxn,此时,对应于的n个定点偏移元素Hx1、Hx2......Hxn,并且定点乘法关系系数QL作为第一个定点数参与连乘为例进行阐述(参考上述公式(14)),其中,参考公式(19),定点乘法关系系数QL用乘法定点参数M和需要右移的乘法关系移位位数N表示。具体过程如下:
S401,将乘法定点参数M与定点偏移元素Hx1进行相乘,得到等效中间乘积参数Qt1和对应的需要左移的乘积参数移位位数k1。
在一些实施例中,乘法定点参数M与定点偏移元素Hx1按照相乘移位方式处理,得到等效中间乘积参数Qt1和对应的需要左移的乘积参数移位位数k1,并且等效中间乘积参数Qt1在预设的数据类型C1范围内。
例如,上述公式(55)示出了一种将乘法定点参数M与定点偏移元素Hx1进行相乘,得到等效中间乘积参数Qt1和对应的需要左移的乘积参数移位位数k1的计算公式。
示例性的,预设的数据类型C1可以为int32、int16、int8、int4、uint32、uint16、uint8或uint4等等。
其中,相乘移位方式将在图5中具体阐述,在此不做赘述。可以理解的,相乘移位方式需要设置所对应的数据类型,使得两个定点数相乘得到的结果能够预设的数据类型所对应的范围内。并且,在乘法定点参数M与定点偏移元素Hx1相乘时,相乘移位方式中所对应的数据类型为数据类型C1。
S402,将等效中间乘积参数Qt1与定点偏移元素Hx2进行相乘,得到等效中间乘积参数Qt2和对应的需要左移的乘积参数移位位数k2。
在一些实施例中,将等效中间乘积参数Qt1与定点偏移元素Hx2按照相乘移位方式处理,得到等效中间乘积参数Qt2和对应的需要左移的乘积参数移位位数k2。
可以理解的,在一些实施例中,等效中间乘积参数Qt2和等效中间乘积参数Qt1预设的数据类型相同。
例如,上述公式(57)示出了一种将等效中间乘积参数Qt1与定点偏移元素Hx2进行相乘,得到等效中间乘积参数Qt2和对应的需要左移的乘积参数移位位数k2的计算公式。
......
S40n,将等效中间乘积参数Qt(n-1)与定点偏移元素Hxn相乘,得到等效中间乘积参数Qtn以及乘积参数移位位数kn。
在一些实施例中,将等效中间乘积参数Qt(n-1)与定点偏移元素Hxn按照相乘移位方式处理,得到等效中间乘积参数Qtn以及乘积参数移位位数kn,并且等效中间乘积参数Qtn在预设的数据类型C2范围内。
示例性的,预设的数据类型C2可以为int32、int16、int8、int4、uint32、uint16、uint8或uint4等等。
例如,上述公式(59)示出了一种,将等效中间乘积参数Qt(n-1)与定点元素Qxn相乘,得到等效中间乘积参数Qtn以及乘积参数移位位数kn。
S40(n+1):根据连乘结果所对应的零点偏移量Zy、等效中间乘积参数Qtn以及乘积参数移位位数k1、kn......、kn得到定点连乘结果Qy。
在一些实施例中,定点连乘结果以如下述所示的计算公式(64)得到:
Qy=Qtn*2-N+k1+k2......+kn+Zy公式(64)
可以理解,上述以对称量化为例阐述的数据处理方法,步骤S401至步骤S40(n+1)的执行顺序只是一种示例,在另一些实施例中,也可以采用其他执行顺序,还可以拆分或合并部分步骤,在此不做限定
图5根据本申请的一些实施例,示出了一种相乘移位方式,该相乘移位方式可以将两个定点数相乘得到一个满足预设数据类型范围的等效定点结果以及等效定点结果所需左移的移位位数。具体流程如下:
S501,接收第一待乘数据和第二待乘数据,并且设置初始的相乘移位位数为0。
示例性的,对应于上述步骤S301中,第一待乘数据为乘法定点参数M、第二待乘数据为定点元素Qx1。
S502,将第一待乘数据和第二待乘数据相乘,得到移位相乘结果。
示例性的,对应于上述步骤S301中,将乘法定点参数M与定点元素Qx1相乘得到移位相乘结果Qg1。
S503,判断移位相乘结果是否在预设数据类型R所对应的数值范围内。
当移位相乘结果在预设数据类型R所对应的数值范围内,则进入S505,输出移位相乘结果;否则,进入S504,将移位相乘结果右移。
可以理解的,预设数据类型R是与需要将乘积的定点结果所需要限定的范围相对应的数据类型。
示例性的,对应于上述步骤S301,预设数据类型R为数据类型C1。当移位相乘结果Qg1在预设数据类型C1所对应的数值范围内,则进入S505,输出移位相乘结果;否则,进入S504,将移位相乘结果Qg1右移。
假设移位相乘结果Qg1不在预设数据类型C1所对应的数值范围内,则进入S504。
对应于从步骤S504进入S503,假设从S504中得到的新的移位相乘结果Qg1’在预设数据类型C1所对应的数值范围内,则进入S505。
S504,将移位相乘结果右移一位,得到新的移位相乘结果,并且将相乘移位位数更新为在当前的相乘移位位数值上加1。
然后进入S503,再重新判断移位相乘结果是否在预设数据类型R所对应的数值范围内。
可以理解的,此时,可以保证使得移位相乘结果在预设数据类型所对应的数值范围内,所需要右移的位数最小。可以理解的,该右移的总位数即为满足预设数据类型所对应的数值范围的移位相乘结果需要左移的总位数,此时满足预设数据类型的移位相乘结果在左移总位数后才能达到与原先的移位相乘结果近似相等的结果。
示例性的,将移位相乘结果Qg1右移1位得到新的移位相乘结果Qg1',相乘移位位数值为1,然后进入S503,继续判断。
S505,输出移位相乘结果,以及移位相乘结果所对应的需要左移的相乘移位位数。
示例性的,将移位相乘结果Qg1输出,移位相乘结果所对应的需要左移的相乘移位位数为0。
示例性的,将移位相乘结果Qg1'输出,移位相乘结果所对应的需要左移的相乘移位位数为1。
可以理解,上述步骤S501至步骤S505的执行顺序只是一种示例,在另一些实施例中,也可以采用其他执行顺序,还可以拆分或合并部分步骤,在此不做限定。
为便于理解本申请各实施的技术方案,下面对终端100的硬件结构进行介绍。
可以理解的,本申请中提及的数据类型所对应的范围皆为整数范围。
进一步,图6根据本申请的一些实施例,示出了一种终端100的结构示意图。如图6所示终端100包括一个或多个处理器101、系统内存102、非易失性存储器(Non-VolatileMemory,NVM)103、通信接口104、输入/输出(I/O)设备105、系统控制逻辑106以及指令107。
其中:处理器101可以包括一个或多个处理单元,例如,可以包括中央处理器CPU(Central Processing Unit)、图像处理器GPU(Graphics Processing Unit)、数字信号处理器DSP(Digital Signal Processor)、微处理器MCU(Micro-programmed Control Unit)、AI(Artificial Intelligence,人工智能)处理器或可编程逻辑器件FPGA(FieldProgrammableGate Array)的处理模块或处理电路可以包括一个或多个单核或多核处理器。其中,AI(Artificial Intelligence,人工智能)处理器包括神经网络处理器(NeuralNetwork ProcessingUnit,NPU)、周易AIPU等。
系统内存102是易失性存储器,例如随机存取存储器(Random-Access Memory,RAM),双倍数据率同步动态随机存取存储器(Double Data Rate Synchronous DynamicRandomAccess Memory,DDR SDRAM)等。系统内存用于临时存储数据和/或指令,例如,在一些实施例中,系统内存102可以用于存储上述进行数据处理方法的相关指令等。
非易失性存储器103可以包括用于存储数据和/或指令的一个或多个有形的、非暂时性的计算机可读介质。在一些实施例中,非易失性存储器103可以包括闪存等任意合适的非易失性存储器和/或任意合适的非易失性存储设备,例如硬盘驱动器(Hard Disk Drive,HDD)、光盘(Compact Disc,CD)、数字通用光盘(Digital Versatile Disc,DVD)、固态硬盘(Solid-State Drive,SSD)等。在一些实施例中,非易失性存储器103也可以是可移动存储介质,例如安全数字(Secure Digital,SD)存储卡等。
特别地,系统内存102和非易失性存储器103可以分别包括:指令107的临时副本和永久副本。指令107可以包括:由处理器101中的至少一个执行使终端100实现本申请各实施例提供的数据处理方法。
通信接口104可以包括收发器,用于为终端100提供有线或无线通信接口,进而通过一个或多个网络与任意其他合适的设备进行通信。在一些实施例中,通信接口104可以集成于终端100的其他组件,例如通信接口104可以集成于处理器101中。在一些实施例中,终端100可以通过通信接口104和其他设备通信。
输入/输出(I/O)设备105可以包括输入设备如键盘、鼠标等,输出设备如显示器等,用户可以通过输入/输出(I/O)设备105与终端100进行交互。
系统控制逻辑106可以包括任意合适的接口控制器,以终端100的其他模块提供任意合适的接口。例如在一些实施例中,系统控制逻辑106可以包括一个或多个存储器控制器,以提供连接到系统内存102和非易失性存储器103的接口。
在一些实施例中,处理器101中的至少一个可以与用于系统控制逻辑106的一个或多个控制器的逻辑封装在一起,以形成系统封装(System in Package,SiP)。在另一些实施例中,处理器101中的至少一个还可以与用于系统控制逻辑106的一个或多个控制器的逻辑集成在同一芯片上,以形成片上系统(System-on-Chip,SoC)。
可以理解,终端100可以是能够运行神经网络模型的任意电子设备,包括但不限于手机、可穿戴设备(如智能手表等)、平板电脑、桌面型、膝上型、手持计算机、笔记本电脑、超级移动个人计算机(Ultra-mobile Personal Computer,UMPC)、上网本,以及蜂窝电话、个人数字助理(Personal Digital Assistant,PDA)、增强现实(Augmented Reality,AR)/虚拟现实(Virtual Reality,VR)设备等,本申请实施例不做限定。
可以理解,图6所示的终端100的结构只是一种示例,在另一些实施例中,终端100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
本申请公开的机制的各实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。本申请的实施例可实现为在可编程系统上执行的计算机程序或程序代码,该可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。
可将程序代码应用于输入指令,以执行本申请描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本申请的目的,处理系统包括具有诸如例如数字信号处理器(Digital Signal Processor,DSP)、微控制器、专用集成电路(Application Specific Integrated Circuit,ASIC)或微处理器之类的处理器的任何系统。
程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本申请中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以被实现为由一个或多个暂时或非暂时性机器可读(例如,计算机可读)存储介质承载或存储在其上的指令,其可以由一个或多个处理器读取和执行。例如,指令可以通过网络或通过其他计算机可读介质分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,包括但不限于,软盘、光盘、光碟、只读存储器(CD-ROMs)、磁光盘、只读存储器(Read Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、可擦除可编程只读存储器(ErasableProgrammable Read OnlyMemory,EPROM)、电可擦除可编程只读存储器(ElectricallyErasable ProgrammableRead-Only Memory,EEPROM)、磁卡或光卡、闪存、或用于利用因特网以电、光、声或其他形式的传播信号来传输信息(例如,载波、红外信号数字信号等)的有形的机器可读存储器。因此,机器可读介质包括适合于以机器(例如计算机)可读的形式存储或传输电子指令或信息的任何类型的机器可读介质。
在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应该理解,可能不需要这样的特定布置和/或排序。而是,在一些实施例中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,可以不包括这些特征或者可以与其他特征组合。
需要说明的是,本申请各设备实施例中提到的各单元/模块都是逻辑单元/模块,在物理上,一个逻辑单元/模块可以是一个物理单元/模块,也可以是一个物理单元/模块的一部分,还可以以多个物理单元/模块的组合实现,这些逻辑单元/模块本身的物理实现方式并不是最重要的,这些逻辑单元/模块所实现的功能的组合才是解决本申请所提出的技术问题的关键。此外,为了突出本申请的创新部分,本申请上述各设备实施例并没有将与解决本申请所提出的技术问题关系不太密切的单元/模块引入,这并不表明上述设备实施例并不存在其它的单元/模块。
需要说明的是,在本专利的示例和说明书中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
虽然通过参照本申请的某些优选实施例,已经对本申请进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本申请的精神和范围。
Claims (12)
1.一种数据处理方法,应用于电子设备,其特征在于,所述电子设备上运行有神经网络模型,所述方法包括:
获取所述神经网络模型在运行的过程中,求积算子中的定点乘法关系系数和A个定点连乘因子;
通过A次连乘计算,得到所述求积算子的定点连乘结果;
其中,所述通过A次连乘计算,得到求积算子的定点连乘结果,包括:
通过以下方式完成第i次连乘计算,其中i为小于等于A的正整数:
获取第i次等效中间连乘结果的等效中间乘积参数和第i次等效中间连乘结果的乘积参数移位位数;
基于第A次等效中间连乘结果的等效中间乘积参数和第1至A次中得到的等效中间连乘结果的乘积参数移位位数,得到所述求积计算的定点连乘结果。
2.根据权利要求1所述的方法,其特征在于,所述第i次为第1次,
并且,所述获取第i次等效中间连乘结果的等效中间乘积参数和第i次等效中间连乘结果的乘积参数移位位数,包括:
将所述定点乘法关系系数与所述定点连乘因子相乘,得到所述第i次等效中间连乘结果的等效中间乘积参数和所述第i次等效中间连乘结果的乘积参数移位位数。
3.根据权利要求2所述的方法,其特征在于,所述第i次为第2次至第A次中的任意一次,
并且所述获取第i次等效中间连乘结果的等效中间乘积参数和第i次等效中间连乘结果的乘积参数移位位数,包括:
将第i-1次连乘计算的等效中间连乘结果的等效中间乘积参数与第i个定点连乘因子相乘,得到所述第i次等效中间连乘结果的等效中间乘积参数和所述第i次等效中间连乘结果的乘积参数移位位数。
4.根据权利要求3所述的方法,其特征在于,所述基于第A次等效中间连乘结果的等效中间乘积参数和第1至A次中得到的等效中间连乘结果的乘积参数移位位数,得到所述求积计算的定点连乘结果,包括:
基于所述第A次等效中间连乘结果的等效中间乘积参数得到所述定点连乘结果的等效连乘参数;
基于所述第1至A次中得到的等效中间连乘结果的乘积参数移位位数得到所述定点连乘结果的等效连乘移位位数。
5.根据权利要求4所述的方法,其特征在于,所述乘法关系移位位数包括乘法定点参数和乘法关系移位位数,
并且,所述基于所述第1至A次中得到的等效中间连乘结果的乘积参数移位位数得到所述定点连乘结果的等效连乘移位位数,包括:
将所述第1至A次中得到的等效中间连乘结果的乘积参数移位位数以及所述乘法关系移位位数的负数相加,得到所述定点连乘结果的等效连乘移位位数。
6.根据权利要求3所述的方法,其特征在于,在所述定点连乘因子为定点元素时,可以通过以下公式完成第i次连乘计算,其中i为小于等于A,并且大于等于2的正整数:
Qt(i-1)*Qi=Qti*2ki
其中,Qt(i-1)为所述第i-1次的等效中间连乘结果的等效中间乘积参数,Qi为第i个定点元素,Qti为所述第i次得到的等效中间连乘结果的等效中间乘积参数,ki为所述第i次等效中间连乘结果的乘积参数移位位数。
7.根据权利要求3所述的方法,其特征在于,在所述定点连乘因子为定点偏移元素时,可以通过以下公式完成第i次连乘计算,其中i为小于等于A,并且大于等于2的正整数:
Qt(i-1)*Hi=Qti*2ki
其中,Qt(i-1)为所述第i-1次得到的等效中间连乘结果的等效中间乘积参数,Hi为第i个定点偏移元素,Qti为所述第i次得到的等效中间连乘结果的等效中间乘积参数,ki为所述第i次等效中间连乘结果的乘积参数移位位数。
8.根据权利要求1所述的方法,其特征在于,所述等效中间乘积参数在预设第一数据类型所对应的范围内,其中,所述第一数据类型为以下数据类型中的任意一种:
int32、int16、int8、int4、uint32、uint16、uint8、uint4。
9.根据权利要求4所述的方法,其特征在于,所述等效连乘参数在预设第二数据类型所对应的范围内,其中,所述第二数据类型为以下数据类型中的任意一种:
int32、int16、int8、int4、uint32、uint16、uint8、uint4。
10.根据权利要求1-9中任一项所述的方法,其特征在于,所述连乘因子和所述定点连乘结果包括图像数据以及与所述图像数据相关的中间数据、音频数据以及与所述音频数据相关的中间数据、文本数据以及与所述文本数据相关的中间数据、视频数据以及与所述视频数据相关的中间数据中的至少一种数据。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有指令,该指令在电子设备执行如权利要求1-10中的任一项所述的数据处理方法。
12.一种电子设备,其特征在于,包括:
存储器,用于存储指令,以及
一个或多个处理器,所述指令被所述一个或多个处理器执行时,所述处理器执行如权利要求1-10中的任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310828324.3A CN116679904A (zh) | 2023-03-27 | 2023-03-27 | 数据处理方法、介质及电子设备 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310313645.XA CN116339678A (zh) | 2023-03-27 | 2023-03-27 | 数据处理方法、介质及电子设备 |
CN202310828324.3A CN116679904A (zh) | 2023-03-27 | 2023-03-27 | 数据处理方法、介质及电子设备 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310313645.XA Division CN116339678A (zh) | 2023-03-27 | 2023-03-27 | 数据处理方法、介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116679904A true CN116679904A (zh) | 2023-09-01 |
Family
ID=86880276
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310828324.3A Pending CN116679904A (zh) | 2023-03-27 | 2023-03-27 | 数据处理方法、介质及电子设备 |
CN202310313645.XA Pending CN116339678A (zh) | 2023-03-27 | 2023-03-27 | 数据处理方法、介质及电子设备 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310313645.XA Pending CN116339678A (zh) | 2023-03-27 | 2023-03-27 | 数据处理方法、介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN116679904A (zh) |
-
2023
- 2023-03-27 CN CN202310828324.3A patent/CN116679904A/zh active Pending
- 2023-03-27 CN CN202310313645.XA patent/CN116339678A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
CN116339678A (zh) | 2023-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110363279B (zh) | 基于卷积神经网络模型的图像处理方法和装置 | |
CN110929865B (zh) | 网络量化方法、业务处理方法及相关产品 | |
US20220329807A1 (en) | Image compression method and apparatus thereof | |
CN109284761B (zh) | 一种图像特征提取方法、装置、设备及可读存储介质 | |
CN111767986A (zh) | 一种基于神经网络的运算方法及装置 | |
WO2021057926A1 (zh) | 一种神经网络模型训练方法及装置 | |
CN114612996A (zh) | 神经网络模型的运行方法、介质、程序产品以及电子设备 | |
CN113126953A (zh) | 针对浮点处理的方法和装置 | |
CN110337636A (zh) | 数据转换方法和装置 | |
CN110097361B (zh) | 一种基于x11算法的区块链动态算力共识方法及计算机系统 | |
WO2021012148A1 (zh) | 基于深度神经网络的数据处理方法、装置及移动设备 | |
CN116306709A (zh) | 数据处理方法、介质及电子设备 | |
CN113282535B (zh) | 量化处理方法和装置、量化处理芯片 | |
CN111078932A (zh) | 一种根据人声匹配相似人脸的方法 | |
CN113962385A (zh) | 神经网络训练及数据处理方法和装置、介质及计算机设备 | |
CN108847251A (zh) | 一种语音去重方法、装置、服务器及存储介质 | |
CN116679904A (zh) | 数据处理方法、介质及电子设备 | |
CN115564028A (zh) | 神经网络模型的量化方法、电子设备及可读存储介质 | |
CN114841325B (zh) | 神经网络模型的数据处理方法、介质及电子设备 | |
CN114492778B (zh) | 神经网络模型的运行方法、可读介质和电子设备 | |
JP6687803B2 (ja) | 区分線形近似のためのシステムおよび方法 | |
CN114862003A (zh) | 一种请求量预测方法、装置、电子设备及存储介质 | |
US20210357184A1 (en) | Device for computing an inner product | |
CN114020736A (zh) | 基于分段函数拟合的单调有序数据处理方法及相关设备 | |
CN113780534A (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 |