CN111930673B - 异构智能处理量化装置、量化方法、电子设备及存储介质 - Google Patents

异构智能处理量化装置、量化方法、电子设备及存储介质 Download PDF

Info

Publication number
CN111930673B
CN111930673B CN202010798224.7A CN202010798224A CN111930673B CN 111930673 B CN111930673 B CN 111930673B CN 202010798224 A CN202010798224 A CN 202010798224A CN 111930673 B CN111930673 B CN 111930673B
Authority
CN
China
Prior art keywords
neural network
data
power
original
bit
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.)
Active
Application number
CN202010798224.7A
Other languages
English (en)
Other versions
CN111930673A (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.)
Institute of Computing Technology of CAS
Original Assignee
Institute of Computing Technology of CAS
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 Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN202010798224.7A priority Critical patent/CN111930673B/zh
Publication of CN111930673A publication Critical patent/CN111930673A/zh
Application granted granted Critical
Publication of CN111930673B publication Critical patent/CN111930673B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • 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
    • 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/061Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using biological neurons, e.g. biological neurons connected to an integrated circuit

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • Software Systems (AREA)
  • Computational Mathematics (AREA)
  • Neurology (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Pure & Applied Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Nonlinear Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Image Analysis (AREA)

Abstract

本公开提供了一种异构智能处理量化装置,所述异构智能处理装置应用于异构智能处理器,所述异构智能处理器包括通用处理器和智能处理器,其中智能处理器包括控制电路和多个运算电路,所述异构智能处理量化装置包括:权值量化模块,用于对原始神经网络中的权值进行量化,使移位量化神经网络中的权值均为幂次数据,并重训练所述移位量化神经网络,使所述移位量化神经网络的精度与所述原始神经网络的精度相同;神经元量化模块,用于对所述原始神经网络中的神经元进行量化,使所述移位量化神经网络中神经元均被量化为定点数数据。可减少神经网络的存储开销,提升神经网络的数据处理效率。

Description

异构智能处理量化装置、量化方法、电子设备及存储介质
技术领域
本公开涉及移动终端技术领域,尤其涉及一种异构智能处理量化装置、神经网络量化方法、电子设备及存储介质。
背景技术
神经网络是一种模仿生物神经网络结构和功能的数学模型。神经网络被广泛应用到图形识别、语音识别、自然语音处理等领域中。然而随着神经网络的复杂度日益提升,神经网络内的数据在不断的增大,数据处理是神经网络中进行的必要步骤。
而在移动终端中,当前大量正在使用的用于移动终端场景的GPU、CPU等硬件运算单元中均还是采用浮点数表示或定点数表示的神经网络,数据处理还是需要大量的浮点数乘法或定点数乘法计算,而计算时采用功耗消耗巨大的浮点数计算或定点数乘法计算,数据处理效率低、速度慢。
发明内容
本公开的主要目的在于提供一种异构智能处理量化装置、神经网络量化方法、电子设备及存储介质,可解决上述技术问题。
为实现上述目的,本公开实施例第一方面提供一种异构智能处理器,所述异构智能处理装置应用于异构智能处理器,所述异构智能处理器包括通用处理器和智能处理器,其中智能处理器包括控制电路和多个运算电路,所述智能处理器用于将原始神经网络量化位移位量化神经网络,所述异构智能处理量化装置包括:
权值量化模块,用于对原始神经网络中的权值进行量化,使移位量化神经网络中的权值均为幂次数据,并重训练所述移位量化神经网络,使所述移位量化神经网络的精度与所述原始神经网络的精度相同;
神经元量化模块,用于对所述原始神经网络中的神经元进行量化,使所述移位量化神经网络中神经元均被量化为定点数数据。
可选的,所述权值量化模块包括:
第一获取子模块,用于获取所述原始神经网络中预设数量的权值;
计算子模块,用于计算所述原始神经网络中预设数量的每个权值与不同幂次位数据之间的欧式距离;
选择子模块,用于选择欧式距离最小的幂次位数据对应的幂次数据作为所述移位量化神经网络中的权值;
重训练模块,用于将权值限定在幂次数据中对所述移位量化神经网络进行重训练,直至所述移位量化神经网络的精度与所述原始神经网络的精度相同;
再次执行所述获取子模块、计算子模块、选择子模块和重训练模块,直至所述移位量化神经网络中的所有权值均为幂次数据。
可选的,所述神经元量化模块302包括:
第二获取子模块,用于获取所述神经元所在层的最大神经元;
系数确定子模块,用于基于所述最大神经元,确定所述神经元从所述原始神经网络的原始数表示转化为所述移位神经网络的定点数表示的缩放系数;
权值量化子模块,用于根据所述缩放系数,将所述神经元从原始数表示转化为定点数表示。
可选的,所述缩放系数使得定点数表示的所述神经元可以覆盖所述神经元所在层中原始数表示的最大神经元。
可选的,在所述移位量化神经网络中采用定点数移位运算代替所述原始神经网络中的乘法运算。
可选的,所述幂次数据包括符号位和幂次位,所述符号位采用一位比特位表示权值的符号,所述幂次位采用m-1比特位表示幂次位数据,m为大于1的正整数。
可选的,所述定点数据包括符号位和数值位,所述符号位采用一位比特位表示神经元的符号,所述数值位采用n-1位比特位表示数值位数据,n为大于1的正整数。
本公开实施例第二方面提供了一种神经网络量化方法,包括:
对原始神经网络中的权值进行量化,使所述移位量化神经网络中的权值均为幂次数据,并重训练所述移位量化神经网络,使所述移位量化神经网络的精度与所述原始神经网络的精度相同;
对所述原始神经网络中的神经元进行量化,使所述移位量化神经网络中神经元均被量化为定点数数据。
本公开实施例第三方面提供了一种电子设备,包括:存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器包括本公开实施例第一方面提供的异构智能处理量化装置。
本公开实施例第四方面提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现本公开实施例第一方面提供的神经网络量化方法。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本公开一实施例提供的智能处理器的结构示意图;
图2为本公开一实施例提供的智能处理器的结构示意图;
图3为本公开一实施例提供的异构智能处理量化装置的结构示意图;
图4为本公开一实施例提供的神经网络量化方法的流程示意图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
本公开的说明书和权利要求书及所述附图中的术语″第一″、″第二″、″第三″和″第四″等是用于区别不同对象,而不是用于描述特定顺序。此外,术语″包括″和″具有″以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本公开的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本公开提供的异构智能处理量化装置,经过其量化后得到的移位量化神经网络可适用于已有的移动终端硬件系统,利用定点数移位运算代替了神经网络中运算量最大的乘法运算,能高能效的运行神经网络算法。移位量化神经网络可以能够通过训练好的浮点数表示的神经网络得到,并实现大数据集上的精度无损。可减少神经网络的存储开销,同时保留无乘法器的特点提升了神经网络的能效。
本公开提供了一种异构智能处理器,该异构智能处理器包括通用处理器和智能处理器,请参阅图1,图1为本公开一实施例提供的智能处理器的结构示意图,其中智能处理器包括控制电路101和多个运算电路102。控制电路101用于接收神经网络专用的运算指令,并将所述运算指令转换为可直接控制所述运算电路的控制信号,运算电路102,用于执行神经网络的运算任务。其中,该运算任务包括定点数移位运算任务,所述定点数移位运算任务的神经元由定点数表示,权值由幂次数据表示。每个运算电路102还可以独立运行所分配到的各种任务,例如:池化任务或全连接任务等。本公开不对控制电路和运算电路所运行的任务做出具体限制。
其中,该运算电路可以包括移位器,所述移位器用于完成对神经元整数进行权值表示的定点数移位运算。
更多的,如图2所示,该智能处理器还可以包括内存电路201,内存电路201与控制电路101相连,用于存储数据,数据的数据类型包括幂次数据、定点数、浮点数等等。数据包括神经元和权值,神经元包括定点数表示的神经元和非定点数表示的神经元,权值包括幂次数据表示的神经元和非幂次数据表示的神经元。
更进一步的,该智能处理器还可以包括直接内存访问电路202,直接内存访问电路202与内存电路201相连,用于将数据从内存电路201搬运到运算电路102。
请参阅图3,图3为本公开一实施例提供的智能处理量化装置的结构示意图,该异构智能处理装置应用于图1所示的异构智能处理器,所述异构智能处理量化装置包括:
权值量化模块301,用于对原始神经网络中的权值进行量化,使所述移位量化神经网络中的权值均为幂次数据,并重训练所述移位量化神经网络,使所述移位量化神经网络的精度与所述原始神经网络的精度相同;
神经元量化模块302,用于对所述原始神经网络中的神经元进行量化,使所述移位量化神经网络中神经元均被量化为定点数数据。
其中,本公开的原始神经网络可以是由浮点数表示的神经网络(神经元和权值均有浮点数表示)或者由定点数表示的神经网络(神经元和权值均有定点数表示)。示意性的,本公开的原始神经网络以由32位定精度浮点数表示的为例进行示意性说明。
其中,幂次数据采用指定的幂次表示格式,可以为公式表达的方式,也可以采用编码表的方式,其幂次表示方式为幂次数据包括符号位和幂次数据,符号位用一位或多位比特位表示数据的符号,幂次位用m比特表示数据的幂次位数据,m为大于1的正整数。幂次位编码方式可以直接采用二进制的补码形式表示数据的幂次位,即(-1)^(符号位)*2^(幂次位)。当采用编码表的方式表示幂次数据时,可以在内存单元预存编码表,提供幂次数据的每个幂次位数据对应的指数数值。编码表设置一个或多个幂次位数据(即置零幂次位数据)位指定对应的幂次数据为0。也就是说,当幂次数据的幂次位数据时编码表里的置零幂次位数据时,表示该幂次数据为0。
可选的,m-1位幂次位数据表示2的幂最多为2m-1个不同的值。示例性的,当m为5时,幂次位数据为0000时对应的指数数值为0,幂次位数据为0001时对应的指数数值为1,幂次位数据为0010时对应的指数数值为2,幂次位数据为0011时对应的指数数值为3,幂次位数据为1111时对应的指数数值为16。
其中,移位量化神经网络中定点数神经元包括符号位和数值位,所述符号位采用一位比特位表示神经元的符号,数值位采用n-1位比特位表示数值位数据,n为大于1的正整数。示例性的,n为16,则移位量化神经网络中定点数神经元位16位有符号定点数神经元。
更多的,该异构智能处理量化装置可以对原始神经网络中某一个或多个层进行量化,也可以对原始神经网络中每一层均进行量化。示例性的,该待量化的层可以是卷积层、全连接层、池化层等进行神经网络运算所涉及到的对数据进行运算或处理的层,也可以是其它层,本公开对此不做限制。
更多的,可以先对原始神经网络中的神经元进行量化,后对原始神经网络中的权值进行量化。也可以是先对原始神经网络中的权值进行量化,后对原始神经网络中的神经元进行量化。还可以是对原始神经网络中的神经元和权值同时进行量化。本公开对此不做限制。
在本实施例中,移位量化神经网络中的神经元为定点数数据,权值为幂次数据,神经元和权值使用不同的数据格式组成了混合量化数据结构,与32位定精度浮点数表示的神经网络相比数据量从32位浮点神经元和权值可以减少到16位有符号定点数神经元和5位整数权值。使得在神经网络推理中,本公开提供的移位量化神经网络不需要浮点数乘法运算,而只需要对神经元整数进行权值表示的定点数移位运算即可。因为在集成电路上实现浮点乘法比在集成电路上实现定点数移位要复杂得多。与浮点数表示的神经网络相比,在移动终端场景中的CPU、GPU中运行移位量化神经网络可以实现更低的功耗。与此同时,移位量化神经网络能够快速便捷并且无精度损失的从已有的浮点数表示的神经网络转换得到。
在本公开其中一个实施例中,所述权值量化模块301包括:
第一获取子模块,用于获取所述原始神经网络中预设数量的权值;
计算子模块,用于计算所述原始神经网络中预设数量的每个权值与不同幂次位数据之间的欧式距离;
选择子模块,用于选择欧式距离最小的幂次位数据对应的幂次数据作为所述移位量化神经网络中的权值;
重训练模块,用于将权值限定在幂次数据中对所述移位量化神经网络进行重训练,直至所述移位量化神经网络的精度与所述原始神经网络的精度相同;
再次执行所述获取子模块、计算子模块、选择子模块和重训练模块,直至所述移位量化神经网络中的所有权值均为幂次数据。
其中,该预设数量的权值可以是所有权值的5%、10%,20%等等,本申请对此不做限制。
示例性的,计算原始神经网络中预设数量的每个权值与不同幂次位数据之间的欧式距离为,计算浮点数表示的权值与不同2的幂次位数据之间的欧式距离,该不同2的幂次位数据的个数共有预设数量个。
示例性的,将权值限定在幂次数据中对移位量化神经网络进行重训练为,将权值限定在2的幂次位数据中进行重训练,直至移位量化神经网络的精度与原始神经网络的精度相同。
以上,可以使得浮点数表示的神经网络(原始神经网络)的预设数量的权值成功量化为幂次数据。继续再对预设数量的权值进行量化,直至浮点数表示的神经网络的所有权值均被量化为幂次数据。需要说明的时,每次对预设数量的权值进行量化后,需要对移位量化神经网络进行重训练,使得移位量化神经网络的精度与浮点数表示的神经网络的精度相同。保证移位量化神经网络的精度相对于浮点数表示的神经网络不发生损失。
可选的,可以对整个原始神经网络不分层的进行量化,也可以按照原始神经网络中层的不同,对每个层的权值分别进行量化,例如对池化层的权值、全连接层的权值、卷积层的权值分别进行量化,更进一步的,当包括多个卷积层时,可以对每一个卷积层分别进行量化。
在本公开其中一个实施例中,所述神经元量化模块302包括:
第二获取子模块,用于获取所述神经元所在层的最大神经元;
系数确定子模块,用于基于所述最大神经元,确定所述神经元从所述原始神经网络的原始数表示转化为所述移位神经网络的定点数表示的缩放系数;
权值量化子模块,用于根据所述缩放系数,将所述神经元从原始数表示转化为定点数表示。
在一可选实施例中,所述缩放系数使得定点数表示的所述神经元可以覆盖所述神经元所在层中原始数表示的最大神经元。
可理解的,神经元所在层的最大神经元是指值最大的神经元。
其中,该原始数是原始神经网络中神经元的数据类型。在原始神经网络以由浮点数表示为例的情景下,该原始数为浮点数。
其中,针对原始神经网络中的不同层,其每一层对应的的缩放系数可以会有所不同。在一示例中,神经网络包括1个卷积层、3个全连接层、2个池化层。其中,可能是1个卷积层、3个全连接层、2个池化层共6个层的每个层均对应不同的缩放系数,本实施例对此不做限制。
在本实施例中,基于神经元所在层的最大神经元,可以确定该层神经元从浮点数表示到定点数表示范围的缩放系数值。该缩放系数应使得定点数表示的神经元可以覆盖该层中浮点数表示的最大神经元。移位量化神经网络将浮点数表示的神经网络转换为了权值均为2的幂次,神经元为定点数。将神经网络中运算量最大的乘法操作均转换为了定点数移位操作。减少了神经网络运算过程中的功耗。移位量化神经网络有助于进一步推进在已有移动终端硬件系统中部署神经网络模型。
在本公开其中一个实施例中,在所述移位量化神经网络中采用定点数移位运算代替所述原始神经网络中的乘法运算。
在本实施例中,移位量化神经网络中的神经元为定点数数据,权值为幂次数据,神经元和权值使用不同的数据格式组成了混合量化数据结构,使得在神经网络推理中,本公开提供的移位量化神经网络不需要浮点数乘法运算,而只需要对神经元整数进行权值表示的定点数移位运算即可。由于无需乘法运算,使得在移动终端场景中的CPU、GPU中运行移位量化神经网络可以实现更低的功耗。
在本公开其中一个实施例中,所述幂次数据包括符号位和幂次位,所述符号位采用一位比特位表示权值的符号,所述符号位采用一位比特位表示权值的符号,所述幂次位采用m-1比特位表示幂次位数据,m为大于1的正整数。
在本公开其中一个实施例中,所述定点数据包括符号位和数值位,所述符号位采用一位比特位表示神经元的符号,所述数值位采用n-1位比特位表示数值位数据,n为大于1的正整数。
可选的,幂次数据的符号位还可以由多位比特位表示。同样的,定点数据的符号位也可以由多位比特位表示。
在本实施例中,由此组成神经元使用定点数表示、权值仅存储符号位和移位指数的定点数。神经元和权值使用不同的数据格式组成了混合量化数据结构,与32位定精度浮点数表示的神经网络相比数据量从32位浮点神经元和权值减少到16位有符号定点数神经元和5位整数权值。使得在神经网络推理中,本公开提供的移位量化神经网络不需要浮点数乘法运算,而只需要对神经元整数进行权值表示的定点数移位运算即可。因为在集成电路上实现浮点乘法比在集成电路上实现定点数移位要复杂得多。与浮点数表示的神经网络相比,在移动终端场景中的CPU、GPU中运行移位量化神经网络可以实现更低的功耗。
请参阅图4,图4为本公开一实施例提供的神经网络量化方法的流程示意图,该神经网络量化可适用于图1或图2所示的异构智能处理量化装置,所述异构智能处理装置应用于异构智能处理器,所述异构智能处理器包括通用处理器和智能处理器,其中智能处理器包括控制电路和多个运算电路,该量化方法包括:
S401、对原始神经网络中的权值进行量化,使移位量化神经网络中的权值均为幂次数据,并重训练所述移位量化神经网络,使所述移位量化神经网络的精度与所述原始神经网络的精度相同;
S402、对所述原始神经网络中的神经元进行量化,使所述移位量化神经网络中神经元均被量化为定点数数据。
在本公开其中一个实施例中,所述步骤S401中,对原始神经网络中的权值进行量化,使所述移位量化神经网络中的权值均为幂次数据包括:获取所述原始神经网络中预设数量的权值;计算所述原始神经网络中预设数量的每个权值与不同幂次位数据之间的欧式距离;选择欧式距离最小的幂次位数据对应的幂次数据作为所述移位量化神经网络中的权值;
所述步骤S401中,重训练所述移位量化神经网络,使所述移位量化神经网络的精度与所述原始神经网络的精度相同包括:将权值限定在幂次数据中对所述移位量化神经网络进行重训练,直至所述移位量化神经网络的精度与所述原始神经网络的精度相同。
再次执行上述步骤,直至所述移位量化神经网络中的所有权值均为幂次数据。
在本公开其中一个实施例中,所述步骤S402:对所述原始神经网络中的神经元进行量化,使所述移位量化神经网络中神经元均被量化为定点数数据包括:获取所述神经元所在层的最大神经元;基于所述最大神经元,确定所述神经元从所述原始神经网络的原始数表示转化为所述移位神经网络的定点数表示的缩放系数;根据所述缩放系数,将所述神经元从原始数表示转化为定点数表示。
在本公开其中一个实施例中,所述缩放系数使得定点数表示的所述神经元可以覆盖所述神经元所在层中原始数表示的最大神经元。
在本公开其中一个实施例中,在所述移位量化神经网络中采用定点数移位运算代替所述原始神经网络中的乘法运算。
在本公开其中一个实施例中,所述幂次数据包括符号位和幂次位,所述符号位采用一位比特位表示权值的符号,所述幂次位采用m-1比特位表示幂次位数据,m为大于1的正整数。
在本公开其中一个实施例中,所述符号位采用一位比特位表示神经元的符号,所述数值位采用n-1位比特位表示数值位数据,n为大于1的正整数。
本公开还提供了一种电子设备,存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器为上述的异构智能处理器,上述异构智能处理器包括上述的异构智能处理量化装置。
在一些实施例中,电子设备包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
本公开还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如上述神经网络量化方法的全部或部分步骤。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本公开所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器((RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指示相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROMD、随机存取器(英文:Random Access Memory,简称:RAMD、磁盘或光盘等。
以上对本发明实施例进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上上述,本说明书内容不应理解为对本发明的限制。

Claims (8)

1.一种异构智能处理量化装置,其特征在于,所述异构智能处理量化装置应用于异构智能处理器,所述异构智能处理器包括通用处理器和智能处理器,其中智能处理器包括控制电路和多个运算电路,所述智能处理器用于将原始神经网络量化为移位量化神经网络,所述异构智能处理量化装置包括:
权值量化模块,用于对原始神经网络中的权值进行量化,使移位量化神经网络中的权值均为幂次数据,并重训练所述移位量化神经网络,使所述移位量化神经网络的精度与所述原始神经网络的精度相同;
神经元量化模块,用于对所述原始神经网络中的神经元进行量化,使所述移位量化神经网络中神经元均被量化为定点数数据,所述定点数数据包括符号位和数值位,所述符号位采用一位比特位表示神经元的符号,所述数值位采用n-1位比特位表示数值位数据,n为大于1的正整数;
所述权值量化模块包括:
第一获取子模块,用于获取所述原始神经网络中预设数量的权值;
计算子模块,用于计算所述原始神经网络中预设数量的每个权值与不同幂次位数据之间的欧式距离;
选择子模块,用于选择欧式距离最小的幂次位数据对应的幂次数据作为所述移位量化神经网络中的权值,所述幂次数据包括符号位和幂次位,所述幂次位用m比特表示数据的幂次位数据,m为大于1的正整数;
重训练模块,用于将权值限定在幂次数据中对所述移位量化神经网络进行重训练,直至所述移位量化神经网络的精度与所述原始神经网络的精度相同;
再次执行所述获取子模块、计算子模块、选择子模块和重训练模块,直至所述移位量化神经网络中的所有权值均为幂次数据;
所述神经元量化模块包括:
第二获取子模块,用于获取所述神经元所在层的最大神经元;
系数确定子模块,用于基于所述最大神经元,确定所述神经元从所述原始神经网络的原始数表示转化为所述移位量化神经网络的定点数表示的缩放系数;
权值量化子模块,用于根据所述缩放系数,将所述神经元从原始数表示转化为定点数表示。
2.根据权利要求1所述的异构智能处理量化装置,其特征在于,所述缩放系数使得定点数表示的所述神经元可以覆盖所述神经元所在层中原始数表示的最大神经元。
3.根据权利要求1或2所述的异构智能处理量化装置,其特征在于,在所述移位量化神经网络中采用定点数移位运算代替所述原始神经网络中的乘法运算。
4.根据权利要求1或2所述的异构智能处理量化装置,其特征在于,所述幂次数据包括符号位和幂次位,所述符号位采用一位比特位表示权值的符号,所述幂次位采用m-1比特位表示幂次位数据,m为大于1的正整数。
5.根据权利要求1或2所述的异构智能处理量化装置,其特征在于,所述定点数数据包括符号位和数值位,所述符号位采用一位比特位表示神经元的符号,所述数值位采用n-1位比特位表示数值位数据,n为大于1的正整数。
6.一种神经网络量化方法,其特征在于,包括:
对原始神经网络中的权值进行量化,使移位量化神经网络中的权值均为幂次数据,并重训练所述移位量化神经网络,使所述移位量化神经网络的精度与所述原始神经网络的精度相同;
对所述原始神经网络中的神经元进行量化,使所述移位量化神经网络中神经元均被量化为定点数数据,所述定点数数据包括符号位和数值位,所述符号位采用一位比特位表示神经元的符号,所述数值位采用n-1位比特位表示数值位数据,n为大于1的正整数;
其中,所述对原始神经网络中的权值进行量化,使移位量化神经网络中的权值均为幂次数据包括:
获取所述原始神经网络中预设数量的权值;
计算所述原始神经网络中预设数量的每个权值与不同幂次位数据之间的欧式距离;
选择欧式距离最小的幂次位数据对应的幂次数据作为所述移位量化神经网络中的权值,所述幂次数据包括符号位和幂次位,所述幂次位用m比特表示数据的幂次位数据,m为大于1的正整数;
将权值限定在幂次数据中对所述移位量化神经网络进行重训练,直至所述移位量化神经网络的精度与所述原始神经网络的精度相同;
直至所述移位量化神经网络中的所有权值均为幂次数据;
所述对所述原始神经网络中的神经元进行量化,使所述移位量化神经网络中神经元均被量化为定点数数据包括:
获取所述神经元所在层的最大神经元;
基于所述最大神经元,确定所述神经元从所述原始神经网络的原始数表示转化为所述移位量化神经网络的定点数表示的缩放系数;
根据所述缩放系数,将所述神经元从原始数表示转化为定点数表示。
7.一种电子设备,包括:存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器包括权利要求1至5中的任一项所述的异构智能处理量化装置。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现权利要求6所述的神经网络量化方法。
CN202010798224.7A 2020-08-10 2020-08-10 异构智能处理量化装置、量化方法、电子设备及存储介质 Active CN111930673B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010798224.7A CN111930673B (zh) 2020-08-10 2020-08-10 异构智能处理量化装置、量化方法、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010798224.7A CN111930673B (zh) 2020-08-10 2020-08-10 异构智能处理量化装置、量化方法、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN111930673A CN111930673A (zh) 2020-11-13
CN111930673B true CN111930673B (zh) 2024-03-05

Family

ID=73308154

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010798224.7A Active CN111930673B (zh) 2020-08-10 2020-08-10 异构智能处理量化装置、量化方法、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN111930673B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112906883A (zh) * 2021-02-04 2021-06-04 云从科技集团股份有限公司 用于深度神经网络的混合精度量化策略确定方法和系统
CN114611697B (zh) * 2022-05-11 2022-09-09 上海登临科技有限公司 神经网络量化及部署方法、系统、电子设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101873138A (zh) * 2010-06-11 2010-10-27 江南大学 浮点量化数字信号的降位转换方法及转换器

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8520736B2 (en) * 2009-04-14 2013-08-27 Fastvdo, Llc Real-time superresolution and video transmission
KR102564456B1 (ko) * 2017-10-19 2023-08-07 삼성전자주식회사 뉴럴 네트워크의 파라미터를 양자화하는 장치 및 방법
US11562247B2 (en) * 2019-01-24 2023-01-24 Microsoft Technology Licensing, Llc Neural network activation compression with non-uniform mantissas

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101873138A (zh) * 2010-06-11 2010-10-27 江南大学 浮点量化数字信号的降位转换方法及转换器

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
YongweiZhao等.Cambricon-F:machine learning computers with fractal von neumann architecture.《2019ACM/IEEE 46th Annual International Symposium on Computer Architecture》.2019,788-801 . *
林志文 ; 林志贤 ; 郭太良 ; 林珊玲 ; .基于FPGA加速的卷积神经网络识别系统.电子技术应用.2020,(第02期),全文. *

Also Published As

Publication number Publication date
CN111930673A (zh) 2020-11-13

Similar Documents

Publication Publication Date Title
US20200134460A1 (en) Processing method and accelerating device
CN109993296B (zh) 量化实现方法及相关产品
CN110689125A (zh) 计算装置
CN111930673B (zh) 异构智能处理量化装置、量化方法、电子设备及存储介质
EP3660629A1 (en) Data processing apparatus and method
CN111381871B (zh) 运算方法、装置及相关产品
CN109521994A (zh) 乘法硬件电路、片上系统及电子设备
CN109325590B (zh) 用于实现计算精度可变的神经网络处理器的装置
WO2023040389A1 (zh) 转数方法、存储介质、装置及板卡
CN111930681B (zh) 一种计算装置及相关产品
CN109389218B (zh) 数据压缩方法及压缩装置
CN113238987B (zh) 量化数据的统计量化器、存储装置、处理装置及板卡
CN109697509B (zh) 处理方法及装置、运算方法及装置
CN112200299B (zh) 神经网络计算装置、数据处理方法及装置
CN111930670B (zh) 异构智能处理量化装置、量化方法、电子设备及存储介质
CN108960420B (zh) 处理方法及加速装置
CN111368978B (zh) 一种离线量化工具的精度提升方法
CN109389209A (zh) 处理装置及处理方法
CN116954551A (zh) 一种数据处理方法、装置、设备及存储介质
CN111930674B (zh) 乘累加运算装置及方法、异构智能处理器及电子设备
CN109558109B (zh) 数据运算装置及相关产品
CN111047024B (zh) 一种计算装置及相关产品
CN116644783A (zh) 模型训练方法、对象处理方法及装置、电子设备、介质
CN109583581B (zh) 数据转换装置及相关产品
CN111047023B (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
GR01 Patent grant
GR01 Patent grant