CN111191783A - 一种自适应量化方法及装置、设备、介质 - Google Patents

一种自适应量化方法及装置、设备、介质 Download PDF

Info

Publication number
CN111191783A
CN111191783A CN201811358824.0A CN201811358824A CN111191783A CN 111191783 A CN111191783 A CN 111191783A CN 201811358824 A CN201811358824 A CN 201811358824A CN 111191783 A CN111191783 A CN 111191783A
Authority
CN
China
Prior art keywords
quantization
coefficient
adaptive
point number
offset
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.)
Granted
Application number
CN201811358824.0A
Other languages
English (en)
Other versions
CN111191783B (zh
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.)
Beijing Sisheng Technology Co ltd
Original Assignee
Canaan Creative 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 Canaan Creative Co Ltd filed Critical Canaan Creative Co Ltd
Priority to CN201811358824.0A priority Critical patent/CN111191783B/zh
Priority to JP2021527128A priority patent/JP7231731B2/ja
Priority to PCT/CN2019/106084 priority patent/WO2020098368A1/zh
Priority to US17/294,432 priority patent/US20220091821A1/en
Priority to KR1020217018288A priority patent/KR20210093952A/ko
Priority to EP19883762.7A priority patent/EP3882824A4/en
Publication of CN111191783A publication Critical patent/CN111191783A/zh
Application granted granted Critical
Publication of CN111191783B publication Critical patent/CN111191783B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • 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/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49942Significance control
    • G06F7/49947Rounding
    • 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/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Neurology (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Complex Calculations (AREA)

Abstract

本申请公开了自适应量化方法及装置、设备、介质。该方法包括:分别对多个原始输入张量进行第一量化处理,得到定点数形式的输入张量,以及计算该定点数形式的输入张量的量化偏移;计算多个原始输入张量对应的综合的量化偏移,以及自适应量化系数;根据所述自适应量化系数和所述综合的量化偏移,对所述定点数形式的输入张量及其量化偏移进行第二量化处理,得到量化结果。本申请有利于提高量化精度,提高卷积神经网络性能,降低硬件功耗和设计难度。

Description

一种自适应量化方法及装置、设备、介质
技术领域
本申请涉及机器学习技术领域,尤其涉及一种自适应量化方法及装置、设备、介质。
背景技术
卷积神经网络在计算机视觉、语音处理、机器学习、图像识别、人脸识别等众多领域取得了巨大的突破,显著地提高了相应的机器算法在图像分类、目标检测和语音识别等多种任务中的性能,并且在互联网、视频监控等行业中得到了广泛应用。
大容量、高复杂度的卷积神经网络能够更全面地对数据进行学习,从而更准确地识别数据,当然,随着网络层数与参数数量的增加,计算和存储代价也会大幅增长。
在现有技术中,使用卷积神经网络对数据进行处理时,通常直接使用浮点数进行计算,但是,这种方式计算速度慢,且硬件功耗大。
发明内容
本申请实施例提供一种自适应量化方法及装置、设备、介质,用以解决现有技术中的如下技术问题:使用卷积神经网络对数据进行处理时,通常直接使用浮点数进行卷积计算,但是,这种方式计算速度慢,且硬件功耗大。
本申请实施例采用下述技术方案:
一种自适应量化方法,包括:
分别对多个原始输入张量进行第一量化处理,得到定点数形式的输入张量,以及计算该定点数形式的输入张量的量化偏移;
计算多个原始输入张量对应的综合的量化偏移,以及自适应量化系数;
根据所述自适应量化系数和所述综合的量化偏移,对所述定点数形式的输入张量及其量化偏移进行第二量化处理,得到量化结果。
可选地,所述分别对多个原始输入张量进行第一量化处理,得到定点数形式的输入张量,以及计算该定点数形式的输入张量的量化偏移,具体包括:
针对多个原始输入张量中的每个原始输入张量,执行:确定该原始输入张量的最值,根据该最值,对该原始输入张量进行第一量化处理,得到定点数形式的输入张量,以及计算该定点数形式的输入张量的量化偏移。
可选地,所述计算多个原始输入张量对应的综合的量化偏移,以及自适应量化系数,具体包括:
根据所述多个原始输入张量分别的最值,确定综合的最值;
根据所述综合的最值,计算综合的量化缩放系数和量化偏移;
根据所述综合的量化缩放系数和所述第一量化处理过程中使用的量化缩放系数,计算自适应量化系数。
可选地,所述多个原始输入张量来自同一个算数逻辑单元ALU,所述方法是针对多个不同的ALU中的每个ALU执行的。
可选地,所述根据该最值,对该原始输入张量进行第一量化处理,具体包括:
根据该最值中的最小值和指定的量化值域的最小值,利用第一函数,对该原始输入张量进行第一量化处理;
所述第一函数包含相应的量化缩放系数,以及浮点数转定点数的转换逻辑。
可选地,所述计算该定点数形式的输入张量的量化偏移,具体包括:
根据该最值中的最小值和所述指定的量化值域的最小值,利用第二函数,计算该定点数形式的输入张量的量化偏移;
所述第二函数包含所述相应的量化缩放系数,以及浮点数转定点数的转换逻辑。
可选地,所述相应的量化缩放系数根据该最值和/或所述指定的量化值域的最值计算得到。
可选地,所述根据所述综合的最值,计算综合的量化缩放系数和量化偏移,具体包括:
根据所述综合的最值和指定的量化值域的最值,计算综合的量化缩放系数和量化偏移。
可选地,所述根据所述综合的量化缩放系数和所述第一量化处理过程中使用的量化缩放系数,计算自适应量化系数,具体包括:
利用对数坐标系,对所述综合的量化缩放系数与所述第一量化处理过程中使用的量化缩放系数之间的比例关系进行转换;
根据所述转换后的比例关系,计算一个或者多个自适应量化系数;
其中,在所述计算的过程中,使用了浮点数转定点数的转换逻辑和/或用于保留精度的系数。
可选地,所述相应的量化缩放系数按照公式
Figure BDA0001866765660000031
计算得到;
其中,
Figure BDA0001866765660000032
表示原始输入张量Xi相应的量化缩放系数,Qlow表示所述指定的量化值域的最小值,Qhigh表示所述指定的量化值域的最大值,Xmini表示Xi的最小值,Xmaxi表示Xi的最大值。
可选地,所述第一函数表示为:
Figure BDA0001866765660000033
其中,
Figure BDA0001866765660000034
表示所述第一量化处理后的原始输入张量Xi,Xmini表示Xi的最小值,
Figure BDA0001866765660000035
表示Xi相应的量化缩放系数,Qlow表示所述指定的量化值域的最小值,round表示将浮点数四舍五入为定点数的函数。
可选地,所述第二函数表示为:
Figure BDA0001866765660000036
其中,
Figure BDA0001866765660000041
表示为所述第一量化处理后的Xi计算的量化偏移,Xmini表示Xi的最小值,
Figure BDA0001866765660000042
表示Xi相应的量化缩放系数,Qlow表示所述量化值域的最小值,round表示将浮点数四舍五入为定点数的函数。
可选地,所述多个自适应量化系数包括第一自适应量化系数和第二自适应量化系数;
所述第一自适应量化系数是通过利用对数坐标系,对所述比例关系进行转换,再使用所述保留精度的系数进行精度调整,计算得到的,和/或
所述第二自适应量化系数是通过利用指数坐标系,根据所述比例关系和所述第一自适应量化系数,进行反向转换,计算得到的。
可选地,所述第一量化处理是根据N进制数的指定位数进行量化的,按照如下公式,计算所述第一自适应量化系数shifti
Figure BDA0001866765660000043
其中,
Figure BDA0001866765660000044
表示原始输入张量Xi相应的量化缩放系数,Sy表示所述综合的量化缩放系数,α表示所期望保留精度的N进制位数,ceil表示向上取最小整数的函数。
可选地,所述第一量化处理是根据N进制数的指定位数进行量化的,按照如下公式,计算所述第二自适应量化系数ri
Figure BDA0001866765660000045
其中,
Figure BDA0001866765660000046
表示原始输入张量Xi相应的量化缩放系数,Sy表示所述综合的量化缩放系数,shifti表示所述第一自适应量化系数,round表示将浮点数四舍五入为定点数的函数。
可选地,所述第一量化处理是根据N进制数的指定位数进行量化的,所述根据所述自适应量化系数和所述综合的量化偏移,对所述定点数形式的输入张量及其量化偏移进行第二量化处理,得到量化结果,具体包括:
按照如下公式,对所述定点数形式的输入张量及其量化偏移进行第二量化处理,得到量化结果
Figure BDA0001866765660000051
Figure BDA0001866765660000052
其中,shifti表示所述第一自适应量化系数,ri表示所述第二自适应量化系数,
Figure BDA0001866765660000053
表示所述第一量化处理后的原始输入张量Xi
Figure BDA0001866765660000054
表示为所述第一量化处理后的Xi计算的量化偏移,By表示所述综合的量化偏移。
一种自适应量化装置,包括:
第一量化模块,分别对多个原始输入张量进行第一量化处理,得到定点数形式的输入张量,以及计算该定点数形式的输入张量的量化偏移;
自适应量化系数计算模块,计算多个原始输入张量对应的综合的量化偏移,以及自适应量化系数;
第二量化模块,根据所述自适应量化系数和所述综合的量化偏移,对所述定点数形式的输入张量及其量化偏移进行第二量化处理,得到量化结果。
可选地,所述第一量化模块分别对多个原始输入张量进行第一量化处理,得到定点数形式的输入张量,以及计算该定点数形式的输入张量的量化偏移,具体包括:
所述第一量化模块针对多个原始输入张量中的每个原始输入张量,执行:确定该原始输入张量的最值,根据该最值,对该原始输入张量进行第一量化处理,得到定点数形式的输入张量,以及计算该定点数形式的输入张量的量化偏移。
可选地,所述自适应量化系数计算模块计算多个原始输入张量对应的综合的量化偏移,以及自适应量化系数,具体包括:
所述自适应量化系数计算模块根据所述多个原始输入张量分别的最值,确定综合的最值;
根据所述综合的最值,计算综合的量化缩放系数和量化偏移;
根据所述综合的量化缩放系数和所述第一量化处理过程中使用的量化缩放系数,计算自适应量化系数。
可选地,所述多个原始输入张量来自同一个算数逻辑单元ALU,所述装置是针对多个不同的ALU中的每个ALU执行的。
可选地,所述第一量化模块根据该最值,对该原始输入张量进行第一量化处理,具体包括:
所述第一量化模块根据该最值中的最小值和指定的量化值域的最小值,利用第一函数,对该原始输入张量进行第一量化处理;
所述第一函数包含相应的量化缩放系数,以及浮点数转定点数的转换逻辑。
可选地,所述第一量化模块计算该定点数形式的输入张量的量化偏移,具体包括:
所述第一量化模块根据该最值中的最小值和所述指定的量化值域的最小值,利用第二函数,计算该定点数形式的输入张量的量化偏移;
所述第二函数包含所述相应的量化缩放系数,以及浮点数转定点数的转换逻辑。
可选地,所述相应的量化缩放系数根据该最值和/或所述指定的量化值域的最值计算得到。
可选地,所述自适应量化系数计算模块根据所述综合的最值,计算综合的量化缩放系数和量化偏移,具体包括:
所述自适应量化系数计算模块根据所述综合的最值和指定的量化值域的最值,计算综合的量化缩放系数和量化偏移。
可选地,所述自适应量化系数计算模块根据所述综合的量化缩放系数和所述第一量化处理过程中使用的量化缩放系数,计算自适应量化系数,具体包括:
所述自适应量化系数计算模块利用对数坐标系,对所述综合的量化缩放系数与所述第一量化处理过程中使用的量化缩放系数之间的比例关系进行转换;
根据所述转换后的比例关系,计算一个或者多个自适应量化系数;
其中,在所述计算的过程中,使用了浮点数转定点数的转换逻辑和/或用于保留精度的系数。
可选地,所述相应的量化缩放系数按照公式
Figure BDA0001866765660000071
计算得到;
其中,
Figure BDA0001866765660000072
表示原始输入张量Xi相应的量化缩放系数,Qlow表示所述指定的量化值域的最小值,Qhigh表示所述指定的量化值域的最大值,Xmini表示Xi的最小值,Xmaxi表示Xi的最大值。
可选地,所述第一函数表示为:
Figure BDA0001866765660000073
其中,
Figure BDA0001866765660000074
表示所述第一量化处理后的原始输入张量Xi,Xmini表示Xi的最小值,
Figure BDA0001866765660000075
表示Xi相应的量化缩放系数,Qlow表示所述指定的量化值域的最小值,round表示将浮点数四舍五入为定点数的函数。
可选地,所述第二函数表示为:
Figure BDA0001866765660000076
其中,
Figure BDA0001866765660000077
表示为所述第一量化处理后的Xi计算的量化偏移,Xmini表示Xi的最小值,
Figure BDA0001866765660000078
表示Xi相应的量化缩放系数,Qlow表示所述量化值域的最小值,round表示将浮点数四舍五入为定点数的函数。
可选地,所述多个自适应量化系数包括第一自适应量化系数和第二自适应量化系数;
所述第一自适应量化系数是所述自适应量化系数计算模块通过利用对数坐标系,对所述比例关系进行转换,再使用所述保留精度的系数进行精度调整,计算得到的,和/或
所述第二自适应量化系数是所述自适应量化系数计算模块通过利用指数坐标系,根据所述比例关系和所述第一自适应量化系数,进行反向转换,计算得到的。
可选地,所述第一量化处理是根据N进制数的指定位数进行量化的,所述自适应量化系数计算模块按照如下公式,计算所述第一自适应量化系数shifti
Figure BDA0001866765660000081
其中,
Figure BDA0001866765660000082
表示原始输入张量Xi相应的量化缩放系数,Sy表示所述综合的量化缩放系数,α表示所期望保留精度的N进制位数,ceil表示向上取最小整数的函数。
可选地,所述第一量化处理是根据N进制数的指定位数进行量化的,所述自适应量化系数计算模块按照如下公式,计算所述第二自适应量化系数ri
Figure BDA0001866765660000083
其中,
Figure BDA0001866765660000084
表示原始输入张量Xi相应的量化缩放系数,Sy表示所述综合的量化缩放系数,shifti表示所述第一自适应量化系数,round表示将浮点数四舍五入为定点数的函数。
可选地,所述第一量化处理是根据N进制数的指定位数进行量化的,所述第二量化模块根据所述自适应量化系数和所述综合的量化偏移,对所述定点数形式的输入张量及其量化偏移进行第二量化处理,得到量化结果,具体包括:
所述第二量化模块按照如下公式,对所述定点数形式的输入张量及其量化偏移进行第二量化处理,得到量化结果
Figure BDA0001866765660000085
Figure BDA0001866765660000086
其中,shifti表示所述第一自适应量化系数,ri表示所述第二自适应量化系数,
Figure BDA0001866765660000087
表示所述第一量化处理后的原始输入张量Xi
Figure BDA0001866765660000088
表示为所述第一量化处理后的Xi计算的量化偏移,By表示所述综合的量化偏移。
一种自适应量化设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
分别对多个原始输入张量进行第一量化处理,得到定点数形式的输入张量,以及计算该定点数形式的输入张量的量化偏移;
计算多个原始输入张量对应的综合的量化偏移,以及自适应量化系数;
根据所述自适应量化系数和所述综合的量化偏移,对所述定点数形式的输入张量及其量化偏移进行第二量化处理,得到量化结果。
一种自适应量化非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
分别对多个原始输入张量进行第一量化处理,得到定点数形式的输入张量,以及计算该定点数形式的输入张量的量化偏移;
计算多个原始输入张量对应的综合的量化偏移,以及自适应量化系数;
根据所述自适应量化系数和所述综合的量化偏移,对所述定点数形式的输入张量及其量化偏移进行第二量化处理,得到量化结果。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:利用浮点数转定点数的转换逻辑,以及至少部分步骤能够分块并行执行的自适应量化处理,有利于提高量化精度,提高卷积神经网络性能,降低硬件功耗和设计难度。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请的一些实施例提供的一种自适应量化方法的流程示意图;
图2为本申请的一些实施例提供的图1中的自适应量化方法的一种详细流程示意图;
图3为本申请的一些实施例提供的对应于图1的一种自适应量化装置的结构示意图;
图4为本申请的一些实施例提供的对应于图1的一种自适应量化设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
卷积神经网络目前常用于进行图像处理,在处理过程中会进行较为复杂的计算,主要包括卷积计算、批标准化计算、激活计算等。本申请提供了自适应量化方案,可以用于对原始的数据进行简化处理,再进行上面的计算,而不是直接利用浮点数进行上面的计算。下面对本申请的方案进行详细说明。
图1为本申请的一些实施例提供的一种自适应量化方法的流程示意图。在该流程中,从设备角度而言,执行主体可以是一个或者多个计算设备,比如,基于卷积神经网络的单个机器学习服务器、机器学习服务器集群等,从程序角度而言,执行主体相应地可以是搭载于这些计算设备上的程序,比如,基于卷积神经网络的神经网络建模平台、图像处理平台等,更具体地,可以是这类平台上所使用的卷积神经网络中包含的一个或者多个神经元。
图1中的流程可以包括以下步骤:
S102:分别对多个原始输入张量进行第一量化处理,得到定点数形式的输入张量,以及计算该定点数形式的输入张量的量化偏移。
在本申请的一些实施例中,第一量化处理的具体实施方式可以是多样的。比如,根据原始输入张量的最值,进行均匀量化;或者,根据原始输入张量的分布,进行非均匀量化;等等。
S104:计算多个原始输入张量对应的综合的量化偏移,以及自适应量化系数。
在本申请的一些实施例中,综合的量化偏移可以是根据步骤S102中得到的各定点数形式的输入张量的量化偏移计算得到的,也可以是至少不全依赖于该量化偏移,而根据原始输入张量的最值等其他参数计算得到的,等等。
S106:根据所述自适应量化系数和所述综合的量化偏移,对所述定点数形式的输入张量及其量化偏移进行第二量化处理,得到量化结果。
更具体地,本申请的一些实施例还提供了图1中的自适应量化方法的一种详细流程示意图,如图2所示。
图2中的流程可以包括以下步骤:
S202:针对多个原始输入张量中的每个原始输入张量,执行:确定该原始输入张量的最值,根据该最值,对该原始输入张量进行第一量化处理,得到定点数形式的输入张量,以及计算该定点数形式的输入张量的量化偏移。
在本申请的一些实施例中,对于卷积神经网络,原始输入张量一般表示为向量或者矩阵,其中的元素往往是浮点数形式的。原始输入张量可以是整个卷积神经网络的输入,也可以是卷积神经网络中任意神经元的输入,也可以是任意神经元内处理逻辑的中间输出等。
为了便于描述,下面一些实施例主要以下面的场景为例进行说明:运行卷积神经网络的设备包含有多个算数逻辑单元(Arithmetic Logic Unit,ALU),可以由ALU执行卷积神经网络中常规的计算,可以将每个ALU在指定的一个或者多个计算阶段输出的数据作为原始输入张量。图1中的流程可以是针对多个不同的ALU中的每个ALU执行的,相应地,步骤S202中的多个原始输入张量来自同一个ALU,在步骤S202中,可以并行地针对这多个原始输入张量分别执行本申请的方案中的一些动作,如此,有利于加快整体的处理速度,效率较高。
在本申请的一些实施例中,对于可能是浮点数形式的原始输入张量,通过第一量化处理,执行了一些近似的处理以实现简化。该近似的处理至少包括量化处理,在量化处理的过程中,还会进行浮点数转定点数的转换处理等。在第一量化处理的过程中,会使用相应的量化缩放系数进行量化,当然,还可以使用一些额外的项或者系数进行附加的调节。
在本申请的一些实施例中,量化缩放系数主要决定了对被量化对象的变换尺度。量化缩放系数的计算方式可以是多样的,比如,根据指定的量化值域和/或被量化对象本身的值域计算得到。浮点数转定点数的转换逻辑也可以是多样的,比如,通过四舍五入处理转换,通过直接舍去尾数转换等。
在本申请的一些实施例中,量化偏移可以是适应于当前的原始输入张量而动态变化的。量化偏移用于对步骤S202中第一量化处理后得到的初步量化结果进一步地自适应调整,以使得调整后得到的量化结果更加接近原始数据,从而有利于提高计算精度。量化偏移的计算方式可以是多样的,比如,根据量化缩放系数和/或指定的量化值域和/或被量化对象本身的值域计算得到。
S204:根据所述多个原始输入张量分别的最值,确定综合的最值。
在本申请的一些实施例中,通过步骤S204及其后续步骤,能够对这多个原始输入张量归一化量纲,基于归一化量纲的结果,得到更为精确的量化结果。
在本申请的一些实施例中,最值具体可以指最大值和/或最小值。可以分别针对每个ALU,求其对应的多个原始输入张量综合的最值,为便于描述,可以将该综合的最值对应的值域称为局部值域,这里的“局部”所相对的“全部”可以指:全部ALU对应的全部的原始输入张量。
确定综合的最值的方式可以是多样的。比如,将多个原始输入张量分别的最值中的最值直接作为综合的最值;或者,可以对多个原始输入张量分别的最值取均值,作为综合的最值;等等。
S206:根据所述综合的最值,计算综合的量化缩放系数和量化偏移。
在本申请的一些实施例中,可以将该综合的最值替换步骤S202中的最值,再参照步骤S202中的方案,计算综合的量化缩放系数和量化偏移。或者,也可以采用不同于步骤S202中的方案进行计算。
S208:根据所述综合的量化缩放系数和所述第一量化处理过程中使用的量化缩放系数,计算自适应量化系数。
在本申请的一些实施例中,在自适应量化系数的计算过程中,归一化量纲后,可以进一步地进行近似的处理,以更精确地控制量化精度。自适应量化系数可以有一个或者多个。
S210:根据所述自适应量化系数和所述综合的量化偏移,对所述定点数形式的输入张量及其量化偏移进行第二量化处理,得到量化结果。
在本申请的一些实施例中,基于第一量化处理和第二量化处理,相当于对原始输入张量分两步进行了量化,相比于一步完成量化,有助于在量化位数有限的情况下降低量化精度损失,提升算法性能。
通过图1和图2的方法,利用浮点数转定点数的转换逻辑,以及至少部分步骤能够分块并行执行的自适应量化处理,有利于提高量化精度,提高卷积神经网络性能,降低硬件功耗和设计难度。
基于图1和图2的方法,本申请的一些实施例还提供了该方法的一些具体实施方案,以及扩展方案,下面进行说明。
在本申请的一些实施例中,最值包括最小值和最大值中的至少一个,可以通过遍历原始输入张量中的各元素确定,可以将最小的元素作为最小值,最大的元素作为最大值。
在本申请的一些实施例中,量化值域的最值可以根据指定的量化位数计算得到。量化位数通常是2进制位数的,比如,8位、16位或者32位等2进制数,一般地,位数越高,量化精度也越高。
下面均假定第一量化处理是根据N进制数的指定位数进行量化的,指定的量化位数为N进制数的量化位数w。比如,可以按照如下公式计算指定的量化值域的最值:Qlow=-Nw -1;Qhigh=Nw-1-1;其中,Qlow表示指定的量化值域的最小值,Qhigh表示指定的量化值域的最大值,N一般为2。该例中,考虑了负值,在实际应用中,也可以只取正值的值域。
在本申请的一些实施例中,量化缩放系数可以是基于均匀量化或者非均匀量化的方式计算的,以均匀量化方式计算为例,则比如:
假定针对ALU,有M个量化模块并行地处理该ALU输出的各原始输入张量,将当前输入第i个ALU的输出记作原始输入张量Xi,遍历Xi求得其最小值和最大值分别记作Xmini、Xmaxi,Xi相应的量化缩放系数(记作
Figure BDA0001866765660000141
)比如可以按照公式
Figure BDA0001866765660000142
计算得到。
若以非均匀量化方式定义,比如,可以在上例公式中再加入包含当前的Xi的系数或者附加项等。上例中的一些参数在下面也会用到,简明起见,不再重复解释参数含义。
在本申请的一些实施例中,对于步骤S202,根据该最值,对该原始输入张量进行第一量化处理,具体比如包括:根据该最值中的最小值和指定的量化值域的最小值,利用第一函数,对该原始输入张量进行第一量化处理;第一函数包含相应的量化缩放系数,以及浮点数转定点数的转换逻辑。进一步地,计算该定点数形式的输入张量的量化偏移,具体可以包括:根据该最值中的最小值和指定的量化值域的最小值,利用第二函数,计算该定点数形式的输入张量的量化偏移;第二函数包含相应的量化缩放系数,以及浮点数转定点数的转换逻辑。
在本申请的一些实施例中,对于第一函数和/或第二函数,在其包含的相应的量化缩放系数以外,还可以包含指定的量化值域的最小值,以及所进行量化处理的对象的最小值等其他因子。
更直观地,本申请提供了一种实际应用场景下,适用的第一函数和第二函数作为示例。
第一函数比如表示为:
Figure BDA0001866765660000151
第二函数比如表示为:
Figure BDA0001866765660000152
其中,
Figure BDA0001866765660000153
表示第一量化处理后的Xi,round表示将浮点数四舍五入为定点数的函数,
Figure BDA0001866765660000154
表示为
Figure BDA0001866765660000155
计算的量化偏移。可以将round替换为其他能够实现浮点数转定点数的函数。
在本申请的一些实施例中,通过步骤S202,得到了对多个原始输入张量分别的处理结果,假定后续步骤由一个能够实现归一化量纲的功能逻辑层执行,称为Same Layer。针对某个ALU,假定M个量化模块处理其各原始输入张量,得到定点数形式的输入张量分别记作
Figure BDA0001866765660000156
为其计算的量化偏移分别记作
Figure BDA0001866765660000157
各原始输入张量的最小值分别记作Xmin1~XminM,最大值分别记作Xmax1~XmaxM,各原始输入张量相应的量化缩放系数分别记作
Figure BDA0001866765660000158
将这些数据输入Same Layer进行处理,具体处理过程见下面一些实施例。
遍历Xmin1~XminM,获得其中的最小值作为综合的最小值,记作Ymin,遍历Xmax1~XmaxM,求得其中的最大值作为综合的最大值,记作Ymax,综合的最小值和综合的最大值即构成综合的最值。
进一步地,对于步骤S206,根据综合的最值,计算综合的量化缩放系数和量化偏移,具体可以包括:根据综合的最值和指定的量化值域的最值,计算综合的量化缩放系数和量化偏移。比如,将综合的量化缩放系数记作Sy,可以按照公式
Figure BDA0001866765660000159
计算得到,将综合的量化偏移记作By,可以按照公式By=round[-Sy·Ymin]+Qlow计算得到。
在本申请的一些实施例中,对于步骤S208,根据综合的量化缩放系数和第一量化处理过程中使用的量化缩放系数,计算自适应量化系数,具体可以包括:利用对数坐标系,对所述综合的量化缩放系数与所述第一量化处理过程中使用的量化缩放系数之间的比例关系进行转换;根据所述转换后的比例关系,计算一个或者多个自适应量化系数;其中,在计算的过程中,使用了浮点数转定点数的转换逻辑和/或用于保留精度的系数。
进一步地,假定计算得到多个自适应量化系数,包括第一自适应量化系数和第二自适应量化系数,第一自适应量化系数是通过利用对数坐标系,对所述比例关系进行转换(求对数),再使用保留精度的系数进行精度调整,计算得到的,和/或第二自适应量化系数是通过利用指数坐标系,根据该比例关系和第一自适应量化系数,进行反向转换(求指数),计算得到的。
例如,假定第一量化处理是根据N进制数的指定位数进行量化的,可以按照如下公式,计算第一自适应量化系数,记作shifti
Figure BDA0001866765660000161
可以按照如下公式,计算第二自适应量化系数,记作ri
Figure BDA0001866765660000162
其中,α表示所期望保留精度的N进制位数,可以取任意自然数,ceil表示向上取最小整数的函数。
进一步地,对于步骤S210,根据自适应量化系数和综合的量化偏移,对定点数形式的输入张量及其量化偏移进行第二量化处理,得到量化结果,具体可以包括:按照如下公式,对所述定点数形式的输入张量及其量化偏移进行第二量化处理,得到量化结果,记作
Figure BDA0001866765660000163
Figure BDA0001866765660000164
在这里,
Figure BDA0001866765660000165
可以表示对Xi进行第一量化处理,并用相应的量化偏移进行调整后得到的初步的量化结果,进一步地用自适应量化系数对初步的量化结果进行缩放,再用综合的量化偏移进行调整后得到
Figure BDA0001866765660000171
可以作为最终的量化结果。
需要说明的是,上面列举的一些公式反映了本申请方案的思想,但是并非是唯一实施形式,基于本申请方案的思想,能够得到更多的类似公式替代上面的公式。
基于同样的思路,本申请的一些实施例还提供了上述方法对应的装置、设备和非易失性计算机存储介质。
图3为本申请的一些实施例提供的对应于图1的一种自适应量化装置的结构示意图,该装置包括:
第一量化模块301,分别对多个原始输入张量进行第一量化处理,得到定点数形式的输入张量,以及计算该定点数形式的输入张量的量化偏移;
自适应量化系数计算模块302,计算多个原始输入张量对应的综合的量化偏移,以及自适应量化系数;
第二量化模块303,根据所述自适应量化系数和所述综合的量化偏移,对所述定点数形式的输入张量及其量化偏移进行第二量化处理,得到量化结果。
可选地,所述第一量化模块301分别对多个原始输入张量进行第一量化处理,得到定点数形式的输入张量,以及计算该定点数形式的输入张量的量化偏移,具体包括:
所述第一量化模块301针对多个原始输入张量中的每个原始输入张量,执行:确定该原始输入张量的最值,根据该最值,对该原始输入张量进行第一量化处理,得到定点数形式的输入张量,以及计算该定点数形式的输入张量的量化偏移。
可选地,所述自适应量化系数计算模块302计算多个原始输入张量对应的综合的量化偏移,以及自适应量化系数,具体包括:
所述自适应量化系数计算模块302根据所述多个原始输入张量分别的最值,确定综合的最值;
根据所述综合的最值,计算综合的量化缩放系数和量化偏移;
根据所述综合的量化缩放系数和所述第一量化处理过程中使用的量化缩放系数,计算自适应量化系数。
可选地,所述多个原始输入张量来自同一个算数逻辑单元ALU,所述装置是针对多个不同的ALU中的每个ALU执行的。
可选地,所述第一量化模块301根据该最值,对该原始输入张量进行第一量化处理,具体包括:
所述第一量化模块301根据该最值中的最小值和指定的量化值域的最小值,利用第一函数,对该原始输入张量进行第一量化处理;
所述第一函数包含相应的量化缩放系数,以及浮点数转定点数的转换逻辑。
可选地,所述第一量化模块301计算该定点数形式的输入张量的量化偏移,具体包括:
所述第一量化模块301根据该最值中的最小值和所述指定的量化值域的最小值,利用第二函数,计算该定点数形式的输入张量的量化偏移;
所述第二函数包含所述相应的量化缩放系数,以及浮点数转定点数的转换逻辑。
可选地,所述相应的量化缩放系数根据该最值和/或所述指定的量化值域的最值计算得到。
可选地,所述自适应量化系数计算模块302根据所述综合的最值,计算综合的量化缩放系数和量化偏移,具体包括:
所述自适应量化系数计算模块302根据所述综合的最值和指定的量化值域的最值,计算综合的量化缩放系数和量化偏移。
可选地,所述自适应量化系数计算模块302根据所述综合的量化缩放系数和所述第一量化处理过程中使用的量化缩放系数,计算自适应量化系数,具体包括:
所述自适应量化系数计算模块302利用对数坐标系,对所述综合的量化缩放系数与所述第一量化处理过程中使用的量化缩放系数之间的比例关系进行转换;
根据所述转换后的比例关系,计算一个或者多个自适应量化系数;
其中,在所述计算的过程中,使用了浮点数转定点数的转换逻辑和/或用于保留精度的系数。
可选地,所述相应的量化缩放系数按照公式
Figure BDA0001866765660000191
计算得到;
其中,
Figure BDA0001866765660000192
表示原始输入张量Xi相应的量化缩放系数,Qlow表示所述指定的量化值域的最小值,Qhigh表示所述指定的量化值域的最大值,Xmini表示Xi的最小值,Xmaxi表示Xi的最大值。
可选地,所述第一函数表示为:
Figure BDA0001866765660000193
其中,
Figure BDA0001866765660000194
表示所述第一量化处理后的原始输入张量Xi,Xmini表示Xi的最小值,
Figure BDA0001866765660000195
表示Xi相应的量化缩放系数,Qlow表示所述指定的量化值域的最小值,round表示将浮点数四舍五入为定点数的函数。
可选地,所述第二函数表示为:
Figure BDA0001866765660000196
其中,
Figure BDA0001866765660000197
表示为所述第一量化处理后的Xi计算的量化偏移,Xmini表示Xi的最小值,
Figure BDA0001866765660000198
表示Xi相应的量化缩放系数,Qlow表示所述量化值域的最小值,round表示将浮点数四舍五入为定点数的函数。
可选地,所述多个自适应量化系数包括第一自适应量化系数和第二自适应量化系数;
所述第一自适应量化系数是所述自适应量化系数计算模块302通过利用对数坐标系,对所述比例关系进行转换,再使用所述保留精度的系数进行精度调整,计算得到的,和/或
所述第二自适应量化系数是所述自适应量化系数计算模块302通过利用指数坐标系,根据所述比例关系和所述第一自适应量化系数,进行反向转换,计算得到的。
可选地,所述第一量化处理是根据N进制数的指定位数进行量化的,所述自适应量化系数计算模块302按照如下公式,计算所述第一自适应量化系数shifti
Figure BDA0001866765660000201
其中,
Figure BDA0001866765660000202
表示原始输入张量Xi相应的量化缩放系数,Sy表示所述综合的量化缩放系数,α表示所期望保留精度的N进制位数,ceil表示向上取最小整数的函数。
可选地,所述第一量化处理是根据N进制数的指定位数进行量化的,所述自适应量化系数计算模块302按照如下公式,计算所述第二自适应量化系数ri
Figure BDA0001866765660000203
其中,
Figure BDA0001866765660000204
表示原始输入张量Xi相应的量化缩放系数,Sy表示所述综合的量化缩放系数,shifti表示所述第一自适应量化系数,round表示将浮点数四舍五入为定点数的函数。
可选地,所述第一量化处理是根据N进制数的指定位数进行量化的,所述第二量化模块303根据所述自适应量化系数和所述综合的量化偏移,对所述定点数形式的输入张量及其量化偏移进行第二量化处理,得到量化结果,具体包括:
所述第二量化模块303按照如下公式,对所述定点数形式的输入张量及其量化偏移进行第二量化处理,得到量化结果
Figure BDA0001866765660000205
Figure BDA0001866765660000206
其中,shifti表示所述第一自适应量化系数,ri表示所述第二自适应量化系数,
Figure BDA0001866765660000211
表示所述第一量化处理后的原始输入张量Xi
Figure BDA0001866765660000212
表示为所述第一量化处理后的Xi计算的量化偏移,By表示所述综合的量化偏移。
图3为本申请的一些实施例提供的对应于图1的一种自适应量化设备的结构示意图,该设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
针对多个原始输入张量中的每个原始输入张量,执行:确定该原始输入张量的最值,根据该最值,对该原始输入张量进行第一量化处理,得到定点数形式的输入张量,以及计算该定点数形式的输入张量的量化偏移;
根据所述多个原始输入张量分别的最值,确定综合的最值;
根据所述综合的最值,计算综合的量化缩放系数和量化偏移;
根据所述综合的量化缩放系数和所述第一量化处理过程中使用的量化缩放系数,计算自适应量化系数;
根据所述自适应量化系数和所述综合的量化偏移,对所述定点数形式的输入张量及其量化偏移进行第二量化处理,得到量化结果。
本申请的一些实施例提供的对应于图1的一种自适应量化非易失性计算机存储介质,存储有计算机可执行指令,该计算机可执行指令设置为:
针对多个原始输入张量中的每个原始输入张量,执行:确定该原始输入张量的最值,根据该最值,对该原始输入张量进行第一量化处理,得到定点数形式的输入张量,以及计算该定点数形式的输入张量的量化偏移;
根据所述多个原始输入张量分别的最值,确定综合的最值;
根据所述综合的最值,计算综合的量化缩放系数和量化偏移;
根据所述综合的量化缩放系数和所述第一量化处理过程中使用的量化缩放系数,计算自适应量化系数;
根据所述自适应量化系数和所述综合的量化偏移,对所述定点数形式的输入张量及其量化偏移进行第二量化处理,得到量化结果。
本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备和介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本申请实施例提供的装置、设备和介质与方法是一一对应的,因此,装置、设备和介质也具有与其对应的方法类似的有益技术效果,由于上面已经对方法的有益技术效果进行了详细说明,因此,这里不再赘述装置、设备和介质的有益技术效果。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (34)

1.一种自适应量化方法,其特征在于,包括:
分别对多个原始输入张量进行第一量化处理,得到定点数形式的输入张量,以及计算该定点数形式的输入张量的量化偏移;
计算多个原始输入张量对应的综合的量化偏移,以及自适应量化系数;
根据所述自适应量化系数和所述综合的量化偏移,对所述定点数形式的输入张量及其量化偏移进行第二量化处理,得到量化结果。
2.如权利要求1所述的方法,其特征在于,所述分别对多个原始输入张量进行第一量化处理,得到定点数形式的输入张量,以及计算该定点数形式的输入张量的量化偏移,具体包括:
针对多个原始输入张量中的每个原始输入张量,执行:确定该原始输入张量的最值,根据该最值,对该原始输入张量进行第一量化处理,得到定点数形式的输入张量,以及计算该定点数形式的输入张量的量化偏移。
3.如权利要求2所述的方法,其特征在于,所述计算多个原始输入张量对应的综合的量化偏移,以及自适应量化系数,具体包括:
根据所述多个原始输入张量分别的最值,确定综合的最值;
根据所述综合的最值,计算综合的量化缩放系数和量化偏移;
根据所述综合的量化缩放系数和所述第一量化处理过程中使用的量化缩放系数,计算自适应量化系数。
4.如权利要求1所述的方法,其特征在于,所述多个原始输入张量来自同一个算数逻辑单元ALU,所述方法是针对多个不同的ALU中的每个ALU执行的。
5.如权利要求2所述的方法,其特征在于,所述根据该最值,对该原始输入张量进行第一量化处理,具体包括:
根据该最值中的最小值和指定的量化值域的最小值,利用第一函数,对该原始输入张量进行第一量化处理;
所述第一函数包含相应的量化缩放系数,以及浮点数转定点数的转换逻辑。
6.如权利要求5所述的方法,其特征在于,所述计算该定点数形式的输入张量的量化偏移,具体包括:
根据该最值中的最小值和所述指定的量化值域的最小值,利用第二函数,计算该定点数形式的输入张量的量化偏移;
所述第二函数包含所述相应的量化缩放系数,以及浮点数转定点数的转换逻辑。
7.如权利要求5或者6所述的方法,其特征在于,所述相应的量化缩放系数根据该最值和/或所述指定的量化值域的最值计算得到。
8.如权利要求3所述的方法,其特征在于,所述根据所述综合的最值,计算综合的量化缩放系数和量化偏移,具体包括:
根据所述综合的最值和指定的量化值域的最值,计算综合的量化缩放系数和量化偏移。
9.如权利要求3所述的方法,其特征在于,所述根据所述综合的量化缩放系数和所述第一量化处理过程中使用的量化缩放系数,计算自适应量化系数,具体包括:
利用对数坐标系,对所述综合的量化缩放系数与所述第一量化处理过程中使用的量化缩放系数之间的比例关系进行转换;
根据所述转换后的比例关系,计算一个或者多个自适应量化系数;
其中,在所述计算的过程中,使用了浮点数转定点数的转换逻辑和/或用于保留精度的系数。
10.如权利要求7所述的方法,其特征在于,所述相应的量化缩放系数按照公式
Figure FDA0001866765650000021
计算得到;
其中,
Figure FDA0001866765650000022
表示原始输入张量Xi相应的量化缩放系数,Qlow表示所述指定的量化值域的最小值,Qhigh表示所述指定的量化值域的最大值,Xmini表示Xi的最小值,Xmaxi表示Xi的最大值。
11.如权利要求5所述的方法,其特征在于,所述第一函数表示为:
Figure FDA0001866765650000031
其中,
Figure FDA0001866765650000032
表示所述第一量化处理后的原始输入张量Xi,Xmini表示Xi的最小值,
Figure FDA0001866765650000033
表示Xi相应的量化缩放系数,Qlow表示所述指定的量化值域的最小值,round表示将浮点数四舍五入为定点数的函数。
12.如权利要求6所述的方法,其特征在于,所述第二函数表示为:
Figure FDA0001866765650000034
其中,
Figure FDA0001866765650000035
表示为所述第一量化处理后的Xi计算的量化偏移,Xmini表示Xi的最小值,
Figure FDA0001866765650000036
表示Xi相应的量化缩放系数,Qlow表示所述量化值域的最小值,round表示将浮点数四舍五入为定点数的函数。
13.如权利要求9所述的方法,其特征在于,所述多个自适应量化系数包括第一自适应量化系数和第二自适应量化系数;
所述第一自适应量化系数是通过利用对数坐标系,对所述比例关系进行转换,再使用所述保留精度的系数进行精度调整,计算得到的,和/或
所述第二自适应量化系数是通过利用指数坐标系,根据所述比例关系和所述第一自适应量化系数,进行反向转换,计算得到的。
14.如权利要求13所述的方法,其特征在于,所述第一量化处理是根据N进制数的指定位数进行量化的,按照如下公式,计算所述第一自适应量化系数shifti
Figure FDA0001866765650000037
其中,
Figure FDA0001866765650000038
表示原始输入张量Xi相应的量化缩放系数,Sy表示所述综合的量化缩放系数,α表示所期望保留精度的N进制位数,ceil表示向上取最小整数的函数。
15.如权利要求13所述的方法,其特征在于,所述第一量化处理是根据N进制数的指定位数进行量化的,按照如下公式,计算所述第二自适应量化系数ri
Figure FDA0001866765650000041
其中,
Figure FDA0001866765650000042
表示原始输入张量Xi相应的量化缩放系数,Sy表示所述综合的量化缩放系数,shifti表示所述第一自适应量化系数,round表示将浮点数四舍五入为定点数的函数。
16.如权利要求13~15中任一项所述的方法,其特征在于,所述第一量化处理是根据N进制数的指定位数进行量化的,所述根据所述自适应量化系数和所述综合的量化偏移,对所述定点数形式的输入张量及其量化偏移进行第二量化处理,得到量化结果,具体包括:
按照如下公式,对所述定点数形式的输入张量及其量化偏移进行第二量化处理,得到量化结果
Figure FDA0001866765650000043
Figure FDA0001866765650000044
其中,shifti表示所述第一自适应量化系数,ri表示所述第二自适应量化系数,
Figure FDA0001866765650000045
表示所述第一量化处理后的原始输入张量Xi
Figure FDA0001866765650000046
表示为所述第一量化处理后的Xi计算的量化偏移,By表示所述综合的量化偏移。
17.一种自适应量化装置,其特征在于,包括:
第一量化模块,分别对多个原始输入张量进行第一量化处理,得到定点数形式的输入张量,以及计算该定点数形式的输入张量的量化偏移;
自适应量化系数计算模块,计算多个原始输入张量对应的综合的量化偏移,以及自适应量化系数;
第二量化模块,根据所述自适应量化系数和所述综合的量化偏移,对所述定点数形式的输入张量及其量化偏移进行第二量化处理,得到量化结果。
18.如权利要求17所述的装置,其特征在于,所述第一量化模块分别对多个原始输入张量进行第一量化处理,得到定点数形式的输入张量,以及计算该定点数形式的输入张量的量化偏移,具体包括:
所述第一量化模块针对多个原始输入张量中的每个原始输入张量,执行:确定该原始输入张量的最值,根据该最值,对该原始输入张量进行第一量化处理,得到定点数形式的输入张量,以及计算该定点数形式的输入张量的量化偏移。
19.如权利要求18所述的装置,其特征在于,所述自适应量化系数计算模块计算多个原始输入张量对应的综合的量化偏移,以及自适应量化系数,具体包括:
所述自适应量化系数计算模块根据所述多个原始输入张量分别的最值,确定综合的最值;
根据所述综合的最值,计算综合的量化缩放系数和量化偏移;
根据所述综合的量化缩放系数和所述第一量化处理过程中使用的量化缩放系数,计算自适应量化系数。
20.如权利要求17所述的装置,其特征在于,所述多个原始输入张量来自同一个算数逻辑单元ALU,所述装置是针对多个不同的ALU中的每个ALU执行的。
21.如权利要求18所述的装置,其特征在于,所述第一量化模块根据该最值,对该原始输入张量进行第一量化处理,具体包括:
所述第一量化模块根据该最值中的最小值和指定的量化值域的最小值,利用第一函数,对该原始输入张量进行第一量化处理;
所述第一函数包含相应的量化缩放系数,以及浮点数转定点数的转换逻辑。
22.如权利要求21所述的装置,其特征在于,所述第一量化模块计算该定点数形式的输入张量的量化偏移,具体包括:
所述第一量化模块根据该最值中的最小值和所述指定的量化值域的最小值,利用第二函数,计算该定点数形式的输入张量的量化偏移;
所述第二函数包含所述相应的量化缩放系数,以及浮点数转定点数的转换逻辑。
23.如权利要求21或者22所述的装置,其特征在于,所述相应的量化缩放系数根据该最值和/或所述指定的量化值域的最值计算得到。
24.如权利要求19所述的装置,其特征在于,所述自适应量化系数计算模块根据所述综合的最值,计算综合的量化缩放系数和量化偏移,具体包括:
所述自适应量化系数计算模块根据所述综合的最值和指定的量化值域的最值,计算综合的量化缩放系数和量化偏移。
25.如权利要求19所述的装置,其特征在于,所述自适应量化系数计算模块根据所述综合的量化缩放系数和所述第一量化处理过程中使用的量化缩放系数,计算自适应量化系数,具体包括:
所述自适应量化系数计算模块利用对数坐标系,对所述综合的量化缩放系数与所述第一量化处理过程中使用的量化缩放系数之间的比例关系进行转换;
根据所述转换后的比例关系,计算一个或者多个自适应量化系数;
其中,在所述计算的过程中,使用了浮点数转定点数的转换逻辑和/或用于保留精度的系数。
26.如权利要求23所述的装置,其特征在于,所述相应的量化缩放系数按照公式
Figure FDA0001866765650000061
计算得到;
其中,
Figure FDA0001866765650000062
表示原始输入张量Xi相应的量化缩放系数,Qlow表示所述指定的量化值域的最小值,Qhigh表示所述指定的量化值域的最大值,Xmini表示Xi的最小值,Xmaxi表示Xi的最大值。
27.如权利要求21所述的装置,其特征在于,所述第一函数表示为:
Figure FDA0001866765650000071
其中,
Figure FDA0001866765650000072
表示所述第一量化处理后的原始输入张量Xi,Xmini表示Xi的最小值,
Figure FDA0001866765650000073
表示Xi相应的量化缩放系数,Qlow表示所述指定的量化值域的最小值,round表示将浮点数四舍五入为定点数的函数。
28.如权利要求22所述的装置,其特征在于,所述第二函数表示为:
Figure FDA0001866765650000074
其中,
Figure FDA0001866765650000075
表示为所述第一量化处理后的Xi计算的量化偏移,Xmini表示Xi的最小值,
Figure FDA0001866765650000076
表示Xi相应的量化缩放系数,Qlow表示所述量化值域的最小值,round表示将浮点数四舍五入为定点数的函数。
29.如权利要求25所述的装置,其特征在于,所述多个自适应量化系数包括第一自适应量化系数和第二自适应量化系数;
所述第一自适应量化系数是所述自适应量化系数计算模块通过利用对数坐标系,对所述比例关系进行转换,再使用所述保留精度的系数进行精度调整,计算得到的,和/或
所述第二自适应量化系数是所述自适应量化系数计算模块通过利用指数坐标系,根据所述比例关系和所述第一自适应量化系数,进行反向转换,计算得到的。
30.如权利要求29所述的装置,其特征在于,所述第一量化处理是根据N进制数的指定位数进行量化的,所述自适应量化系数计算模块按照如下公式,计算所述第一自适应量化系数shifti
Figure FDA0001866765650000077
其中,
Figure FDA0001866765650000078
表示原始输入张量Xi相应的量化缩放系数,Sy表示所述综合的量化缩放系数,α表示所期望保留精度的N进制位数,ceil表示向上取最小整数的函数。
31.如权利要求29所述的装置,其特征在于,所述第一量化处理是根据N进制数的指定位数进行量化的,所述自适应量化系数计算模块按照如下公式,计算所述第二自适应量化系数ri
Figure FDA0001866765650000081
其中,
Figure FDA0001866765650000086
表示原始输入张量Xi相应的量化缩放系数,Sy表示所述综合的量化缩放系数,shifti表示所述第一自适应量化系数,round表示将浮点数四舍五入为定点数的函数。
32.如权利要求29~31中任一项所述的装置,其特征在于,所述第一量化处理是根据N进制数的指定位数进行量化的,所述第二量化模块根据所述自适应量化系数和所述综合的量化偏移,对所述定点数形式的输入张量及其量化偏移进行第二量化处理,得到量化结果,具体包括:
所述第二量化模块按照如下公式,对所述定点数形式的输入张量及其量化偏移进行第二量化处理,得到量化结果
Figure FDA0001866765650000082
Figure FDA0001866765650000083
其中,shifti表示所述第一自适应量化系数,ri表示所述第二自适应量化系数,
Figure FDA0001866765650000084
表示所述第一量化处理后的原始输入张量Xi
Figure FDA0001866765650000085
表示为所述第一量化处理后的Xi计算的量化偏移,By表示所述综合的量化偏移。
33.一种自适应量化设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
分别对多个原始输入张量进行第一量化处理,得到定点数形式的输入张量,以及计算该定点数形式的输入张量的量化偏移;
计算多个原始输入张量对应的综合的量化偏移,以及自适应量化系数;
根据所述自适应量化系数和所述综合的量化偏移,对所述定点数形式的输入张量及其量化偏移进行第二量化处理,得到量化结果。
34.一种自适应量化非易失性计算机存储介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令设置为:
分别对多个原始输入张量进行第一量化处理,得到定点数形式的输入张量,以及计算该定点数形式的输入张量的量化偏移;
计算多个原始输入张量对应的综合的量化偏移,以及自适应量化系数;
根据所述自适应量化系数和所述综合的量化偏移,对所述定点数形式的输入张量及其量化偏移进行第二量化处理,得到量化结果。
CN201811358824.0A 2018-11-15 2018-11-15 一种自适应量化方法及装置、设备、介质 Active CN111191783B (zh)

Priority Applications (6)

Application Number Priority Date Filing Date Title
CN201811358824.0A CN111191783B (zh) 2018-11-15 2018-11-15 一种自适应量化方法及装置、设备、介质
JP2021527128A JP7231731B2 (ja) 2018-11-15 2019-09-17 適応量子化方法及び装置、デバイス、媒体
PCT/CN2019/106084 WO2020098368A1 (zh) 2018-11-15 2019-09-17 一种自适应量化方法及装置、设备、介质
US17/294,432 US20220091821A1 (en) 2018-11-15 2019-09-17 Adaptive quantization method and apparatus, device and medium
KR1020217018288A KR20210093952A (ko) 2018-11-15 2019-09-17 적응 양자화 방법 및 장치, 장비, 매체
EP19883762.7A EP3882824A4 (en) 2018-11-15 2019-09-17 METHOD AND DEVICE FOR ADAPTIVE QUANTIZATION, DEVICE AND MEDIUM

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811358824.0A CN111191783B (zh) 2018-11-15 2018-11-15 一种自适应量化方法及装置、设备、介质

Publications (2)

Publication Number Publication Date
CN111191783A true CN111191783A (zh) 2020-05-22
CN111191783B CN111191783B (zh) 2024-04-05

Family

ID=70710535

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811358824.0A Active CN111191783B (zh) 2018-11-15 2018-11-15 一种自适应量化方法及装置、设备、介质

Country Status (6)

Country Link
US (1) US20220091821A1 (zh)
EP (1) EP3882824A4 (zh)
JP (1) JP7231731B2 (zh)
KR (1) KR20210093952A (zh)
CN (1) CN111191783B (zh)
WO (1) WO2020098368A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112130807A (zh) * 2020-11-25 2020-12-25 上海燧原科技有限公司 张量浮点数据处理方法、装置、设备及存储介质
CN112541549A (zh) * 2020-12-15 2021-03-23 深兰人工智能(深圳)有限公司 商品分类识别方法及装置
CN113554149A (zh) * 2021-06-18 2021-10-26 北京百度网讯科技有限公司 神经网络处理单元npu、神经网络的处理方法及其装置
CN115328438A (zh) * 2022-10-13 2022-11-11 华控清交信息科技(北京)有限公司 一种数据处理方法、装置及电子设备

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021111081A (ja) * 2020-01-09 2021-08-02 富士通株式会社 情報処理装置、ニューラルネットワークの演算プログラム及びニューラルネットワークの演算方法
US11601134B2 (en) * 2020-01-10 2023-03-07 Robert Bosch Gmbh Optimized quantization for reduced resolution neural networks

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070282938A1 (en) * 2006-06-06 2007-12-06 Mohammad Abdallah Integer rounding operation
CN107480770A (zh) * 2017-07-27 2017-12-15 中国科学院自动化研究所 可调节量化位宽的神经网络量化与压缩的方法及装置
CN107766939A (zh) * 2017-11-07 2018-03-06 维沃移动通信有限公司 一种数据处理方法、装置及移动终端
CN108053028A (zh) * 2017-12-21 2018-05-18 深圳云天励飞技术有限公司 数据定点化处理方法、装置、电子设备及计算机存储介质
CN108345939A (zh) * 2017-01-25 2018-07-31 微软技术许可有限责任公司 基于定点运算的神经网络
CN108345831A (zh) * 2017-12-28 2018-07-31 新智数字科技有限公司 基于点云数据的道路图像分割的方法、装置以及电子设备
CN108370405A (zh) * 2015-12-23 2018-08-03 华为技术有限公司 一种图像信号转换处理方法、装置及终端设备
CN108491926A (zh) * 2018-03-05 2018-09-04 东南大学 一种基于对数量化的低比特高效深度卷积神经网络硬件加速设计方法、模块及系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4085396B2 (ja) 2005-11-29 2008-05-14 ソニー株式会社 学習装置及び学習方法
TWI575933B (zh) 2011-11-04 2017-03-21 杜比實驗室特許公司 階層式視覺動態範圍編碼中之層分解技術
CN106611216A (zh) * 2016-12-29 2017-05-03 北京旷视科技有限公司 基于神经网络的计算方法及装置
CN106855952B (zh) * 2016-12-29 2020-08-18 北京旷视科技有限公司 基于神经网络的计算方法及装置
US11556772B2 (en) * 2017-04-28 2023-01-17 Intel Corporation Incremental precision networks using residual inference and fine-grain quantization
US10643297B2 (en) * 2017-05-05 2020-05-05 Intel Corporation Dynamic precision management for integer deep learning primitives
CN107247575A (zh) * 2017-06-06 2017-10-13 上海德衡数据科技有限公司 一种多路数据浮点处理器原型

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070282938A1 (en) * 2006-06-06 2007-12-06 Mohammad Abdallah Integer rounding operation
CN108370405A (zh) * 2015-12-23 2018-08-03 华为技术有限公司 一种图像信号转换处理方法、装置及终端设备
CN108345939A (zh) * 2017-01-25 2018-07-31 微软技术许可有限责任公司 基于定点运算的神经网络
CN107480770A (zh) * 2017-07-27 2017-12-15 中国科学院自动化研究所 可调节量化位宽的神经网络量化与压缩的方法及装置
CN107766939A (zh) * 2017-11-07 2018-03-06 维沃移动通信有限公司 一种数据处理方法、装置及移动终端
CN108053028A (zh) * 2017-12-21 2018-05-18 深圳云天励飞技术有限公司 数据定点化处理方法、装置、电子设备及计算机存储介质
CN108345831A (zh) * 2017-12-28 2018-07-31 新智数字科技有限公司 基于点云数据的道路图像分割的方法、装置以及电子设备
CN108491926A (zh) * 2018-03-05 2018-09-04 东南大学 一种基于对数量化的低比特高效深度卷积神经网络硬件加速设计方法、模块及系统

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112130807A (zh) * 2020-11-25 2020-12-25 上海燧原科技有限公司 张量浮点数据处理方法、装置、设备及存储介质
CN112130807B (zh) * 2020-11-25 2021-02-26 上海燧原科技有限公司 张量浮点数据处理方法、装置、设备及存储介质
CN112541549A (zh) * 2020-12-15 2021-03-23 深兰人工智能(深圳)有限公司 商品分类识别方法及装置
CN112541549B (zh) * 2020-12-15 2024-04-26 深兰人工智能(深圳)有限公司 商品分类识别方法及装置
CN113554149A (zh) * 2021-06-18 2021-10-26 北京百度网讯科技有限公司 神经网络处理单元npu、神经网络的处理方法及其装置
CN115328438A (zh) * 2022-10-13 2022-11-11 华控清交信息科技(北京)有限公司 一种数据处理方法、装置及电子设备

Also Published As

Publication number Publication date
JP7231731B2 (ja) 2023-03-01
WO2020098368A1 (zh) 2020-05-22
EP3882824A1 (en) 2021-09-22
EP3882824A4 (en) 2022-08-31
CN111191783B (zh) 2024-04-05
US20220091821A1 (en) 2022-03-24
JP2022507704A (ja) 2022-01-18
KR20210093952A (ko) 2021-07-28

Similar Documents

Publication Publication Date Title
CN111191783B (zh) 一种自适应量化方法及装置、设备、介质
CN111126558B (zh) 一种卷积神经网络计算加速方法及装置、设备、介质
US11043962B2 (en) Information processing apparatus, information processing method, and recording medium
CN110555450B (zh) 人脸识别神经网络调整方法和装置
US20200134460A1 (en) Processing method and accelerating device
CN110555508A (zh) 人工神经网络调整方法和装置
CN110728358B (zh) 基于神经网络的数据处理方法和装置
JP2019139338A (ja) 情報処理装置、情報処理方法、およびプログラム
CN114528924B (zh) 一种图像分类模型的推理方法、装置、设备及介质
CN114239949A (zh) 一种基于双阶段注意力机制的网站访问量预测方法及系统
CN115545361B (zh) 一种电网传输线路气候环境预测方法、系统及介质
JP2024043504A (ja) ニューラルネットワークモデル推論の加速方法、装置、電子機器及び媒体
CN109918237B (zh) 异常网络层确定方法及相关产品
JP7026808B2 (ja) 情報処理装置、方法及びプログラム
WO2022247368A1 (en) Methods, systems, and mediafor low-bit neural networks using bit shift operations
CN111930670B (zh) 异构智能处理量化装置、量化方法、电子设备及存储介质
CN112561050B (zh) 一种神经网络模型训练方法及装置
JP6757349B2 (ja) 固定小数点を用いて認識処理を行う多層の畳み込みニューラルネットワーク回路を実現する演算処理装置
CN114222997A (zh) 用于对神经网络进行后训练量化的方法和装置
US20220398413A1 (en) Quantization method and device for neural network model, and computer-readable storage medium
CN115115904A (zh) 基于对比学习的模型训练方法及装置
CN112990457B (zh) 离线量化调优方法、装置、设备、介质及程序产品
Jo et al. Non-Uniform Quantization and Pruning Using Mu-law Companding
TW202316323A (zh) 具有平均量化機制的神經網路建構方法及裝置
CN116306820A (zh) 量化训练方法、装置、设备和计算机可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20201203

Address after: Room 206, 2 / F, building C, phase I, Zhongguancun Software Park, No. 8, Dongbei Wangxi Road, Haidian District, Beijing 100094

Applicant after: Canaan Bright Sight Co.,Ltd.

Address before: 100094, No. 3, building 23, building 8, northeast Wang Xi Road, Beijing, Haidian District, 307

Applicant before: Canaan Creative Co.,Ltd.

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20240515

Address after: Room 101, 20th Floor, Building 1, Zone 1, No. 81 Beiqing Road, Haidian District, Beijing, 100094

Patentee after: Beijing Sisheng Technology Co.,Ltd.

Country or region after: China

Address before: Room 206, 2 / F, building C, phase I, Zhongguancun Software Park, No. 8, Dongbei Wangxi Road, Haidian District, Beijing 100094

Patentee before: Canaan Bright Sight Co.,Ltd.

Country or region before: China