CN116306709A - 数据处理方法、介质及电子设备 - Google Patents
数据处理方法、介质及电子设备 Download PDFInfo
- Publication number
- CN116306709A CN116306709A CN202310301451.8A CN202310301451A CN116306709A CN 116306709 A CN116306709 A CN 116306709A CN 202310301451 A CN202310301451 A CN 202310301451A CN 116306709 A CN116306709 A CN 116306709A
- Authority
- CN
- China
- Prior art keywords
- index
- point
- quantization
- logarithm
- fixed
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06G—ANALOGUE COMPUTERS
- G06G7/00—Devices in which the computing operation is performed by varying electric or magnetic quantities
- G06G7/12—Arrangements for performing computing operations, e.g. operational amplifiers
- G06G7/16—Arrangements for performing computing operations, e.g. operational amplifiers for multiplication or division
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06G—ANALOGUE COMPUTERS
- G06G7/00—Devices in which the computing operation is performed by varying electric or magnetic quantities
- G06G7/12—Arrangements for performing computing operations, e.g. operational amplifiers
- G06G7/20—Arrangements for performing computing operations, e.g. operational amplifiers for evaluating powers, roots, polynomes, mean square values, standard deviation
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/16—Human faces, e.g. facial parts, sketches or expressions
-
- 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)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Multimedia (AREA)
- Biomedical Technology (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Molecular Biology (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Power Engineering (AREA)
- Human Computer Interaction (AREA)
- Oral & Maxillofacial Surgery (AREA)
- Image Processing (AREA)
Abstract
本申请涉及人工智能技术领域,特别涉及一种数据处理方法、介质及电子设备。该方法包括:获取神经网络模型对数据进行处理的过程中,需要进行幂算子处理的定点底数和定点指数;基于定点底数和定点指数,计算幂算子对应的对数换底函数的第一计算结果;将第一计算结果作为幂算子的第二计算结果。基于此,该方法所利用的量化的幂算子进行对数据的处理,避开了指数和底数都变化的幂运算操作,使得包含幂算子的神经网络模型的计算成本和内存占用量可以达到最优。
Description
技术领域
本申请涉及人工智能技术领域,特别是涉及一种数据处理方法、介质及电子设备。
背景技术
人工智能技术(artificial intelligence,AI)领域在人们生产生活中应用越来越广泛。例如,可以通过神经网络模型对文字、视频、音频、图像等数据进行处理,从而获得所需要的结果。例如,用户在手机时,手机内置的人脸识别模型可以对拍摄到的人脸图像进行处理,从而识别出人的身份;又例如,手机内置的文本识别模型可以对网页上的某段话进行处理,从而得到文字的出处;还例如,手机内置的音频匹配模型可以对音频进行处理,识别出声音/歌曲等等。
可以理解的,由于神经网络是资源密集型算法,其计算成本、内存占用量大,电子设备中内置的神经网络模型,通常是量化后的神经网络模型。神经网络模型量化一般指将神经网络模型中的高精度浮点运算转化为定点运算,能够做到定点运算的神经网络模型。
幂(Power,Pow)算子(y=ab)是一种可以运用在神经网络模型中,对神经网络模型运行过程中的特征数据进行处理的算子。例如,对于上述人脸识别模型,激活层中的幂算子可以对上一层输入的与人脸图像相关联的特征数据进行处理,从而得到处理后的新的与人脸图像相关联的特征数据。
但是,由于幂算子(Pow算子)是进行幂次运算,目前尚未有有效的方法对幂算子进行量化,导致包含幂算子的神经网络模型的计算成本和内存占用量无法达到最优。
发明内容
为解决上述问题,本申请提供了一种数据处理方法、介质及电子设备。
第一方面,本申请实施例提供一种数据处理方法,应用于电子设备,包括:
获取神经网络模型对数据进行处理的过程中,需要进行幂算子处理的定点底数和定点指数;
基于定点底数和定点指数,计算幂算子对应的对数换底函数的第一计算结果,其中,对数换底函数包括取符号部和自然指数部的乘积,自然指数部的底数为正常数,指数为与定点底数和定点指数相关的对数;
将第一计算结果作为所述幂算子的第二计算结果。
可以理解的,将底数和指数都为变量的幂算子,通过对数换底操作等效,转换为底数为一正常数,指数为与定点底数和定点指数相关的对数,进而将幂算子的量化转换为底数确定的指数函数的量化,实现对幂算子的量化,进而可以使得包含幂算子的神经网络模型的计算成本和内存占用量可以达到最优。另外,也可以使得包括量化后的幂算子的神经网络模型能够与更多的电子设备相适配,比如说对于仅支持定点运算的部分边缘计算设备也能适配。
在上述第一方面的一种可能的实现中,基于定点底数和定点指数,计算幂算子对应的对数换底公式的第一计算结果,包括:
根据定点底数从对数映射表中得到定点第一对数;
根据定点第一对数、定点指数、乘法关系参数得到定点第二对数;
根据定点第二对数从指数映射表中得到定点第一指数;
基于定点第一指数得到第一计算结果,其中,第一计算结果与定点第一指数相同或者相反。
可以理解的,将定点底数与定点第一对数的非线性关系用对数映射表表示;定点第二对数和定点第一指数的非线性关系用指数映射表表示。此时,当神经网络模型中的幂算子对数据处理时,根据定点底数从对数映射表中得到定点第一对数;根据定点第一对数、定点指数、乘法关系参数得到定点第二对数;根据定点第二对数从指数映射表中得到定点第一指数;最后基于定点第一指数得到第一计算结果,从而实现幂算子对数据处理。
在上述第一方面的一种可能的实现中,根据定点底数从对数映射表中得到定点第一对数,包括:
从对数映射表中获取第一索引结果,其中,第一索引结果为值与定点底数相同的索引所对应的索引结果;
将第一索引结果作为定点第一对数。
在上述第一方面的一种可能的实现中,对数映射表通过以下方式得到:
统计浮点底数的范围得到浮点底数范围,根据浮点底数范围以及第一量化类型和第一量化方式得到底数量化参数,其中,第一量化类型为浮点底数所对应的量化类型,第一量化方式为浮点底数所对应的量化方式;
统计浮点第一对数的范围得到浮点第一对数范围,根据浮点第一对数范围以及第二量化类型和第二量化方式得到第一对数量化参数,其中,第二量化类型为浮点第一对数所对应的量化类型,第二量化方式为浮点第一对数所对应的量化方式;
根据底数量化参数、第一对数量化参数确定对数映射表中各索引所对应的索引结果,其中对数映射表的各索引与第一量化类型所对应的数值范围内的各整数相对应。
在上述第一方面的一种可能的实现中,根据定点第一对数、定点指数、乘法关系参数得到定点第二对数,包括:
将定点第一对数、定点指数、以及乘法关系参数进行乘法运算,得到定点第二对数。
在上述第一方面的一种可能的实现中,乘法关系参数通过以下方式得到:
获取第二对数量化参数、第一对数量化参数以及指数量化参数;
将第二对数量化参数与,第一对数量化参数和指数量化参数的乘积,相除得到相除结果,
基于相除结果得到乘法关系参数。
在上述第一方面的一种可能的实现中,根据定点第二对数从指数映射表中得到定点第一指数,包括:
从指数映射表中获取第二索引结果,其中,第二索引结果为值与定点第二对数相同的索引所对应的索引结果;
将第二索引结果作为定点第一指数。
在上述第一方面的一种可能的实现中,指数映射表通过以下方式得到:
统计浮点第二对数的范围得到浮点第二对数范围,根据浮点第二对数范围以及第三量化类型和第三量化方式得到第二对数量化参数,其中,第三量化类型为浮点第二对数对应的量化类型,第三量化方式为浮点第二对数对应的量化方式;
统计浮点第一指数的范围得到浮点第一指数范围,根据浮点第一指数范围以及第四量化类型和第四量化方式得到第一指数量化参数,其中,第四量化类型为浮点第一指数对应的量化类型,第四量化方式为浮点第一指数对应的量化方式;
根据第二对数量化参数、第一指数量化参数确定指数映射表中各索引所对应的索引结果,其中指数映射表的各索引与第三量化类型所对应的数值范围内的各整数相对应。
在上述第一方面的一种可能的实现中,基于定点第一指数得到第一计算结果,包括:
将定点第一指数代入符号关系函数得到所述第一计算结果。
在上述第一方面的一种可能的实现中,对数换底函数为下述表达式:
在上述第一方面的一种可能的实现中,定点底数和定点指数包括图像数据以及与图像数据相关的中间数据、音频数据以及与音频数据相关的中间数据、文本数据以及与文本数据相关的中间数据、视频数据以及与视频数据相关的中间数据中的至少一种数据。
第二方面,本申请提供了一种计算机可读存储介质,计算机可读存储介质上存储有指令,该指令在电子设备执行上述第一方面以及第一方面的各种可能实现中任一项数据处理方法。
第三方面,本申请提供了一种电子设备,包括:存储器,用于存储指令,以及一个或多个处理器,指令被一个或多个处理器执行时,处理器执行上述第一方面以及第一方面的各种可能实现中任一项数据处理方法。
附图说明
图1根据本申请的一些实施例,示出了一种映射表;
图2根据本申请的一些实施例,示出了一种示出了一种终端100通过人脸识别模型对采集到的人脸图像进行识别的场景图;
图3根据本申请的一些实施例,示出了一种幂算子量化方法过程示意图;
图4A根据本申请的一些实施例,示出了一种构建对数映射表的具体过程示意图;
图4B根据本申请的一些实施例,示出了一种对数映射表;
图5根据本申请的一些实施例,示出了一种构建指数映射表的过程示意图;
图6根据本申请的一些实施例,示出了终端100在进行神经网络模型的数据处理时,涉及到的幂算子处理数据的过程示意图;
图7根据本申请的一些实施例,示出了一种终端100的结构示意图。
具体实施方式
本申请的说明性实施例包括但不限于一种数据处理方法、介质及电子设备。
为了更加清楚的说明本申请实施例的方案,下面对本申请实施例中涉及到的一些术语进行解释。
可以理解的,神经网络模型的量化方式一般可以包括对称量化和非对称量化方式。
(一)为了便于理解,下面先对对称量化方式以及非对称量化方式、以及对应的反量化进行介绍。
(1)对称量化:将范围在[Xmin,Xmax]的浮点数X通过量化参数映射为范围在[Qmin,Qmax]内的定点数Q,如下述公式1所示:
Q=round(X*S)(公式1)
其中,量化参数包括缩放因子S,缩放因子S是将一定范围的X量化为一定范围的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’为缩放因子,即将一定范围的X量化为一定范围的Q的比例系数。当S’与Z’确定后,可以根据输入的浮点数X确定量化后的定点数Q。其中,与上述对称量化提及的量化数据类型相同,量化数据类型包括:int32、int16、int8、int4、uint32、uint16、uint8或uint4等等。在一些实施例中,定点数Q为无符号整型数(unsignedintegral numeric 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就可以通过反量化公式得到浮点数X。
(二)幂算子(Pow算子)。
幂算子(Pow算子)在浮点域的表达式如以下公式(8)所示:
y=ab 公式(8)
其中,a为幂算子的底数,b为幂算子的指数,y为a的b次幂运算的结果。
在本申请的一些实施例中,a、b表征待进行幂算子处理的文字、视频、音频、图像等相关特征数据,y为进行神经网络模型中的幂算子处理后的与文字、视频、音频、图像等对应的相关特征结果数据。
(三)映射表
映射表可以用于存储不同的定点型输入数据以及所对应的定点型输出数据。具体地,对于一个定点型输入数据,将该定点型输入数据作为映射表的索引值在映射表中获得该索引值对应的映射表结果,该映射表结果就是该定点型输入数据对应的定点型输出数据。例如,如图1所示的定点型输入数据为10,将10作为映射表的索引值在映射表中获得该定点型输入数据对应的索引结果(即定点输出)为23。可以理解的,图1中示意的数字仅仅是一种示意,是计算机存储的二进制数对应的10进制值。图1所示的表格仅仅是映射表的一种示意,在计算机中可以为数组、字符串、元组等,在此不做具体要求。
可以理解的,本申请技术方案可以应用在需要通过神经网络模型对文字、视频、音频、图像等数据进行处理的任何场景,
为了更好的理解本方案,下面将首先介绍本申请技术方案的一种应用场景。
图2示出了一种终端100通过人脸识别模型对采集到的人脸图像进行识别的场景图。如图2所示,终端100部署有人脸识别模型,其中,人脸识别模型通过服务器200在浮点域中训练获取。
由于人脸识别模型属于资源密集型算法,终端100在使用内置浮点域的人脸识别模型处理人脸图像数据时计算成本高、内存占用量大。所以,一般需要将人脸识别模型量化,例如,服务器200会将在浮点域中训练好的人脸识别模型进行量化得到量化后的人脸识别模型,然后再部署至终端100。可以理解的,当终端100使用量化后的人脸识别模型,可以将高精度浮点运算转化为定点运算,从而可以节省计算成本以及内存占用。
其中,人脸识别模型中包括输入层、隐藏层、输出层等。并且,各层中都可以包括用于人脸图像数据进行处理的各种算子。其中,幂算子(y=ab)是一种可以运用在神经网络模型的激活层中,以实现对特征数据进行处理的算子。例如,对于上述人脸识别模型,激活层中的幂算子可以对上一层输入的与人脸图像相关联的特征数据进行幂运算处理,即幂算子中的底数a、指数b都会与人脸图像相关联的特征数据相对应,从而得到处理后的新的与人脸图像相关联的特征数据。
但是,由于幂算子是进行幂次运算,目前尚未有有效的方法对幂算子进行量化,导致包含幂算子的神经网络模型的计算成本和内存占用量无法达到最优。
因此,本申请提出了一种幂算子量化方法,通过将底数和指数都为变量的幂算子,通过对数换底操作等效,转换为底数为一恒值,而仅仅指数为变量的对数换底函数,即该对数换底函数包括取符号部和自然指数部的乘积,自然指数部的底数为大于0的常数(例如,可以为自然常数e、整数2等等),指数为与原先幂算子中的底数和指数相关的对数,进而将幂算子的量化转换为底数确定的指数函数的量化,从而避开了指数和底数都变化的幂运算的操作,实现对幂算子的量化,使得包含幂算子的神经网络模型的计算成本和内存占用量可以达到最优。
在一些实施例中,将底数和指数都为变量的幂算子,通过对数换底操作等效,转换为底数为正常数,而仅仅指数为变量的对数换底函数:
下述公式(9)示出了一种将上述公式(8)根据对数换底操作所等效的对数换底函数:
例如,以自然指数部的底数t为自然常数e为例,上述公式(9)可以转变为下述公式(9’)所示的对数换底函数:
y=(Sign(a))beb*ln(|a|+ε) 公式(9’)
其中,e为自然常数,Sign()为符号函数,“ε”表示正无穷小,例如,“ε”可以为10-8,还可以为其他值;y为a的b次幂运算的结果;并且,(Sign(a))b为取符号部;eb*ln(|a|+ε)为自然指数部,自然指数部的底数为自然常数e。
下述公式(10)根据本申请的一些实施例,示出了一种符号函数Sign():
可以理解的,结合公式(10)可以推导出上述公式(9)中a所对应的符号函数Sign(a)的数值只有1、0、-1三种结果,所以(Sign(a))b中a、b不存在幂运算关系。
基于上述阐述,在将幂算子通过对数换底操作等效转换为底数为正常数,而仅仅指数为变量的对数换底函数后,按照如下方式量化:
(1)基于先构建满足输入特征数据中底数a的定点值与第一对数mid1的定点值的映射关系的对数映射表。
例如,以自然指数部的底数为自然常数e为例,第一对数mid1为如下公式(11)所示:
mid1=ln(|a|+ε) 公式(11)
(2)确定对应于量化指数b与第一对数mid1相乘得到第二对数mid2所需的乘法关系参数;
例如,第二对数mid2如下公式(12)所示:
mid2=b*mid1 公式(12)
(3)构建满足第二对数mid2的定点值与第一指数mid3的定点值的映射关系的指数映射表
例如,第一指数mid3如下公式(13)所示:
mid3=emid2 公式(13)
(4)最后确定基于第一指数mid3与幂运算结果y所对应的符号关系的符号关系函数就可以实现幂算子的量化:
例如,符号关系如下公式(14)所示:
y=(Sign(a))b*mid3 公式(14)
可以理解的,上述提及的幂算子量化方法将原先幂算子中的输入的a、b之间的幂运算的量化转变为确定对数映射表、量化指数b与第一对数mid1相乘得到第二对数mid2所需的乘法关系参数以及指数映射表的方式,使得利用量化后的幂算子可用于神经网络模型的数据处理。
基于上述提出的幂算子量化方法,本申请提出了一种基于神经网络模型的数据处理方法,当在神经网络模型对数据进行处理的过程中,获取到需要进行幂算子处理的定点底数Qa和定点指数Qb,此时就可以基于定点底数和定点指数,计算幂算子对应的对数换底函数的第一计算结果,将得到的第一计算结果作为幂算子的第二计算结果。
例如,终端100根据服务器200量化好的神经网络模型进行数据处理,此时终端100内置有用于计算幂算子对应的对数换底函数的第一计算结果所需的对数映射表、乘法关系参数、指数映射表、调整定点第一指数Qmid3符号所需的符号关系函数等等。
当终端100在接收待处理的定点型输入特征数据,该定点型输入特征数据包括定点底数Qa和定点指数Qb;根据定点底数Qa从对数映射表中得到定点第一对数Qmid1;根据定点指数Qb、定点第一对数Qmid1、乘法关系参数得到定点第二对数Qmid2;根据定点第二对数Qmid2从指数映射表中得到定点第一指数Qmid3;基于定点第一指数Qmid3得到幂运算处理定点底数Qa和定点指数Qb的幂运算定点结果,其中,幂运算定点结果与定点第一指数Qmid3相同或者相反。
可以理解的,基于此,使得在保持神经网络模型效果微损的条件下,从而提高模型运行结果的准确性,例如,使得对于如图2中所示的场景下,更加高效的运行人脸识别模型。并且,也可以使得包括量化后的幂算子的神经网络模型可以与更多的电子设备相适配中,比如说对于仅支持定点运算的部分边缘计算设备也能适配。
需要说明的是,可以将神经网络模型中的幂算子由终端100进行量化,也可以由服务器200进行量化。终端100包括但不限于手机、平板电脑、智慧屏、可穿戴设备(例如,手表、手环、头盔、耳机等)、车载设备、增强现实(augmented reality,AR)/虚拟现实(virtualreality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等电子设备中的一种。服务器200可以是单独的服务器,也可以是多个服务器构成的服务器集群。
下图3根据本申请的一些实施例,示出了一种幂算子量化方法过程示意图。可以理解的,可以通过对称量化和非对称量化的方式构建对数映射表、指数映射表以及确定量化指数b与第一对数mid1相乘得到第二对数mid2所需的乘法关系参数。为了方便理解,下面在示例时以对称量化为例具体阐述,具体步骤如下:
S301,基于底数a与第一对数mid1的对数关系构建对数映射表。
可以理解的,以自然指数部的底数为自然常数e为例,底数a与第一对数mid1的对数关系如上述公式(11)所示,分别获取公式(11)中的底数a与第一对数mid1所对应的量化参数,从而可以得到定点底数Qa与定点第一对数Qmid1的对数关系(例如,下述公式(15))。此外,由于定点底数Qa与定点第一对数Qmid1为非线性关系。所以,在一些实施例中,可以构建反映定点底数Qa与定点第一对数Qmid1对数关系的对数映射表,使得后续量化后的神经网络模型中的幂算子进行数据处理时可以直接使用构建的对数映射表得到定点第一对数Qmid1(例如,下述公式(16))。
示例性地,以对称量化为例,由于对称量化的量化参数只包括缩放因子S,所以,对于公式(11),可以结合对称量化的反量化公式(3),得到如下公式(15)所示的定点底数Qa与定点第一对数Qmid1的关系式:
其中,Sa为底数a所对应的量化参数,Smid1为第一对数mid1所对应的量化参数,round()表示四舍五入取整,可以理解的,取整方式还可以为向下取整floor(),向上取整ceil()等,在此不做限制。
例如,下式公式(15’)示出了一种通过钳位函数clamp()将Qmid1限制在int8范围内的表达式:
其中,公式(15’)中的-128,127表示需要量化的int8数据类型的范围。
因此,下述公式(16)示出了可以构建反映定点底数Qa与定点第一对数Qmid1对数关系的对数映射表:
Lutln={Qa→Qmid1}公式(16)
下述图4A根据本申请的一些实施例,以自然指数部的底数为自然常数e为例,阐述了构建公式(16)对数映射表的具体过程,在此先不做具体阐述。
S302,基于第一对数mid1、指数b与第二对数mid2的乘法关系确定乘法关系参数。
可以理解的,以自然指数部的底数为自然常数e为例,第一对数mid1、指数b与第二对数mid2的乘法关系如上述公式(12)所示,分别获取公式(12)中的指数b、第一对数mid1、第二对数mid2所对应的量化参数,从而可以得到定点第一对数Qmid1、定点指数Qb、定点第二对数Qmid2的乘法关系(例如,下述公式(17))。
在一些实施例中,由于指数b、第一对数mid1、第二对数mid2所对应的量化参数是可以得到的,所以,可以将指数b、第一对数mid1、第二对数mid2所对应的量化参数合并为一个乘法关系参数,即乘法关系参数为第二对数mid2所对应的量化参数,与指数b的量化参数、第一对数mid1的量化参数的乘积的相除结果(例如,下述公式(17))。可以理解的,为了使得支持量化的神经网络模型在运行过程中较为方便,可以将乘法关系参数通过分子为M(其中,M为整型)以及分母为2N(其中,N为整型)数据来表示,从而加快运算。
示例性地,以对称量化为例,由于对称量化的量化参数只包括缩放因子S,所以,对于公式(12),可以结合对称量化的反量化公式(3),得到如下公式(17)所示的定点第二对数Qmid2与定点第一对数Qmid1以及定点指数Qb的关系式:
其中,Sb为指数b所对应的量化参数,Smid1为第一对数mid1所对应的量化参数,Smid2为第二对数mid2所对应的量化参数,Lmid2为乘法关系参数。
在一些实施例中,将乘法关系参数Lmid2可以按照如下公式(18)表示:
其中,M以及N为定点数。例如,Lmid2为0.1245,M想限制在uint8范围内,则0.1245≈254/211,所以M=254、N=11。
可以理解的,对于同一个神经网络模型,乘法关系参数Lmid2是确定的,即M以及N为定点数所对应的定点数也是确定的,从而当获得定点第一对数Qmid以及定点指数Qb可以得到定点第二对数Qmid2。
例如,结合公式(18),下述公式(17’)以通过钳位函数clamp()将Qmid2限定在int8所对应的范围内为例,示出了另一种定点第二对数Qmid2与定点第一对数Qmid1以及定点指数Qb的关系式:
Qmid2=clamp(round(Qb*Qmid1*M/2N),-128,127)公式(17’)
round()表示四舍五入取整,可以理解的,取整方式还可以为向下取整floor(),向上取整ceil()等,在此不做限制;公式(17’)中的-128,127表示需要量化的int8数据类型的范围。
S303,基于第二对数mid2和第一指数mid3的指数关系构建指数映射表。
可以理解的,以自然指数部的底数为自然常数e为例,第二对数mid2与第一指数mid3的指数关系如上述公式(13)所示,分别获取公式(13)中的第二对数mid2与第一指数mid3所对应的量化参数,从而可以得到定点第二对数Qmid2与定点第一指数Qmid3的指数关系(例如,下述公式(19)。此外,由于定点第二对数Qmid2与定点第一指数Qmid3为非线性关系。所以,在一些实施例中,可以构建反映定点第二对数Qmid2与定点第一指数Qmid3的指数关系的指数映射表,使得后续量化后的神经网络模型中的幂算子进行数据处理时可以直接使用构建的指数映射表得到定点第一指数Qmid3(例如,下述公式(20))。
示例性地,以对称量化为例,由于对称量化的量化参数只包括缩放因子S,所以,对于公式(13),可以结合对称量化的反量化公式(3),得到如下公式(19)所示的定点第二对数Qmid2与定点第一指数Qmid3的关系式:
其中,Smid2为第二对数mi21所对应的量化参数,Smid3为第一指数mid3所对应的量化参数,round()表示四舍五入取整,可以理解的,取整方式还可以为向下取整floor(),向上取整ceil()等,在此不做限制。
例如,下式公式(19’)示出了一种通过钳位函数clamp()将Qmid3限制在int8范围内的表达式:
其中,公式(19’)中的-128,127表示需要量化的int8数据类型的范围。
因此,下述公式(20)示出了可以构建反映定点第二对数Qmid2与定点第一指数Qmid3指数关系的指数映射表:
Lutexp={Qmid2→Qmid3}公式(20)
下述图5根据本申请的一些实施例,以自然指数部的底数为自然常数e为例,阐述了构建指数映射表的具体过程。在此先不做具体阐述。
S304,基于第一指数mid3与幂运算结果的符号关系确定符号关系函数。
可以理解的,第一指数mid3与幂运算结果y的符号关系如上述公式(14)所示。根据底数a、指数b所对应的量化参数,可以得到定点底数Qa与定点第一对数Qmid1的对数关系(例如,下述公式(21))。可以理解的,对于对称量化而言,量化参数仅包括缩放因子Sa,并且缩放因子Sa>0,所以公式(21)可以转变为如下所示的符号关系函数公式(22):
其中,Sa为底数a所对应的量化参数,Sb为指数b所对应的量化参数,Sign()是如公
式10所示的符号函数。其中Sign(Qa)的具体表达为如下公式(23):
可以理解的,Qy即为使用量化后的幂算子得到的定点输出结果。可以理解的,当得到定点Qy后,即可根据量化参数Smid3得到浮点型的幂运算结果y,即量化参数Smid3不仅可以作为第一指数mid3的量化参数,也可以作为幂运算结果y的量化参数。
下述公式(24)示出了幂运算定点结果Qy与幂运算浮点结果y的关系:
可以理解,上述对于幂算子量化方法,步骤S301至步骤S304的执行顺序只是一种示例,在另一些实施例中,也可以采用其他执行顺序,还可以拆分或合并部分步骤,在此不做限定。
图4A根据本申请的一些实施例,以自然指数部的底数为自然常数e为例,阐述了服务器200构建对数映射表的具体过程。在一些实施例中,可以通过对称量化和非对称量化的量化方式来实现。为了方便阐述,下面以对称量化为具体例子阐述,具体流程如下:
S401,统计浮点域下输入特征数据中底数a的范围,根据统计出的范围以及预设的底数a对应的量化类型和量化方式得到底数a所对应的量化参数。
可以理解的,在服务器200运行的神经网络模型时,输入特征数据中底数a可以是浮点型的视频数据、音频数据、图像数据、文字数据或与之相关的数据等。
可以理解的,量化类型可以为int32、int16、int8、int4、uint32、uint16、uint8或uint4;量化方式可以为对称量化或者非对称量化。
示例性地,假设统计到的底数a的范围为[5,128],量化方式为对称量化,底数a对应的量化类型为int8(int8所对应的数据范围为[-128,127]),则量化参数仅包括缩放因子S,则根据上述公式(2)缩放因子S的获取方式,得到底数a所对应的量化参数Sa=1.0。
S402,统计浮点域下第一对数mid1的范围,根据统计出的范围以及预设的第一对数mid1对应的量化类型和量化方式得到第一对数mid1所对应的量化参数。
可以理解的,在服务器200运行的神经网络模型时,第一对数mid1也可以是浮点型的视频数据、音频数据、图像数据、文字数据或与之相关的数据等。
示例性地,假设统计到的第一对数mid1的范围为[1.6,4.85],量化方式为对称量化,第一对数mid1对应的量化类型为int8(int8所对应的数据范围为[-128,127]),则量化参数仅包括缩放因子S,则根据上述公式(2)缩放因子S的获取方式,得到第一对数mid1所对应的量化参数Smid1=26.186。
S403,根据底数a的量化参数、第一对数mid1的量化参数确定对数映射表中各索引所对应的索引结果,其中对数映射表的各索引与底数a的量化类型所对应的数值范围内的各整数相对应。
在一些实施例中,根据底数a的量化类型确定对数映射表的索引值,其中,对数映射表的索引值与底数a的量化类型所对应的数据范围内的整数值一一对应;根据得到的底数a的量化参数对各索引值进行反量化,得到各索引值对应的各浮点数值(该浮点数值即为浮点型的底数a);对各索引值对应的浮点数值(即底数a)进行如公式(11)所示的对数运算,得到各索引值对应的浮点型的对数运算结果(即第一对数mid1的值);将各索引值对应的浮点型的对数运算结果(即第一对数mid1的值)根据得到的第一对数mid1的量化参数进行量化,得到各索引值对应的索引结果。
示例性地,量化方式为对称量化,底数a的量化类型int8所对应的数据范围[-128,127],则对数映射表的索引值为-128、-127、-126、......、126、127。对各索引值根据上述步骤S401中得到的底数的量化参数Sa进行反量化,得到各索引值对应的各浮点数值,对各索引值-128、-127、-126、......、126、127对应的浮点数值进行如公式(11)所示的对数运算得到各索引值对应的浮点型的对数运算结果;将各索引值对应的浮点型的对数运算结果((即第一对数mid1的值))根据上述步骤S401中得到的第一对数mid1的量化参数进行量化,得到各索引值对应的索引结果。
例如,图4B示出了在对称量化下,底数a的量化类型为int8,第一对数mid1的量化类型为int8的对数映射表,以求出索引值100以及所对应的索引结果为例阐述具体求解过程。对索引值100进行反量化,得到该索引值所对应的浮点数值100*1.0=100.0;将浮点数值100.0作为底数a代入公式(11),得到对数运算结果(即第一对数mid1)为4.60;将对数运算结果(即第一对数mid1)为4.60进行量化,得到第一对数mid1的定点结果为[4.60*26.186]=120,即索引值100所对应的索引结果为120。
可以理解,上述对于对数映射表的获取方法,步骤S401至步骤S403的执行顺序只是一种示例,在另一些实施例中,也可以采用其他执行顺序,还可以拆分或合并部分步骤,在此不做限定。
图5根据本申请的一些实施例,以自然指数部的底数为自然常数e为例,阐述了构建指数映射表的具体过程。在一些实施例中,可以通过对称量化和非对称量化的量化方式来实现。具体流程如下:
S501,统计浮点域下第二对数mid2的范围,根据统计出的范围以及预设的第二对数mid2对应的量化类型和量化方式得到第二对数mid2所对应的量化参数。
S502,统计浮点域下第一指数mid3的范围,根据统计出的范围以及预设的第一指数mid3对应的量化类型和量化方式得到第一指数mid3所对应的量化参数。
S503,根据第二对数mid2的量化参数、第一指数mid3的量化参数确定指数映射表中各索引所对应的索引结果,其中指数映射表的各索引与第二对数mid2的量化类型所对应的数值范围内的各整数相对应。
可以理解的,构建指数映射表的方法与图4A中所示的构建对数映射表的方式实质相同,再此不做赘述。
可以理解的,当服务器200在将神经网络模型中的幂算子量化后,终端100服务器200下发的量化后的神经网络模型,此时,终端100接收到的量化后的神经网络模型中与量化后的幂算子的有关参数就会被内置其中,例如,对数映射表、指数映射表、乘法关系参数、符号关系函数、第一指数mid3所对应的量化参数等。终端100开始运行量化后的神经网络模型时,其中量化后的幂算子就可以参与数据处理。
图6根据本申请的一些实施例,示出了终端100在进行神经网络模型的数据处理时,涉及到的幂算子处理数据的过程。具体流程包括以下各个步骤:
S601,接收神经网络模型运行过程中待处理的定点型输入特征数据,该定点型输入特征数据包括定点底数Qa和定点指数Qb。
可以理解的,待处理的定点型输入特征数据可以为视频数据、音频数据、图像数据、文字数据或与之相关的特征数据等。
示例性地,在图2所示的人脸识别场景中,接收人脸识别模型运行过程中待进行幂算子处理的定点型输入特征数据为人脸图像特征数据,即定点底数Qa和定点指数Qb为人脸图像特征数据。
S602,从对数映射表中获取值与定点底数Qa相同的索引所对应的索引结果,将索引结果作为定点第一对数Qmid1。
示例性地,从如图4B所示的对数映射表中值与定点底数Qa相同的索引所对应的索引结果,将索引结果作为定点第一对数Qmid1。比如说,定点底数Qa为100,则将索引值为100所对应的索引结果作为定点第一对数Qmid1。
S603,根据定点第一对数Qmid1、定点指数Qb、内置的第二对数mid2所对应的乘法关系参数得到定点第二对数Qmid2。
在一些实施例中,将步骤S602中获取的定点第一对数Qmid1、以及接收到的定点指数Qb、以及内置的第二对数mid2所对应的乘法关系参数Lmid2进行乘法运算,得到得到定点第二对数Qmid2。(参考上述公式(17))
S604,从指数映射表中获取值与定点第二对数Qmid2相同的索引所对应的索引结果,将索引结果作为定点第一指数Qmid3。
该步骤与上述步骤S602实质相同,在此不做赘述。
S605,基于定点第一指数Qmid3得到幂算子处理定点底数Qa和定点指数Qb的幂运算定点结果。
可以理解的,幂运算定点结果与定点第一指数Qmid3可以相同或者为相反。
在一些实施例中,定点第一指数Qmid3可以根据预置的符号关系函数得到幂运算定点结果(参考上述公式(22))。
可以理解,上述步骤S601至步骤S605的执行顺序只是一种示例,在另一些实施例中,也可以采用其他执行顺序,还可以拆分或合并部分步骤,在此不做限定。
可以理解的,也可以由服务器200运行部署到终端100的神经网络模型。
为便于理解本申请各实施的技术方案,下面对终端100的硬件结构进行介绍。
进一步,图7根据本申请的一些实施例,示出了一种终端100的结构示意图。如图7所示终端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(FieldProgrammable Gate Array)的处理模块或处理电路可以包括一个或多个单核或多核处理器。其中,AI(Artificial Intelligence,人工智能)处理器包括神经网络处理器(Neuralnetwork Processing Unit,NPU)、周易AIPU等。
系统内存102是易失性存储器,例如随机存取存储器(Random-Access Memory,RAM),双倍数据率同步动态随机存取存储器(Double Data Rate Synchronous DynamicRandom Access 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)设备等,本申请实施例不做限定。
可以理解,图7所示的终端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 (13)
1.一种数据处理方法,应用于电子设备,其特征在于,包括:
获取神经网络模型对数据进行处理的过程中,需要进行幂算子处理的定点底数和定点指数;
基于所述定点底数和定点指数,计算所述幂算子对应的对数换底函数的第一计算结果,其中,所述对数换底函数包括取符号部和自然指数部的乘积,所述自然指数部的底数为正常数,指数为与所述定点底数和定点指数相关的对数;
将所述第一计算结果作为所述幂算子的第二计算结果。
2.根据权利要求1所述的方法,其特征在于,所述基于所述定点底数和定点指数,计算所述幂算子对应的对数换底公式的第一计算结果,包括:
根据所述定点底数从对数映射表中得到定点第一对数;
根据所述定点第一对数、所述定点指数、乘法关系参数得到定点第二对数;
根据所述定点第二对数从指数映射表中得到定点第一指数;
基于所述定点第一指数得到所述第一计算结果,其中,所述第一计算结果与所述定点第一指数相同或者相反。
3.根据权利要求2所述的方法,其特征在于,所述根据所述定点底数从对数映射表中得到定点第一对数,包括:
从所述对数映射表中获取第一索引结果,其中,所述第一索引结果为值与所述定点底数相同的索引所对应的索引结果;
将所述第一索引结果作为所述定点第一对数。
4.根据权利要求3所述的方法,其特征在于,所述对数映射表通过以下方式得到:
统计浮点底数的范围得到浮点底数范围,根据所述浮点底数范围以及第一量化类型和第一量化方式得到底数量化参数,其中,所述第一量化类型为所述浮点底数所对应的量化类型,所述第一量化方式为所述浮点底数所对应的量化方式;
统计浮点第一对数的范围得到浮点第一对数范围,根据所述浮点第一对数范围以及第二量化类型和第二量化方式得到第一对数量化参数,其中,所述第二量化类型为所述浮点第一对数所对应的量化类型,所述第二量化方式为所述浮点第一对数所对应的量化方式;
根据所述底数量化参数、所述第一对数量化参数确定所述对数映射表中各索引所对应的索引结果,其中所述对数映射表的各索引与所述第一量化类型所对应的数值范围内的各整数相对应。
5.根据权利要求2所述的方法,其特征在于,所述根据所述定点第一对数、所述定点指数、乘法关系参数得到定点第二对数,包括:
将所述定点第一对数、所述定点指数、以及所述乘法关系参数进行乘法运算,得到所述定点第二对数。
6.根据权利要求5所述的方法,其特征在于,所述乘法关系参数通过以下方式得到:
获取第二对数量化参数、第一对数量化参数以及指数量化参数;
将所述第二对数量化参数与,所述第一对数量化参数和所述指数量化参数的乘积,相除得到相除结果,
基于所述相除结果得到所述乘法关系参数。
7.根据权利要求2所述的方法,其特征在于,所述根据所述定点第二对数从指数映射表中得到定点第一指数,包括:
从所述指数映射表中获取第二索引结果,其中,所述第二索引结果为值与所述定点第二对数相同的索引所对应的索引结果;
将所述第二索引结果作为所述定点第一指数。
8.根据权利要求7所述的方法,其特征在于,所述指数映射表通过以下方式得到:
统计浮点第二对数的范围得到浮点第二对数范围,根据所述浮点第二对数范围以及第三量化类型和第三量化方式得到第二对数量化参数,其中,所述第三量化类型为所述浮点第二对数对应的量化类型,所述第三量化方式为所述浮点第二对数对应的量化方式;
统计浮点第一指数的范围得到浮点第一指数范围,根据所述浮点第一指数范围以及第四量化类型和第四量化方式得到第一指数量化参数,其中,所述第四量化类型为所述浮点第一指数对应的量化类型,所述第四量化方式为所述浮点第一指数对应的量化方式;
根据所述第二对数量化参数、所述第一指数量化参数确定所述指数映射表中各索引所对应的索引结果,其中所述指数映射表的各索引与所述第三量化类型所对应的数值范围内的各整数相对应。
9.根据权利要求2所述的方法,其特征在于,所述基于所述定点第一指数得到所述第一计算结果,包括:
将所述定点第一指数代入符号关系函数得到所述第一计算结果。
11.根据权利要求1-10中任一项所述的方法,其特征在于,所述定点底数和所述定点指数包括图像数据以及与所述图像数据相关的中间数据、音频数据以及与所述音频数据相关的中间数据、文本数据以及与所述文本数据相关的中间数据、视频数据以及与所述视频数据相关的中间数据中的至少一种数据。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有指令,该指令在电子设备执行如权利要求1-11中的任一项所述的数据处理方法。
13.一种电子设备,其特征在于,包括:
存储器,用于存储指令,以及
一个或多个处理器,所述指令被所述一个或多个处理器执行时,所述处理器执行如权利要求1-11中的任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310301451.8A CN116306709A (zh) | 2023-03-24 | 2023-03-24 | 数据处理方法、介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310301451.8A CN116306709A (zh) | 2023-03-24 | 2023-03-24 | 数据处理方法、介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116306709A true CN116306709A (zh) | 2023-06-23 |
Family
ID=86825571
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310301451.8A Pending CN116306709A (zh) | 2023-03-24 | 2023-03-24 | 数据处理方法、介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116306709A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117857928A (zh) * | 2024-02-28 | 2024-04-09 | 荣耀终端有限公司 | 图像处理方法和电子设备 |
-
2023
- 2023-03-24 CN CN202310301451.8A patent/CN116306709A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117857928A (zh) * | 2024-02-28 | 2024-04-09 | 荣耀终端有限公司 | 图像处理方法和电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110363279B (zh) | 基于卷积神经网络模型的图像处理方法和装置 | |
US10929746B2 (en) | Low-power hardware acceleration method and system for convolution neural network computation | |
CN110889503B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN110222220B (zh) | 图像处理方法、装置、计算机可读介质及电子设备 | |
US20200117981A1 (en) | Data representation for dynamic precision in neural network cores | |
US11574239B2 (en) | Outlier quantization for training and inference | |
EP4087239A1 (en) | Image compression method and apparatus | |
CN110992963B (zh) | 网络通话方法、装置、计算机设备及存储介质 | |
CN111401550A (zh) | 神经网络模型量化方法、装置及电子设备 | |
CN111860841B (zh) | 量化模型的优化方法、装置、终端及存储介质 | |
US20200302283A1 (en) | Mixed precision training of an artificial neural network | |
CN109766476B (zh) | 视频内容情感分析方法、装置、计算机设备及存储介质 | |
CN116306709A (zh) | 数据处理方法、介质及电子设备 | |
Langroudi et al. | Alps: Adaptive quantization of deep neural networks with generalized posits | |
CN110337636A (zh) | 数据转换方法和装置 | |
CN114139693A (zh) | 神经网络模型的数据处理方法、介质和电子设备 | |
CN111915689B (zh) | 用于生成目标函数的方法、装置、电子设备和计算机可读介质 | |
CN108847251A (zh) | 一种语音去重方法、装置、服务器及存储介质 | |
CN114841325A (zh) | 神经网络模型的数据处理方法、介质及电子设备 | |
US20230196086A1 (en) | Increased precision neural processing element | |
US20230386448A1 (en) | Method of training speech recognition model, electronic device and storage medium | |
CN113780534A (zh) | 网络模型的压缩方法、图像生成方法、装置、设备及介质 | |
CN116341572A (zh) | 数据处理方法、装置、介质及电子设备 | |
CN116679904A (zh) | 数据处理方法、介质及电子设备 | |
CN113010728A (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 |