CN113971453A - 一种数据归一化处理方法、存储介质和计算机设备 - Google Patents

一种数据归一化处理方法、存储介质和计算机设备 Download PDF

Info

Publication number
CN113971453A
CN113971453A CN202010709417.0A CN202010709417A CN113971453A CN 113971453 A CN113971453 A CN 113971453A CN 202010709417 A CN202010709417 A CN 202010709417A CN 113971453 A CN113971453 A CN 113971453A
Authority
CN
China
Prior art keywords
data
product
normalization
input data
calculating
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
Application number
CN202010709417.0A
Other languages
English (en)
Inventor
不公告发明人
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Cambricon Information Technology Co Ltd
Original Assignee
Shanghai Cambricon Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Cambricon Information Technology Co Ltd filed Critical Shanghai Cambricon Information Technology Co Ltd
Priority to CN202010709417.0A priority Critical patent/CN113971453A/zh
Priority to US17/361,828 priority patent/US20220027126A1/en
Publication of CN113971453A publication Critical patent/CN113971453A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/01Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/544Methods 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 for evaluating functions by calculation
    • G06F7/552Powers or roots, e.g. Pythagorean sums
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Complex Calculations (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本披露公开了一种数据归一化处理方法、存储介质和计算机设备,通过数据缩放和算子拼接的方法,对深度学习神经网络中输入数据进行归一化运算,通过本披露中的技术方案,减小了现有深度学习神经网络中归一化运算的复杂程度,并有效地防止了数据处理过程中的数据溢出,提高了深度学习神经网络的运算速度。

Description

一种数据归一化处理方法、存储介质和计算机设备
技术领域
本申请涉及人工智能的技术领域,具体而言,涉及一种数据归一化处理方法、一种数据归一化处理装置、一种计算机可读存储介质以及一种一种计算机设备。
背景技术
为加快深度学习神经网络模型的收敛速度以及提升模型的精度,归一化Normalization层在深度学习神经网络训练过程中被广泛使用。为了保证模型的精度,Normalization层同样会在前向传播即推理过程中保留。为了提升深度学习神经网络模型的性能,在前向传播过程中,经常需要对输入数据进行归一化,即浮点数化为整型数。
在实际情况中,通常会遇到输入数据总数很大的情况,此时,在利用L2Normalization算子进行计算时,输入数据的平方和很容易超出整型数据类型,甚至浮点数数据类型的表达范围,即发生数据溢出现象,导致模型运算异常。
因此,在深度学习神经网络模型的前向传播过程中,需要防止Normalization层数据溢出。
发明内容
基于此,有必要针对上述技术问题,提供一种数据归一化处理方法,方法适用于深度学习神经网络中的归一化层,方法包括:
根据输入数据量化后数据类型的最大值和输入数据的最大值,计算输入数据的缩放因子;
计算缩放因子与输入数据的第一乘积,并根据第一乘积计算输入数据在归一化层的归一化结果。
本申请还提出一种数据归一化处理装置,适用于深度学习神经网络中的归一化层,装置包括:
缩放因子计算单元,根据输入数据量化后数据类型的最大值和输入数据的最大值,计算输入数据的缩放因子;
归一化计算单元,计算缩放因子与输入数据的第一乘积,并根据第一乘积计算输入数据在归一化层的归一化结果。
本申请又提出一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的数据归一化处理方法,以对数据进行归一化处理。
本申请另提出一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的数据归一化处理方法。
本披露的有益效果是:
本披露中的技术方案,通过引入输入数据量化后的最大值以及输入数据的最大值作为计算缩放因子的依据,并利用计算出的缩放因子对输入数据做缩放,能够有效地防止数据处理过程中的数据溢出,并提升了输入数据归一化(量化)的计算精度,提升了数据归一化处理的性能。
本披露通过在Normalizaion层或算子内部进行数据缩放运算,简化了归一化运算的计算过程,减小了计算过程中的计算量,使得相比于现有的归一化运算具有简洁性,且用户无需额外操作。
并且,本披露进行归一化运算时,特别是在ai芯片上进行归一化运算时,采用基本的算子拼接方法,完成L2Normalization算子的功能,本披露中的算子拼接方法与L2Normalization算子相比,具有相同的计算效果的同时,还减少了在ai芯片上进行归一化运算的复杂度,同时还避免了新算子开发带来的额外工作量,有助于提升整体ai芯片的性能。
附图说明
本披露的上述和/或附加方面的优点在结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1是根据本披露的一个实施例的数据归一化处理方法的处理器的示意图;
图2是根据本披露的一个实施例的数据归一化处理方法的示意流程图;
图3是根据本披露的一个实施例的算子拼接过程的示意流程图;
图4根据本披露的一个实施例的数据归一化处理装置的示意框图。
具体实施方式
下面将结合本披露实施例中的附图,对本披露实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本披露一部分实施例,而不是全部的实施例。基于本披露中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本披露保护的范围。
还应当理解,在此本披露说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本披露。如在本披露说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本披露说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
根据本公开实施例的数据处理方法可应用于处理器等第一处理设备中,该处理器可以是通用处理器,例如CPU(Central Processing Unit,中央处理器),也可以是用于执行人工智能运算的人工智能处理器(IPU)。人工智能运算可包括机器学习运算,类脑运算等。其中,机器学习运算包括神经网络运算、k-means运算、支持向量机运算等。该人工智能处理器可例如包括GPU(Graphics Processing Unit,图形处理单元)、NPU(Neural-NetworkProcessing Unit,神经网络处理单元)、DSP(Digital Signal Process,数字信号处理单元)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)芯片中的一种或组合。本公开对处理器的具体类型不作限制。
在一种可能的实现方式中,本披露中所提及的处理器可以包括多个处理单元,每个处理单元可以独立运行所分配到的任务,如:缩放因子计算任务、数据归一化计算任务等,本披露对处理单元及处理单元所运行的任务不做限制。
图1示出根据本披露实施例的数据归一化处理方法的处理器的示意图,适用于深度学习神经网络中归一化层的归一化运算。如图1所示,处理器100包括多个处理单元101以及存储单元102,多个处理单元101用于执行指令序列,存储单元102用于存储数据,可以包括随机存储器和寄存器堆。处理器100中的多个处理单元101既可以共用部分存储空间,如共用部分RAM存储空间和寄存器堆,又可以同时拥有各自的存储空间。通过该处理器100中的处理单元101执行分配到的任务后,能够在实现防止数据溢出的情况下,降低归一化运算过程中的计算量,提升了该装置的整体性能。
该处理器100进行归一化运算时,归一化运算方法如图2所示,处理单元101根据输入数据量化(归一化)后数据类型的最大值和输入数据的最大值,计算输入数据的缩放因子。
可选地,输入数据可以为一维数据、二维数据或多维数据,本申请对此不作任何限制。
可选地,输入数据为浮点数据,可以为32位浮点数据、16位浮点数据、64位浮点数据等,量化后数据为定点数据,包括8位定点型数据、16位定点型数据等,本申请对此不作任何限定。量化后数据类型的最大值指的是该数据类型表示的数值范围的最大值,例如8位定点型数据表示的范围为[-128,127],量化后数据类型的最大值为127。
本披露中,进行输入数据量化的具体方法包括:
根据量化类型,依次计算量化后每个数值表示的实际数值,生成量化初始数据,其中,实际数值的计算公式为:
value≈i*2position/scale
式中,value为实际数值,position为统计参数,scale为微调参数,取值范围为[1,2);
根据微调参数对量化初始数据进行微调,生成量化数据。
以如下示例对数据量化过程进行举例:
当一个浮点型的张量tensor(N维数组)使用int8表示时,该张量tensor由三部分组成,包括:
1)8位有符号整型张量(int8)tensor
2)int类型position;
3)浮点型scale。
因此,int8型tensor中每个数值表示的实际浮点数value的计算公式为:
value≈i*2position/scale
式中,i为int8型数据,position通过统计获得,其统计方法如下:
1、获得tensor中的最大值max和最小值min;
2、让position从-16开始,每次增加1,直到int8型数能完全覆盖value的最大值和最小值;
3、获得position后,再计算scale,scale是对int8型数覆盖范围的微调,scale取值范围为[1,2)。
在一个可能的实施例中,缩放因子的计算公式为:
Figure BDA0002595952610000051
式中,β为缩放因子,Max为输入数据量化后数据类型的最大值,xmax为输入数据的最大值,n为输入数据的总数,n为大于1的正整数。
在一个可能的实施例中,缩放因子的计算公式还可以是Max/xmax
本申请的缩放因子是根据量化后数据类型对应的最大值和输入数据的最大值确定的,对缩放因子的具体计算公式形式不做限定。
通过设置该缩放因子,引入数据量化后数据类型的最大值,能够提高缩放因子的计算精度,并降低缩放因子的计算量,提高数据防溢出的效果。
处理单元101计算缩放因子与输入数据的第一乘积,并根据第一乘积计算输入数据在归一化层中L2Normalization算子的归一化结果。
具体的,在深度学习神经网络模型的归一化Normalization层,通常采用L2Normalization算子对输入数据进行归一化处理,以便于提升深度学习神经网络模型的性能。
处理单元101在进行归一化运算之前,利用计算出的缩放因子,对输入数据进行等比例缩放,即将缩放因子逐个与输入数据相乘。
再将两者的乘积带入L2Normalization算子,进行归一化运算,此时,L2Normalization算子归一化的计算公式为:
Figure BDA0002595952610000061
式中,xi为输入数据中的第i个数据,i=1,2,…,n,n为输入数据的总数,yi为输入数据xi对应的归一化后的结果。
通过上式可知,在进行归一化时,将分子和分母同时缩放了相同的倍数,因此,对应的归一化结果保持不变。但是,通过对分子分母的缩放,能够有效地防止数据溢出,提高归一化过程中的计算精度。
根据上述L2Normalization算子的计算公式,可以得知,在进行归一化计算时,首先需要对输入数据进行平方运算,然后再求累加和,计算累加和的开方运算,得到平方根后计算该平方根的倒数,再与输入数据相乘,才能够完成归一化运算。
上述计算过程较为繁琐,特别是计算过程涉及到平方、累加求和以及开方操作,计算量较大,因此,在本披露中,对上述归一化计算过程进行算子拼接替换,以减小计算过程中的计算量,进一步提升深度学习神经网络模型的性能。
本披露中的算子拼接方法适用于L2Normalization算子进行实例模式、通道模式等运算模式的归一化运算,以L2Normalization算子执行实例模式运算为例进行说明。
具体的,实例模式指的是当输入数据是NCHW格式时,那么,该实例指的就是对每个batch做运算,或者是对输入数据的N方方向做运算,此时的运算模式记作实例模式。
通道模式指的是输入数据是RGB图片的通道,也是对数据格式NCHW下的C方向做运算,此时的运算模式记作通道模式。
当输入数据为NCHW格式时,此时L2Normalization算子执行实例模式运算,以图片数据处理为例,按照设定的维度,处理顺序一般为:N方向—>H方向—>W方向—>C方向,其中,N通常被称为instance或者batch,H通常被称为图片的高度,W是图片的宽度,C是图片的通道。
本领域技术人员能够理解的是,当输入数据为NCHW格式时,即可表示对1、2、3、4维数据进行运算,即当4个方向的数据中的任1个方向的数据大于1,且其余3个方向的数据等于1时,表示对1维数据进行运算;当4个方向的数据中的任2个方向的数据大于1,且其余2个方向的数据等于1时,表示对2维数据进行运算;当4个方向的数据中的任3个方向的数据大于1,且其余1个方向的数据等于1时,表示对3维数据进行运算;当4个方向的数据均大于1时,表示对4维数据进行运算。
本披露仅以对N方向数据为例,即以1维数据对算子拼接方法进行说明。
如图3所示,处理单元101采用算子拼接的方法,计算输入数据在归一化层中L2Normalization算子的归一化结果的具体过程为:
对N方向数据进行归一化之后,将第一乘积βxi作为数据A1,首先使用平方(乘法)操作(NCHW)×(NCHW),计算数据A1的第一平方值,得到数据A2;
对数据A1和数据A2在N方向数据进行求和操作,此时,N方向的数据维度变为1,其余维度保持不变,即NCHW—>1CHW,将两者的和值记作数据A3;
再对数据A3使用开方操作并取倒数,即
Figure BDA0002595952610000081
得到数据A3的平方根倒数,记作数据A4,其中,数据A4为三维数据,A1为四维数据,其维度比数据A1少一个维度。
因此,对数据A4与数据A1进行不同维度的乘操作,即广播乘法broadcast_mult,得到输入数据对应的第二乘积,将该第二乘积记作L2Normalization算子的归一化结果。
现对广播乘法进行说明:广播乘法为一个小矩阵与一个大矩阵之间的乘法操作,其中,所述“小”“大”是针对数据的维度相对而言,小矩阵的维度小于大矩阵的维度。将大矩阵根据小矩阵的维度划分为至少两个子矩阵,将所述至少两个子矩阵分别与所述小矩阵进行运算,得到的乘积记做子矩阵积,采用加法运算,计算所述子矩阵积的和值,为所述小矩阵与大矩阵的最后结果。在本披露中,平方根的倒数是三维矩阵,为小矩阵,第一乘积是四维矩阵,为大矩阵。
本披露中,采用广播乘法,计算第二乘积的具体方法包括:
根据平方根的倒数的维度,将第一乘积划分为至少两个子矩阵,其中,平方根的倒数的维度小于第一乘积的维度,划分后的子矩阵的维度与平方根的倒数的维度相等,即对平方根的倒数做广播乘法;
依次计算平方根的倒数与子矩阵的乘积,将乘积记作子矩阵积;
采用加法运算,计算子矩阵积的和值,将和值记作第二乘积。
具体的,数据A1为四维数据,数据格式为NCHW,数据A4为三维数据,数据格式为CHW,因此,在两者进行广播乘法时,首先根据数据A4的维度,按照N方向,将数据A1拆分为N个三维数据,得到N个子矩阵。
之后,将N个子矩阵依次与数据A4进行乘法运算,得到N个子矩阵积。
最后,将N个子矩阵积相加,得到子矩阵积的和值,完成广播乘法,实现第二乘积的计算。
上述计算过程可以描述为:mult—>sumpool—>rsqrt—>broadcast_mult。
需要说明的是,当输入数据为RGB图片格式时,此时L2Normalization算子执行通道模式运算,即此时的输入数据为RGB图片的通道,等同于数据格式NHWC下的C方向,此时,处理单元101采用算子拼接的方法替换L2Normalization算子的具体过程与上述执行实例模式运算相同,可以描述为:mult—>sumpool—>rsqrt—>broadcast_mult。
通过上述算子拼接的计算过程,采用基本算子的拼接,规避了常规L2Normalization算子计算过程中的平方、累加求和以及开方操作,使本披露中算子拼接方法与常规的L2Normalization算子具有相同的计算效果,同时,采用算子拼接方法还减少了数据归一化处理过程中的复杂度,简化了深度学习神经网络模型中Normalization层进行归一化的运算避免了新算子开发带来的额外工作量。
在上述披露内容的基础上,如图4所示,本披露还提供一种数据归一化处理装置中,该装置包括:缩放因子计算单元10和归一化计算单元20,由缩放因子计算单元10和归一化计算单元20执行深度学习神经网络中归一化层的归一化运算,在实现防止数据溢出的情况下,降低了归一化运算过程中的计算量,提升了该装置的整体性能。
缩放因子计算单元10用于根据输入数据量化(归一化)后数据类型的最大值和输入数据的最大值,计算输入数据的缩放因子。
可选地,输入数据可以为一维数据、二维数据或多维数据,本申请对此不作任何限制。
可选地,输入数据为浮点数据,可以为32位浮点数据、16位浮点数据、64位浮点数据等,量化后数据为定点数据,包括8位定点型数据、16位定点型数据等,本申请对此不作任何限定。量化后数据类型的最大值指的是该数据类型表示的数值范围的最大值,例如8位定点型数据表示的范围为[-128,127],量化后数据类型的最大值为127。
在一个可能的实施例中,缩放因子的计算公式为:
Figure BDA0002595952610000101
式中,β为缩放因子,Max为输入数据量化后数据类型的最大值,xmax为输入数据的最大值,n为输入数据的总数,n为大于1的正整数。
在一个可能的实施例中,缩放因子的计算公式还可以是Max/xmax
本披露的缩放因子是根据量化后数据类型对应的最大值和输入数据的最大值确定的,对缩放因子的具体计算公式形式不做限定。
通过设置该缩放因子,引入数据量化后数据类型的最大值,能够提高缩放因子的计算精度,并降低缩放因子的计算量,提高数据防溢出的效果。
归一化计算单元20用于计算缩放因子与输入数据的第一乘积,并根据第一乘积计算输入数据在归一化层中L2Normalization算子的归一化结果。
具体的,在深度学习神经网络模型的归一化Normalization层,通常采用L2Normalization算子对输入数据进行归一化处理,以便于提升深度学习神经网络模型的性能。
归一化计算单元20在进行归一化运算之前,利用计算出的缩放因子,对输入数据进行等比例缩放,即将缩放因子逐个与输入数据相乘。
再将两者的乘积带入L2Normalization算子,进行归一化运算,此时,L2Normalization算子归一化的计算公式为:
Figure BDA0002595952610000102
式中,xi为输入数据中的第i个数据,i=1,2,…,n,n为输入数据的总数,yi为输入数据xi对应的归一化后的结果。
通过上式可知,在进行归一化时,将分子和分母同时缩放了相同的倍数,因此,对应的归一化结果保持不变。但是,通过对分子分母的缩放,能够有效地防止数据溢出,提高归一化过程中的计算精度。
根据上述L2Normalization算子的计算公式,可以得知,在进行归一化计算时,首先需要对输入数据进行平方运算,然后再求累加和,计算累加和的开方运算,得到平方根后计算该平方根的倒数,再与输入数据相乘,才能够完成归一化运算。
上述计算过程较为繁琐,特别是计算过程涉及到平方、累加求和以及开方操作,计算量较大,因此,在本披露中,对上述归一化计算过程进行算子拼接替换,以减小计算过程中的计算量,进一步提升深度学习神经网络模型的性能。
本披露中的算子拼接方法适用于L2Normalization算子进行实例模式、通道模式等运算模式的归一化运算,以L2Normalization算子执行实例模式运算为例进行说明。
具体的,实例模式指的是当输入数据是NCHW格式时,那么,该实例指的就是对每个batch做运算,或者是对输入数据的N方方向进行运算,此时的运算模式记作实例模式。
通道模式指的是输入数据是RGB图片的通道,也是对数据格式NCHW下的C方向做运算,此时的运算模式记作通道模式。
当输入数据为NCHW格式时,此时L2Normalization算子执行实例模式运算,以图片数据处理为例,按照设定的维度,处理顺序一般为:N方向—>H方向—>W方向—>C方向,其中,N通常被称为instance或者batch,H通常被称为图片的高度,W是图片的宽度,C是图片的通道。
本领域技术人员能够理解的是,当输入数据为NCHW格式时,即可表示对1、2、3、4维数据进行运算,即当4个方向的数据中的任1个方向的数据大于1,且其余3个方向的数据等于1时,表示对1维数据进行运算;当4个方向的数据中的任2个方向的数据大于1,且其余2个方向的数据等于1时,表示对2维数据进行运算;当4个方向的数据中的任3个方向的数据大于1,且其余1个方向的数据等于1时,表示对3维数据进行运算;当4个方向的数据均大于1时,表示对4维数据进行运算。
本披露仅以对N方向数据为例,即以1维数据对算子拼接方法进行说明。
归一化计算单元20采用算子拼接的方法,计算输入数据在归一化层中L2Normalization算子的归一化结果的具体过程为:
对N方向数据进行归一化之后,将第一乘积βxi作为数据A1,首先使用平方(乘法)操作(NCHW)×(NCHW),计算数据A1的第一平方值,得到数据A2;
对数据A1和数据A2在N方向数据进行求和操作,此时,N方向的数据维度变为1,其余维度保持不变,即NCHW—>1CHW,将两者的和值记作数据A3;
再对数据A3使用开方操作并取倒数,即
Figure BDA0002595952610000121
得到数据A3的平方根倒数,记作数据A4,其中,数据A4为三维数据,A1为四维数据,其维度比数据A1少一个维度。
因此,对数据A4与数据A1进行不同维度的乘操作,即广播乘法broadcast_mult,得到输入数据对应的第二乘积,将该第二乘积记作L2Normalization算子的归一化结果。
现对广播乘法进行说明:广播乘法为一个小矩阵与一个大矩阵之间的乘法操作,其中,所述“小”“大”是针对数据的维度相对而言,小矩阵的维度小于大矩阵的维度。将大矩阵根据小矩阵的维度划分为至少两个子矩阵,将所述至少两个子矩阵分别与所述小矩阵进行运算,得到的乘积记做子矩阵积,采用加法运算,计算所述子矩阵积的和值,为所述小矩阵与大矩阵的最后结果。在本披露中,平方根的倒数是三维矩阵,为小矩阵,第一乘积是四维矩阵,为大矩阵。
本披露中,采用广播乘法,计算第二乘积的具体方法包括:
根据平方根的倒数的维度,将第一乘积划分为至少两个子矩阵,其中,平方根的倒数的维度小于第一乘积,划分后的子矩阵的维度与平方根的倒数的维度相等,即对平方根的倒数做广播乘法;
依次计算平方根的倒数与子矩阵的乘积,将乘积记作子矩阵积;
采用加法运算,计算子矩阵积的和值,将和值记作第二乘积。
具体的,数据A1为四维数据,数据格式为NCHW,数据A4为三维数据,数据格式为CHW,因此,在两者进行广播乘法时,首先根据数据A4的维度,按照N方向,将数据A1拆分为N个三维数据,得到N个子矩阵。
之后,将N个子矩阵依次与数据A4进行乘法运算,得到N个子矩阵积。
最后,将N个子矩阵积相加,得到子矩阵积的和值,完成广播乘法,实现第二乘积的计算。
上述计算过程可以描述为:mult—>sumpool—>rsqrt—>broadcast_mult。
需要说明的是,当输入数据为RGB图片格式时,此时L2Normalization算子执行通道模式运算,即此时的输入数据为RGB图片的通道,等同于数据格式NHWC下的C方向,此时,处理单元101采用算子拼接的方法替换L2Normalization算子的具体过程与上述执行实例模式运算相同,可以描述为:mult—>sumpool—>rsqrt—>broadcast_mult。
在一种可能实现的方式中,本披露实施例的数据归一化处理方法以计算机程序的形式存储于计算机可读存储介质,该计算机可读存储介质被计算机设备运行时,该计算机设备中的多个处理单元可以单独运行所分配到的各种任务,如:计算缩放因子任务、算子拼接任务等。本披露不对处理单元所运行的任务进行限制。上述处理单元可以是任何适当的硬件处理器,比如CPU、GPU、FPGA、DSP和ASIC等等,也可以是用于执行人工智能运算的人工智能处理器(IPU)。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本披露并不受所描述的动作顺序的限制,因为依据本披露,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本披露所必须的。
进一步需要说明的是,虽然图2和图3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与所述其他步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
应该理解,上述的装置实施例仅是示意性的,本披露的装置还可通过其它的方式实现。例如,上述实施例中所述单元/模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如,多个单元、模块或组件可以结合,或者可以集成到另一个系统,或一些特征可以忽略或不执行。
另外,若无特别说明,在本披露各个实施例中的各功能单元/模块可以集成在一个单元/模块中,也可以是各个单元/模块单独物理存在,也可以两个或两个以上单元/模块集成在一起。上述集成的单元/模块既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元/模块如果以硬件的形式实现时,该硬件可以是数字电路,模拟电路等等。硬件结构的物理实现包括但不局限于晶体管,忆阻器等等。若无特别说明,所述缩放因子计算单元和归一化计算单元可以是任何适当的硬件处理器,具备数据处理功能即可,比如CPU、GPU、FPGA、DSP和ASIC等等。
所述集成的单元/模块如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本披露的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本披露各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。上述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
依据以下条款可更好地理解前述内容:
条款A1,一种数据归一化处理方法,所述方法适用于深度学习神经网络中的归一化层,所述方法包括:
根据输入数据量化后数据类型的最大值和所述输入数据的最大值,计算所述输入数据的缩放因子;
计算所述缩放因子与所述输入数据的乘积,并根据所述乘积计算所述输入数据在所述归一化层的归一化结果。
条款A2,根据条款A1所述的方法,所述缩放因子的计算公式为:
Figure BDA0002595952610000151
式中,β为所述缩放因子,Max为所述输入数据量化后数据类型的最大值,xmax为所述输入数据的最大值,n为所述输入数据的总数。
条款A3,根据条款A2所述的方法,步骤2中,计算所述输入数据在所述归一化层的归一化结果,具体包括:
依次对所述第一乘积进行平方操作,计算所述第一乘积的第一平方值;
利用加法操作,计算所述第一平方值与所述第一乘积的和值,并计算所述和值的平方根的倒数;
采用广播乘法,计算所述平方根的倒数与所述第一乘积的第二乘积,将所述第二乘积记作所述L2Normalization算子的归一化结果。
条款A4,根据条款A3所述的数据归一化处理方法,所述采用广播乘法,计算所述平方根的倒数与所述第一乘积的第二乘积,具体包括:
根据所述平方根的倒数的维度,将所述第一乘积划分为至少两个子矩阵,其中,所述平方根的倒数的维度小于所述第一乘积的维度;
依次计算所述平方根的倒数与所述子矩阵的乘积,将所述乘积记作子矩阵积;
采用加法运算,计算所述子矩阵积的和值,将所述和值记作所述第二乘积。
条款A5,根据条款A1或A3任一项所述的方法,所述归一化结果为L2Normalization算子的归一化结果。
条款A6,根据条款A5所述的方法,所述L2Normalization算子的运算模式包括实例模式和通道模式。
条款A7,根据条款A1所述的数据归一化处理方法,所述输入数据的量化,具体包括:
根据量化类型,依次计算量化后每个数值表示的实际数值,生成量化初始数据,其中,所述实际数值的计算公式为:
value≈i*2position/scale
式中,value为所述实际数值,position为统计参数,scale为微调参数,取值范围为[1,2);
根据所述微调参数对所述量化初始数据进行微调,生成量化数据。
条款A8,一种数据归一化处理装置,所述装置包括:缩放因子计算单元以及归一化计算单元;
所述缩放因子计算单元用于根据输入数据量化后数据类型的最大值和所述输入数据的最大值,计算所述输入数据的缩放因子;
所述归一化计算单元用于计算所述缩放因子与所述输入数据的第一乘积,并根据所述第一乘积,计算所述输入数据在所述归一化层的归一化结果。
条款A9,根据条款A8所述的装置,所述缩放因子的计算公式为:
Figure BDA0002595952610000171
式中,β为所述缩放因子,Max为所述输入数据量化后数据类型的最大值,xmax为所述输入数据的最大值,n为所述输入数据的总数。
条款A10,根据条款A9所述的装置,所述归一化计算单元,计算所述输入数据在所述归一化层的归一化结果,具体包括:
对所述第一乘积进行平方操作,计算所述第一乘积的第一平方值;
利用加法操作,计算所述第一平方值与所述第一乘积的和值,并计算所述和值的平方根的倒数;
采用广播乘法,计算所述平方根的倒数与所述第一乘积的第二乘积,将所述第二乘积记作所述归一化结果。
条款A11,一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如条款A1至A7中任一项所述的数据归一化处理方法,以对数据进行归一化处理。
条款A12,一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如条款A1至A7中任一项所述的数据归一化处理方法。
以上对本披露实施例进行了详细介绍,本文中应用了具体个例对本披露的原理及实施方式进行了阐述,以上实施例的说明仅用于帮助理解本披露的方法及其核心思想。同时,本领域技术人员依据本披露的思想,基于本披露的具体实施方式及应用范围上做出的改变或变形之处,都属于本披露保护的范围。综上所述,本说明书内容不应理解为对本披露的限制。

Claims (9)

1.一种数据归一化处理方法,其特征在于,所述方法适用于深度学习神经网络中的归一化层,所述方法包括:
根据输入数据量化后数据类型的最大值和所述输入数据的最大值,计算所述输入数据的缩放因子;
计算所述缩放因子与所述输入数据的第一乘积,并根据所述第一乘积,计算所述输入数据在所述归一化层的归一化结果。
2.如权利要求1所述的数据归一化处理方法,其特征在于,所述缩放因子的计算公式为:
Figure FDA0002595952600000011
式中,β为所述缩放因子,Max为所述输入数据量化后数据类型的最大值,xmax为所述输入数据的最大值,n为所述输入数据的总数。
3.如权利要求2所述的数据归一化处理方法,其特征在于,步骤2中,计算所述输入数据在所述归一化层的归一化结果,具体包括:
对所述第一乘积进行平方操作,得到所述第一乘积的第一平方值;
利用加法操作,计算所述第一平方值与所述第一乘积的和值,并计算所述和值的平方根的倒数;
采用广播乘法,计算所述平方根的倒数与所述第一乘积的第二乘积,将所述第二乘积记作所述归一化结果。
4.如权利要求3所述的数据归一化处理方法,其特征在于,所述采用广播乘法,计算所述平方根的倒数与所述第一乘积的第二乘积,具体包括:
根据所述平方根的倒数的维度,将所述第一乘积划分为至少两个子矩阵,其中,所述平方根的倒数的维度小于所述第一乘积的维度;
计算所述平方根的倒数与所述子矩阵的乘积,将所述乘积记作子矩阵积;
采用加法运算,计算所述子矩阵积的和值,将所述和值记作所述第二乘积。
5.如权利要求1或3任一项所述的数据归一化处理方法,其特征在于,所述归一化结果为L2Normalization算子的归一化结果。
6.如权利要求5所述的数据归一化处理方法,其特征在于,所述L2Normalization算子的运算模式包括实例模式和通道模式。
7.如权利要求1所述的数据归一化处理方法,其特征在于,所述输入数据的量化,具体包括:
根据量化类型,依次计算量化后每个数值表示的实际数值,生成量化初始数据,其中,所述实际数值的计算公式为:
value≈i*2position/scale
式中,value为所述实际数值,position为统计参数,scale为微调参数,取值范围为[1,2);
根据所述微调参数对所述量化初始数据进行微调,生成量化数据。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的数据归一化处理方法,以对数据进行归一化处理。
9.一种计算机设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1-7任一所述的方法。
CN202010709417.0A 2020-07-22 2020-07-22 一种数据归一化处理方法、存储介质和计算机设备 Pending CN113971453A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202010709417.0A CN113971453A (zh) 2020-07-22 2020-07-22 一种数据归一化处理方法、存储介质和计算机设备
US17/361,828 US20220027126A1 (en) 2020-07-22 2021-06-29 Data normalization processing method, storage medium and computer equipment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010709417.0A CN113971453A (zh) 2020-07-22 2020-07-22 一种数据归一化处理方法、存储介质和计算机设备

Publications (1)

Publication Number Publication Date
CN113971453A true CN113971453A (zh) 2022-01-25

Family

ID=79584747

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010709417.0A Pending CN113971453A (zh) 2020-07-22 2020-07-22 一种数据归一化处理方法、存储介质和计算机设备

Country Status (2)

Country Link
US (1) US20220027126A1 (zh)
CN (1) CN113971453A (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117784225A (zh) * 2022-09-22 2024-03-29 中国石油天然气股份有限公司 河道与断层同步检测方法及装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10586350B2 (en) * 2017-12-03 2020-03-10 Facebook, Inc. Optimizations for dynamic object instance detection, segmentation, and structure mapping
US11852749B2 (en) * 2018-03-30 2023-12-26 Metawave Corporation Method and apparatus for object detection using a beam steering radar and a decision network
US11056098B1 (en) * 2018-11-28 2021-07-06 Amazon Technologies, Inc. Silent phonemes for tracking end of speech
US11720790B2 (en) * 2019-05-22 2023-08-08 Electronics And Telecommunications Research Institute Method of training image deep learning model and device thereof
CN112101511A (zh) * 2019-06-18 2020-12-18 微软技术许可有限责任公司 稀疏卷积神经网络
US11568248B2 (en) * 2020-03-31 2023-01-31 Ati Technologies Ulc Feature reordering based on similarity for improved memory compression transfers during machine learning jobs

Also Published As

Publication number Publication date
US20220027126A1 (en) 2022-01-27

Similar Documents

Publication Publication Date Title
US10691413B2 (en) Block floating point computations using reduced bit-width vectors
US12001955B2 (en) Data processing method, device, computer equipment and storage medium
Ko et al. Design and application of faithfully rounded and truncated multipliers with combined deletion, reduction, truncation, and rounding
CN109800865B (zh) 神经网络生成及图像处理方法和装置、平台、电子设备
CN111695671B (zh) 训练神经网络的方法及装置、电子设备
US20220004884A1 (en) Convolutional Neural Network Computing Acceleration Method and Apparatus, Device, and Medium
US20210271973A1 (en) Operation method and apparatus for network layer in deep neural network
US10579334B2 (en) Block floating point computations using shared exponents
US11809836B2 (en) Method and apparatus for data processing operation
CN113971453A (zh) 一种数据归一化处理方法、存储介质和计算机设备
Ullah et al. L2L: A highly accurate Log_2_Lead quantization of pre-trained neural networks
CN109918237B (zh) 异常网络层确定方法及相关产品
US20230401420A1 (en) Compiling asymmetrically-quantized neural network models for deep learning acceleration
Kalali et al. A power-efficient parameter quantization technique for CNN accelerators
EP3742283A1 (en) Arithmetic processing device, method for controlling arithmetic processing device, and program for controlling arithmetic processing device
CN114444667A (zh) 训练神经网络的方法及装置、电子设备
Cséfalvay et al. Self-Compressing Neural Networks
CN115668229A (zh) 用于经训练神经网络的低资源计算块
CN116136752B (zh) 阵列输入策略的确定方法和系统
Sarciada et al. CORDIC algorithms for SVM FPGA implementation
EP4310730A1 (en) Processing data using a neural network "nn" implemented in hardware
EP4345692A1 (en) Methods and systems for online selection of number formats for network parameters of a neural network
GB2624564A (en) Identifying one or more quantisation parameters for quantising values to be processed by a neural network
Cyganek et al. How orthogonal are we? A note on fast and accurate inner product computation in the floating-point arithmetic
Hua et al. Quantize YOLOv3-tiny For 5-bit Hardware

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