CN116956989A - 神经网络模型中归一化算子的量化方法、装置、电子设备 - Google Patents

神经网络模型中归一化算子的量化方法、装置、电子设备 Download PDF

Info

Publication number
CN116956989A
CN116956989A CN202310955099.XA CN202310955099A CN116956989A CN 116956989 A CN116956989 A CN 116956989A CN 202310955099 A CN202310955099 A CN 202310955099A CN 116956989 A CN116956989 A CN 116956989A
Authority
CN
China
Prior art keywords
point
fixed
quantization
fixed point
outputs
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
CN202310955099.XA
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.)
ARM Technology China Co Ltd
Original Assignee
ARM Technology China 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 ARM Technology China Co Ltd filed Critical ARM Technology China Co Ltd
Priority to CN202310955099.XA priority Critical patent/CN116956989A/zh
Publication of CN116956989A publication Critical patent/CN116956989A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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
    • 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
    • G06F5/015Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising having at least two separately controlled shifting levels, e.g. using shifting matrices
    • 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/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Molecular Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Nonlinear Science (AREA)
  • Data Mining & Analysis (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本申请实施例提供了一种神经网络模型中归一化算子的量化方法、装置、电子设备及计算机可读存储介质,涉及神经网络领域。该方法包括:根据浮点输出数据、量化位宽、浮点缩放参数以及第一移位数,获得第一量化系数;根据定点输入数据、第二移位数和量化位宽,获得定点归一化结果;根据定点缩放参数、定点平移参数、定点归一化结果,获得初始定点输出数据;根据第一量化系数对初始定点输出数据进行量化,将量化结果以第一移位数进行移位,获得定点输出数据。本申请实施例无需全部求出均值和方差,规避了传统计算均值和方差的方法带来的误差,针对部分除运算采用了基于第一移位数和第二移位数进行移位的方式,大大减少了运算量,提高了运算效率。

Description

神经网络模型中归一化算子的量化方法、装置、电子设备
技术领域
本申请涉及神经网络技术领域,具体而言,本申请涉及一种神经网络模型中归一化算子的量化方法、装置、电子设备。
背景技术
人工智能技术(Artificial Intelligence,AI)领域在人们生产生活中应用越来越广泛。可以通过神经网络模型对文字、视频、音频、图像等数据进行处理,从而获得所需要的结果。例如,用户在手机时,手机内置的人脸识别模型可以对拍摄到的人脸图像进行处理,从而识别出人的身份;又例如,手机内置的文本识别模型可以对网页上的某段话进行处理,从而得到文字的出处;还例如,手机内置的音频匹配模型可以对音频进行处理,识别出声音/歌曲等等。
由于神经网络模型是资源密集型算法,其计算成本、内存占用量大,电子设备中内置的神经网络模型,通常是量化后的神经网络模型。神经网络模型量化一般指将神经网络模型中的高精度浮点计算转化为定点计算,得到定点计算的神经网络模型。
归一化算子是一种可以运用在神经网络模型中,对神经网络模型运行过程中的特征数据进行处理的算子。例如,对于上述人脸识别模型,归一化层中的归一化算子可以对上一层输入的与人脸图像相关联的特征数据进行处理,从而得到处理后的新的与人脸图像相关联的特征数据。
由于归一化算子中的根式计算为浮点计算,目前由归一化算子对神经网络中的定点数据进行归一化处理时,是将定点数据进行反量化后进行浮点运算,然后将计算结果进行量化后输出定点数据。该计算方法的计算量较大,导致计算成本较高,且计算速度较慢。
发明内容
本申请实施例提供了一种神经网络模型中归一化算子的量化方法、装置、电子设备、计算机可读存储介质及计算机程序产品,可以解决现有技术的上述问题。所述技术方案如下:
根据本申请实施例的一个方面,提供了一种神经网络模型中归一化算子的量化方法,该方法包括:
确定所述归一化算子的定点输入数据Qinputs、量化位宽b、浮点缩放参数γ、定点缩放参数Qγ、定点平移参数Qβ、浮点输出数据outputs、第一移位数Noutputs以及第二移位数exp;
根据浮点输出数据outputs、量化位宽b、浮点缩放参数γ以及第一移位数Noutputs,获得第一量化系数Moutputs
根据定点输入数据Qinputs、第二移位数exp和量化位宽b,获得定点归一化结果Qnorm
根据定点缩放参数Qγ、定点平移参数Qβ、定点归一化结果Qnorm,获得初始定点输出数据;根据所述第一量化系数Moutputs对所述初始定点输出数据进行量化,将量化结果以所述第一移位数Noutputs进行移位,获得定点输出数据Qoutputs
其中,所述第一移位数Noutputs不超过量化位宽b,所述输入数据为用于表示预设信息的特征向量,所述第二移位数为偶数且2exp为最接近所述特征向量的长度N的2的次幂数。
在上述实施例的基础上,作为一种可选实施例,根据浮点输出数据outputs、量化位宽b、浮点缩放参数γ以及第一移位数Noutputs,获得第一量化系数Moutputs,包括:
根据浮点输出数据outputs的最大值和最小值间的第一差值以及量化位宽b,确定第二量化系数outputsscale
根据浮点缩放参数γ的最大值和最小值间的第二差值以及量化位宽b,确定第三量化系数γscale
根据所述长度N以及量化位宽b,确定第四量化系数normscale
根据第二量化系数outputsscale、第三量化系数γscale和第四量化系数normscale,确定第五量化系数;
将所述第五量化系数以所述第一移位数Noutputs进行移位,获得所述第一量化系数Moutputs
在上述实施例的基础上,作为一种可选实施例,根据定点输入数据Qinputs、第二移位数exp和量化位宽b,获得定点归一化结果Qnorm,包括:
对定点输入数据Qinputs取均值,获得定点均值Qμ
确定定点输入数据Qinputs和定点均值Qμ间的差异程度,将所述差异程度以所述第二移位数exp进行移位,以确定定点方差平方根倒数Qalpha
根据定点输入数据Qinputs、定点均值Qμ以及定点方差平方根倒数Qalpha,确定初始定点归一化结果Qnorm_tmp
根据Qalpha的位数和第二移位数exp对所述初始定点归一化结果Qnorm_tmp移位至量化位宽的位数,确定定点归一化结果Qnorm
在上述实施例的基础上,作为一种可选实施例,定点缩放参数Qγ,通过以下方式确定:
根据浮点缩放参数γ的最大值和最小值间的第三差值以及量化位宽b,确定第三量化系数γscale
根据浮点缩放参数γ以及第三量化系数γscale,确定定点缩放参数Qγ
在上述实施例的基础上,作为一种可选实施例,确定定点平移参数Qβ,包括:
根据所述长度N以及量化位宽b,确定第四量化系数normscale
根据量化系数normscale和量化系数γscale,确定第六量化系数βscale
确定浮点平移参数β,根据浮点平移参数β和量化系数βscale,确定定点平移参数Qβ
在上述实施例的基础上,作为一种可选实施例,根据定点输入数据Qinputs、定点均值Qμ以及定点方差平方根倒数Qalpha,确定初始定点归一化结果Qnorm_tmp,包括:
确定定点输入数据Qinputs与定点均值Qμ间的第四差值;
将所述第四差值和定点方差平方根倒数Qalpha的乘积,作为所述初始定点归一化结果Qnorm_tmp
在上述实施例的基础上,作为一种可选实施例,预设信息为图像、文本、音频、环境信息中的任意一者。
根据本申请实施例的另一个方面,提供了一种神经网络模型中归一化算子的量化装置,该装置包括:
准备模块,用于确定所述归一化算子的定点输入数据Qinputs、量化位宽b、浮点缩放参数γ、定点缩放参数Qγ、定点平移参数Qβ、浮点输出数据outputs、第一移位数Noutputs以及第二移位数exp;
量化系数确定模块,用于根据浮点输出数据outputs、量化位宽b、浮点缩放参数γ以及第一移位数Noutputs,获得第一量化系数Moutputs
定点归一化模块,用于根据定点输入数据Qinputs、第二移位数exp和量化位宽b,获得定点归一化结果Qnorm
输出模块,用于根据定点缩放参数Qγ、定点平移参数Qβ、定点归一化结果Qnorm,获得初始定点输出数据;根据所述第一量化系数Moutputs对所述初始定点输出数据进行量化,将量化结果以所述第一移位数Noutputs进行移位,获得定点输出数据Qoutputs
其中,所述第一移位数Noutputs不超过量化位宽b,所述输入数据为用于表示预设信息的特征向量,所述第二移位数为偶数且2exp为最接近所述特征向量的长度N的2的次幂数。
根据本申请实施例的另一个方面,提供了一种电子设备,该电子设备包括存储器、处理器及存储在存储器上的计算机程序,处理器执行所述计算机程序以实现上述方法的步骤。
根据本申请实施例的再一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述方法的步骤。
根据本申请实施例的一个方面,提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时实现上述方法的步骤。
本申请实施例提供的技术方案带来的有益效果是:
本申请实施例无需全部求出均值和方差,规避了传统计算均值和方差的方法带来的误差,并且针对部分除运算采用了基于第一移位数和第二移位数进行移位的方式,大大减少了运算量,提高了运算效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的场景示意图;
图2为本申请实施例提供的一种神经网络模型中归一化算子的量化方法的流程示意图;
图3为本申请实施例提供的一种神经网络模型中归一化算子的量化装置的结构示意图;
图4为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面结合本申请中的附图描述本申请的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本申请实施例的技术方案的示例性描述,对本申请实施例的技术方案不构成限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”和“该”也可包括复数形式。应该进一步理解的是,本申请实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作、元件和/或组件,但不排除实现为本技术领域所支持其他特征、信息、数据、步骤、操作、元件、组件和/或它们的组合等。应该理解,当我们称一个元件被“连接”或“耦接”到另一元件时,该一个元件可以直接连接或耦接到另一元件,也可以指该一个元件和另一元件通过中间元件建立连接关系。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的术语“和/或”指示该术语所限定的项目中的至少一个,例如“A和/或B”可以实现为“A”,或者实现为“B”,或者实现为“A和B”。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先对本申请涉及的几个名词进行介绍和解释:
(1)对称量化:将范围在[Xmin,Xmax]的浮点数X通过量化系数映射为范围在[Qmin,Qmax]内的定点数Q,如公式1所示:
Q=X*S (1)
其中,量化参数包括缩放系数S,缩放系数S是不同浮点数X量化为同一个定点数Q的最小刻度。可以理解的,对于对称量化,量化参数中的缩放系数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)。浮点数X可以是对历史训练数据进行统计得到的统计值。例如,在历史训练过程中,X的最大统计值为10,最小统计值为-20,则[Xmin,Xmax]可以确定为[-20,10]。在另一些实施例中,[Xmin,Xmax]也可以为预设的经验值。
对于对称量化,公式(2)示出了一种int类型量化获取量化系数S的公式,其中浮点数X的范围为[Xmin,Xmax]、定点数Q的范围为[Qmin,Qmax]:
需要说明的是,在本申请的其他实施例中,除了通过公式(2)所示的计算方法计算量化系数S之外,还可以通过其他变形公式计算量化系数S,此处不做任何限制。
(2)归一化算子
神经网络模型通常涉及多层数据的叠加,数据在经过多层叠加后,会导致数据区间范围发生变化。该变化可能会导致神经网络模型训练时的梯度下降较慢,从而导致神经网络模型训练时的收敛速度较慢,或者,导致神经网络模型的精度下降,又或者,导致数据的区间范围不统一等。
为了避免出现上述情况,通常需要对神经网络模型中的数据进行归一化处理。在需要对神经网络模型中的数据进行归一化处理时,通常在神经网络模型中添加归一化层,并将归一化算子部署于归一化层中,以通过归一化算子对神经网络模型中需要进行归一化处理的数据进行归一化处理。
本申请实施例中,归一化算子可以为InstanceNorm(IN)算子、LayerNorm(LN)算子、GroupNorm(GN)算子、SwitchableNorm(SN)算子等。
输入到归一化算子中的数据结构可以为[Z,C,H,W],其中,Z为样本(例如图像)数量,C为通道数量,H为样本的高,W为样本的宽。InstanceNorm算子可以对数据的HW通道做归一化处理。LayerNorm算子可以对CHW通道归一化处理。GroupNorm算子将通道C进行分组,然后再做归一化处理。SwitchableNorm结合BN、LN、IN的归一化方法对数据进行归一化处理。然后,InstanceNorm算子、LayerNorm算子、GroupNorm算子和SwitchableNorm算子可以根据缩放系数和平移系数,对各自的归一化处理结果进行缩放和平移后,输出缩放和平移后的数据。
在本申请的一些实施例中,输入数据inputs表征待归一化算子处理的文字、音频、图像等相关特征数据,归一化结果normalize表征归一化算子处理后的与文字、视频、音频、图像等对应的相关特征归一化数据,输出数据outputs为进行神经网络模型中的归一化算子处理后的与文字、视频、音频、图像等对应的相关特征结果数据,其中,特征结果数据为特征归一化数据缩放和平移后得到的数据。
可以理解的,本申请技术方案可以应用在需要通过神经网络模型对文字、音频、图像等数据进行处理的任何场景。
相关技术中,InstanceNorm算子对输入数据的HW通道做归一化;LayerNorm对CHW通道归一化;GroupNorm将通道C进行分组,然后再做归一化;SwitchableNorm结合BN、LN、IN的归一化方法。以上得到的归一化结果再根据缩放参数γ和平移参数β对归一化的结果进行缩放和平移。归一化算子在每次前向推理都要计算均值和方差,所以在量化过程中也要考虑计算均值和方差时的精度。
相关技术的方案都需要全部求出均值和方差,从而存在误差。
边缘计算设备通常只支持定点运算,神经网络模型在适配到此类设备时,会先做量化(即把模型中的浮点型参数映射变换成整型参数,同时确定好每一层激活响应的量化系数),再离线阶段计算量化系数。
为了更好的理解本方案,下面将首先介绍本申请技术方案的一种应用场景。
本申请提供的神经网络模型中归一化算子的量化方法、装置、电子设备、计算机可读存储介质以及计算机程序产品,旨在解决现有技术的如上技术问题。
下面通过对几个示例性实施方式的描述,对本申请实施例的技术方案以及本申请的技术方案产生的技术效果进行说明。需要指出的是,下述实施方式之间可以相互参考、借鉴或结合,对于不同实施方式中相同的术语、相似的特征以及相似的实施步骤等,不再重复描述。
图1示出了一种终端100通过人脸识别模型对采集到的人脸图像进行识别的场景图。如图1所示,终端100部署有人脸识别模型,其中,人脸识别模型通过服务器200在浮点域中训练获取。图1中将人脸识别模型作为神经网络模型的示例。在其他实施例,神经网络模型也可以是其他模型,例如,语音识别模型,文字识别模型。
需要说明的是,终端100包括但不限于手机、平板电脑、智慧屏、可穿戴设备(例如,手表、手环、头盔、耳机等)、车载设备、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobilepersonalcomputser,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等电子设备中的一种。服务器200可以是单独的服务器,也可以是多个服务器构成的服务器集群。图1中将手机作为终端100的示例。由于人脸识别模型属于资源密集型算法,终端100在使用内置浮点域的人脸识别模型处理人脸图像数据时计算量较大,计算速度较慢。因此,一般需要将人脸识别模型量化,以减少计算量,提高计算速度。
本申请实施例中,人脸图像数据可以是终端100对用户进行拍摄获取的,也可以是预先存储的,还可以是由其他设备传输至终端100,对此不做限制。
在一些实施例中,服务器200会将在浮点域中训练好的人脸识别模型进行量化,得到量化后的人脸识别模型,然后再部署至终端100。
在另一些实施中,将待训练的人脸识别模型部署于终端100中,由终端100对待训练的人脸识别模型在浮点域中进行训练,然后对训练好的人脸识别模型进行量化,得到量化后的人脸识别模型。可以理解的,当终端100使用量化后的人脸识别模型,可以将高精度浮点计算转化为定点计算,从而可以降低计算量,提高计算速度。
本申请实施例中,图1中的人脸识别模型可以包括归一化层和其他层(例如,输入层、激活层、输出层等),其中,归一化层包括归一化算子,例如,InstanceNorm算子,LayerNorm算子,GroupNorm算子,SwitchableNorm算子。归一化层中的归一化算子用于对输入的人脸图像数据相关联的特征数据(即归一化层的输入数据inputs)进行归一化处理。其中,归一化层的输入数据inputs是归一化层前一层(例如激活层)输出的特征数据。
本申请实施例采用对称量化,需要在离线阶段统计每层参数以及激活值的最大最小值,来计算量化参数S。首先归一化norm计算的一般公式为:
outputs=γ*norm+β (6)
其中,输入数据为具有多个维度的特征向量,维度i的特征向量表示为xi,特征向量的长度为N,δ表示浮点输入数据inputs的方差,epsilon表示大于0的极小浮点数(1e-8),μ表示浮点输入数据inputs的均值,norm表示归一化结果,γ和β分别表示缩放参数和平移参数,outputs为浮点输出数据,表示层归一化layerNorm结果,忽略epsilon,合并公式3,4,5可获得公式7:
以下阐述量化阶段及定点前向运算的过程步骤:
假设量化位宽为b,那么公式2中的Qmax=2b-1-1,Qmin=-2b-1
离线量化步骤:
Step 1:分别统计归一化算子中的浮点输出数据outputs的最大值、最小值、浮点缩放参数γ的最大值、最小值,;
Step 2:根据公式7可知,归一化结果norm的最大值、最小值分别是带入公式2中,可知归一化结果的量化系数/>由于量化位宽b和特征向量的长度N是已知的,所以本申请实施例的归一化结果的量化系数normscale可以很容易地获得。
进一步地,本申请实施例计算与N最近的2的次幂数exp=ceil(log2N),这样公式7可以变换为:
经过这样的变化后,为了把公式5中的除以N的运算,变化成右移位操作,这样移位操作代替了除运算能够大大提高性能。考虑到第二移位数exp需要是偶数,所以需要exp=exp+(exp&1)。
需要说明的是,在定点运算时,公式8需要乘以normscale,这样进一步简化为公式9,这样减少了乘以量化系数的运算:
需要注意的是,公式9中的定点运算结果为Q31的格式。
Step2得到的第二移位数exp需要存储,以在在线前向运算时利用。
Step 3:根据浮点缩放参数γ的统计值,带入公式(2)中,可获得缩放参数的量化系数γscale,进一步将浮点缩放参数γ更新为定点缩放参数Qγ:Qγ=γ*γscale
为了在相同的度量上进行加减,平移参数的量化系数βscale=normscalescale,所以定点平移参数Qβ=β*βscale
Step 4:根据公式(6)可得公式(10)、(11)和(12):
上述公式中,第一移位数Noutputs不超过量化位宽b,输出数据的量化系数outputsscale可以将浮点输出数据的最大值和最小值带入公式2中获得,同理,归一化结果的量化系数outputsscale可以根据浮点归一化结果的最大值和最小值带入公式2中获得,因此,基于outputsscale、γscale、normscale可获得公式(12)等式坐标的结果,进一步以第一移位数Noutputs进行移位,即可获得量化系数Moutputs
本申请实施例的定点计算过程如下:
Step 1:对定点输入数据Qinputs取均值,得到定点均值Qμ,基于定点输入数据Qinputs和定点均值Qμ实现公式(13),得到Q31的结果:
需要说明的是,公式(13)中的>>exp表示以第二移位数exp进行移位。
进一步,对Qalpha移16位,获得Q15的结果,公式表示为:Qalpha=Qalpha>>16。
Step2:对公式9进行变形:
Qnorm_tmp=(Qinput-Qμ)*Qalpha (14)
其中,Qnorm_tmp表示初始定点归一化结果,初始定点归一化结果的位宽,相比量化位宽b多了Qalpha所占用的位宽15位。
为了不损失精度,这一步的移动15位合并到公式9中的 需要注意的是,这里的除以/>就是右移动操作,所以把公式(14)的需要右移动的15位位宽合并,这样变化为/> 所以最后只需要把Qnorm_tmp右移(16+exp/2-b)位即得到定点归一化结果Qnorm
Step3:根据公式(15)计算最终结果,也即定点输出数据Qoutputs
Qoutputs=(Qγ*Qnorm+Qβ)*Moutputs/(2^Noutputs) (15)
本申请实施例中提供了一种神经网络模型中归一化算子的量化方法,如图2所示,该方法包括:
S101、确定所述归一化算子的定点输入数据Qinputs、量化位宽b、浮点缩放参数γ、定点缩放参数Qγ、定点平移参数Qβ、浮点输出数据outputs、第一移位数Noutputs以及第二移位数exp;
S102、根据浮点输出数据outputs、量化位宽b、浮点缩放参数γ以及第一移位数Noutputs,获得第一量化系数Moutputs
S103、根据定点输入数据Qinputs、第二移位数exp和量化位宽b,获得定点归一化结果Qnorm
S104、根据定点缩放参数Qγ、定点平移参数Qβ、定点归一化结果Qnorm,获得初始定点输出数据;根据所述第一量化系数Moutputs对所述初始定点输出数据进行量化,将量化结果以所述第一移位数Noutputs进行移位,获得定点输出数据Qoutputs
其中,所述第一移位数Noutputs不超过量化位宽b,所述输入数据为用于表示预设信息的特征向量,所述第二移位数为偶数且2exp为最接近所述特征向量的长度N的2的次幂数。
本申请实施例的方法无需全部求出均值和方差,规避了传统计算均值和方差的方法带来的误差,并且针对部分除运算采用了基于第一移位数和第二移位数进行移位的方式,大大减少了运算量,提高了运算效率。
在上述各实施例的基础上,作为一种可选实施例,根据浮点输出数据outputs、量化位宽b、浮点缩放参数γ以及第一移位数Noutputs,获得第一量化系数Moutputs,包括:
S201、根据浮点输出数据outputs的最大值和最小值间的第一差值以及量化位宽b,确定第二量化系数outputsscale
具体地,本申请实施例将浮点输出数据outputs的最大值、最小值以及量化位宽b,带入公式(2),即可获得浮点输出数据的量化系数,也即第二量化系数outputsscale
S202、根据浮点缩放参数γ的最大值和最小值间的第二差值以及量化位宽b,确定第三量化系数γscale
具体地,本申请实施例将浮点缩放参数γ的最大值和最小值以及量化位宽b,带入公式(2),即可获得缩放参数的量化系数,也即第三量化系数γscale
S203、根据所述长度N以及量化位宽b,确定第四量化系数normscale
根据公式可获得归一化结果的量化系数,也即第四量化系数。
S204、根据第二量化系数outputsscale、第三量化系数γscale和第四量化系数normscale,确定第五量化系数。
具体地,第五量化系数的公式可表示为;也即公式(12)的等式左边。
S205、将所述第五量化系数以所述第一移位数Noutputs进行移位,获得所述第一量化系数Moutputs
在上述各实施例的基础上,作为一种可选实施例,根据定点输入数据Qinputs、第二移位数exp和量化位宽b,获得定点归一化结果Qnorm,包括:
S301、对定点输入数据Qinputs取均值,获得定点均值Qμ
S302、确定定点输入数据Qinputs和定点均值Qμ间的差异程度,将所述差异程度以所述第二移位数exp进行移位,以确定定点方差平方根倒数Qalpha
具体地,本申请实施例可以根据确定定点输入数据Qinputs和定点均值Qμ间的差异程度,之后基于第二移位数exp对差异程度进行移位,将移位后的结果开方后取到回溯,即获得定点方差平方根倒数Qalpha
S303、根据定点输入数据Qinputs、定点均值Qμ以及定点方差平方根倒数Qalpha,确定初始定点归一化结果Qnorm_tmp
本申请实施例可以根据公式(14)获得初始化归一化结果Qnorm_tmp
S304、根据Qalpha的位数和第二移位数exp对所述初始定点归一化结果Qnorm_tmp移位至量化位宽的位数,确定定点归一化结果Qnorm
需要注意的是,Qnorm_tmp表示初始定点归一化结果,初始定点归一化结果的位宽,相比量化位宽b多了Qalpha所占用的位宽15位。
为了不损失精度,这一步的移动15位合并到公式9中的 需要注意的是,这里的除以/>就是右移动操作,所以把公式(14)的需要右移动的15位位宽合并,这样变化为/> 所以最后只需要把Qnorm_tmp右移(16+exp/2-b)位即得到定点归一化结果Qnorm
在上述各实施例的基础上,作为一种可选实施例,定点缩放参数Qγ,包括:
S401、根据浮点缩放参数γ的最大值和最小值间的第三差值以及量化位宽b,确定第三量化系数γscale
S402、根据浮点缩放参数γ以及第三量化系数γscale,确定定点缩放参数Qγ
具体地,本申请实施例根据浮点缩放参数γ的统计值,带入公式(2)中,可获得缩放参数的量化系数γscale,进一步将浮点缩放参数γ更新为定点缩放参数Qγ:Qγ=γ*γscale
在上述各实施例的基础上,作为一种可选实施例,确定定点平移参数Qβ,包括:
S501、根据所述长度N以及量化位宽b,确定归一化结果的量化系数normscale
具体地,本申请实施例根据公式获得归一化结果的量化系数,也即第四量化系数normscale
S502、根据量化系数normscale和量化系数γscale,确定平移参数的量化系数βscale
具体地,根据公式βscale=normscalescale获取平移参数的量化系数,也即第六量化系数βscale
S503、确定浮点平移参数β,根据浮点平移参数β和量化系数βscale,确定定点平移参数Qβ
具体地,根据公式Qβ=β*βscale,确定定点平移参数Qβ
在上述各实施例的基础上,作为一种可选实施例,所述根据定点输入数据Qinputs、定点均值Qμ以及定点方差平方根倒数Qalpha,确定初始定点归一化结果Qnorm_tmp,包括:
确定定点输入数据Qinputs与定点均值Qμ间的第四差值;
将所述第四差值和定点方差平方根倒数Qalpha的乘积,作为所述初始定点归一化结果Qnorm_tmp
本申请实施例提供了一种神经网络模型中归一化算子的量化装置,如图3所示,该神经网络模型中归一化算子的量化装置可以包括:准备模块301、量化系数确定模块302、定点归一化模块303以及输出模块304,其中,
准备模块301,用于确定所述归一化算子的定点输入数据Qinputs、量化位宽b、浮点缩放参数γ、定点缩放参数Qγ、定点平移参数Qβ、浮点输出数据outputs、第一移位数Noutputs以及第二移位数exp;
量化系数确定模块302,用于根据浮点输出数据outputs、量化位宽b、浮点缩放参数γ以及第一移位数Noutputs,获得第一量化系数Moutputs
定点归一化模块303,用于根据定点输入数据Qinputs、第二移位数exp和量化位宽b,获得定点归一化结果Qnorm
输出模块304,用于根据定点缩放参数Qγ、定点平移参数Qβ、定点归一化结果Qnorm,获得初始定点输出数据;根据所述第一量化系数Moutputs对所述初始定点输出数据进行量化,将量化结果以所述第一移位数Noutputs进行移位,获得定点输出数据Qoutputs
其中,所述第一移位数Noutputs不超过量化位宽b,所述输入数据为用于表示预设信息的特征向量,所述第二移位数为偶数且2exp为最接近所述特征向量的长度N的2的次幂数。
本申请实施例的装置可执行本申请实施例所提供的方法,其实现原理相类似,本申请各实施例的装置中的各模块所执行的动作是与本申请各实施例的方法中的步骤相对应的,对于装置的各模块的详细功能描述具体可以参见前文中所示的对应方法中的描述,此处不再赘述。
本申请实施例中提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,该处理器执行上述计算机程序以实现神经网络模型中归一化算子的量化方法的步骤,与相关技术相比可实现:本申请实施例无需全部求出均值和方差,规避了传统计算均值和方差的方法带来的误差,并且针对部分除运算采用了基于第一移位数和第二移位数进行移位的方式,大大减少了运算量,提高了运算效率。
在一个可选实施例中提供了一种电子设备,如图4所示,图4所示的电子设备4000包括:处理器4001和存储器4003。其中,处理器4001和存储器4003相连,如通过总线4002相连。可选地,电子设备4000还可以包括收发器4004,收发器4004可以用于该电子设备与其他电子设备之间的数据交互,如数据的发送和/或数据的接收等。需要说明的是,实际应用中收发器4004不限于一个,该电子设备4000的结构并不构成对本申请实施例的限定。
处理器4001可以是CPU(Central Procesing Unit,中央处理器),通用处理器,DSP(Digital Signal Procesor,数据信号处理器),ASIC(Application Specific IntegratedCircuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器4001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线4002可包括一通路,在上述组件之间传送信息。总线4002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线4002可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器4003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Acces Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质、其他磁存储设备、或者能够用于携带或存储计算机程序并能够由计算机读取的任何其他介质,在此不做限定。
存储器4003用于存储执行本申请实施例的计算机程序,并由处理器4001来控制执行。处理器4001用于执行存储器4003中存储的计算机程序,以实现前述方法实施例所示的步骤。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
本申请实施例还提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”、“1”、“2”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除图示或文字描述以外的顺序实施。
应该理解的是,虽然本申请实施例的流程图中通过箭头指示各个操作步骤,但是这些步骤的实施顺序并不受限于箭头所指示的顺序。除非本文中有明确的说明,否则在本申请实施例的一些实施场景中,各流程图中的实施步骤可以按照需求以其他的顺序执行。此外,各流程图中的部分或全部步骤基于实际的实施场景,可以包括多个子步骤或者多个阶段。这些子步骤或者阶段中的部分或全部可以在同一时刻被执行,这些子步骤或者阶段中的每个子步骤或者阶段也可以分别在不同的时刻被执行。在执行时刻不同的场景下,这些子步骤或者阶段的执行顺序可以根据需求灵活配置,本申请实施例对此不限制。
以上所述仅是本申请部分实施场景的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请的方案技术构思的前提下,采用基于本申请技术思想的其他类似实施手段,同样属于本申请实施例的保护范畴。

Claims (10)

1.一种神经网络模型中归一化算子的量化方法,其特征在于,包括:
确定所述归一化算子的定点输入数据Qinputs、量化位宽b、浮点缩放参数γ、定点缩放参数Qγ、定点平移参数Qβ、浮点输出数据outputs、第一移位数Noutputs以及第二移位数exp;
根据浮点输出数据outputs、量化位宽b、浮点缩放参数γ以及第一移位数Noutputs,获得第一量化系数Moutputs
根据定点输入数据Qinputs、第二移位数exp和量化位宽b,获得定点归一化结果Qnorm
根据定点缩放参数Qγ、定点平移参数Qβ、定点归一化结果Qnorm,获得初始定点输出数据;根据所述第一量化系数Moutputs对所述初始定点输出数据进行量化,将量化结果以所述第一移位数Noutputs进行移位,获得定点输出数据Qoutputs
其中,所述第一移位数Noutputs不超过量化位宽b,所述输入数据为用于表示预设信息的特征向量,所述第二移位数为偶数且2exp为最接近所述特征向量的长度N的2的次幂数。
2.根据权利要求1所述的方法,其特征在于,所述根据浮点输出数据outputs、量化位宽b、浮点缩放参数γ以及第一移位数Noutputs,获得第一量化系数Moutputs,包括:
根据浮点输出数据outputs的最大值和最小值间的第一差值以及量化位宽b,确定第二量化系数outputsscale
根据浮点缩放参数γ的最大值和最小值间的第二差值以及量化位宽b,确定第三量化系数γscale
根据所述长度N以及量化位宽b,确定第四量化系数normscale
根据第二量化系数outputsscale、第三量化系数γscale和第四量化系数normscale,确定第五量化系数;
将所述第五量化系数以所述第一移位数Noutputs进行移位,获得所述第一量化系数Moutputs
3.根据权利要求1所述的方法,其特征在于,所述根据定点输入数据Qinputs、第二移位数exp和量化位宽b,获得定点归一化结果Qnorm,包括:
对定点输入数据Qinputs取均值,获得定点均值Qμ
确定定点输入数据Qinputs和定点均值Qμ间的差异程度,将所述差异程度以所述第二移位数exp进行移位,以确定定点方差平方根倒数Qalpha
根据定点输入数据Qinputs、定点均值Qμ以及定点方差平方根倒数Qalpha,确定初始定点归一化结果Qnorm_tmp
根据Qalpha的位数和第二移位数exp对所述初始定点归一化结果Qnorm_tmp移位至量化位宽的位数,确定定点归一化结果Qnorm
4.根据权利要求1所述的方法,其特征在于,所述确定定点缩放参数Qγ,包括:
根据浮点缩放参数γ的最大值和最小值间的第三差值以及量化位宽b,确定第三量化系数γscale
根据浮点缩放参数γ以及第三量化系数γscale,确定定点缩放参数Qγ
5.根据权利要求4所述的方法,其特征在于,所述确定定点平移参数Qβ,包括:
根据所述长度N以及量化位宽b,确定第四量化系数normscale
根据量化系数normscale和量化系数γscale,确定第六量化系数βscale
确定浮点平移参数β,根据浮点平移参数β和量化系数βscale,确定定点平移参数Qβ
6.根据权利要求3所述的方法,其特征在于,所述根据定点输入数据Qinputs、定点均值Qμ以及定点方差平方根倒数Qalpha,确定初始定点归一化结果Qnorm_tmp,包括:
确定定点输入数据Qinputs与定点均值Qμ间的第四差值;
将所述第四差值和定点方差平方根倒数Qalpha的乘积,作为所述初始定点归一化结果Qnorm_tmp
7.根据权利要求1-6任意一项所述的方法,其特征在于,所述预设信息为图像、文本、音频、环境信息中的任意一者。
8.一种神经网络模型中归一化算子的量化装置,其特征在于,包括:
准备模块,用于确定所述归一化算子的定点输入数据Qinputs、量化位宽b、浮点缩放参数γ、定点缩放参数Qγ、定点平移参数Qβ、浮点输出数据outputs、第一移位数Noutputs以及第二移位数exp;
量化系数确定模块,用于根据浮点输出数据outputs、量化位宽b、浮点缩放参数γ以及第一移位数Noutputs,获得第一量化系数Moutputs
定点归一化模块,用于根据定点输入数据Qinputs、第二移位数exp和量化位宽b,获得定点归一化结果Qnorm
输出模块,用于根据定点缩放参数Qγ、定点平移参数Qβ、定点归一化结果Qnorm,获得初始定点输出数据;根据所述第一量化系数Moutputs对所述初始定点输出数据进行量化,将量化结果以所述第一移位数Noutputs进行移位,获得定点输出数据Qoutputs
其中,所述第一移位数Noutputs不超过量化位宽b,所述输入数据为用于表示预设信息的特征向量,所述第二移位数为偶数且2exp为最接近所述特征向量的长度N的2的次幂数。
9.一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求1-7任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7任一项所述方法的步骤。
CN202310955099.XA 2023-07-31 2023-07-31 神经网络模型中归一化算子的量化方法、装置、电子设备 Pending CN116956989A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310955099.XA CN116956989A (zh) 2023-07-31 2023-07-31 神经网络模型中归一化算子的量化方法、装置、电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310955099.XA CN116956989A (zh) 2023-07-31 2023-07-31 神经网络模型中归一化算子的量化方法、装置、电子设备

Publications (1)

Publication Number Publication Date
CN116956989A true CN116956989A (zh) 2023-10-27

Family

ID=88446130

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310955099.XA Pending CN116956989A (zh) 2023-07-31 2023-07-31 神经网络模型中归一化算子的量化方法、装置、电子设备

Country Status (1)

Country Link
CN (1) CN116956989A (zh)

Similar Documents

Publication Publication Date Title
CN105844330B (zh) 神经网络处理器的数据处理方法及神经网络处理器
US10491239B1 (en) Large-scale computations using an adaptive numerical format
WO2019238029A1 (zh) 卷积神经网络***和卷积神经网络量化的方法
CN110929865B (zh) 网络量化方法、业务处理方法及相关产品
CN109840589A (zh) 一种在fpga上运行卷积神经网络的方法、装置及***
CN110036384B (zh) 信息处理设备和信息处理方法
JP7231731B2 (ja) 適応量子化方法及び装置、デバイス、媒体
WO2021135715A1 (zh) 一种图像压缩方法及装置
US20220004884A1 (en) Convolutional Neural Network Computing Acceleration Method and Apparatus, Device, and Medium
CN111240746B (zh) 一种浮点数据反量化及量化的方法和设备
CN110888623B (zh) 数据转换方法、乘法器、加法器、终端设备及存储介质
CN112561050B (zh) 一种神经网络模型训练方法及装置
CN114612996A (zh) 神经网络模型的运行方法、介质、程序产品以及电子设备
CN107220025B (zh) 处理乘加运算的装置和处理乘加运算的方法
CN113780523A (zh) 图像处理方法、装置、终端设备及存储介质
CN112200299B (zh) 神经网络计算装置、数据处理方法及装置
CN116956989A (zh) 神经网络模型中归一化算子的量化方法、装置、电子设备
CN111767993A (zh) 卷积神经网络int8量化方法、***、设备及存储介质
CN116306709A (zh) 数据处理方法、介质及电子设备
CN112418388A (zh) 一种实现深度卷积神经网络处理的方法及装置
JP2021033994A (ja) テキスト処理方法、装置、デバイス及びコンピュータ読み取り可能な記憶媒体
CN111930670B (zh) 异构智能处理量化装置、量化方法、电子设备及存储介质
CN115705486A (zh) 量化模型的训练方法、装置、电子设备和可读存储介质
KR20230076641A (ko) 부동-소수점 연산을 위한 장치 및 방법
CN110574024A (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