CN111930670B - 异构智能处理量化装置、量化方法、电子设备及存储介质 - Google Patents
异构智能处理量化装置、量化方法、电子设备及存储介质 Download PDFInfo
- Publication number
- CN111930670B CN111930670B CN202010798221.3A CN202010798221A CN111930670B CN 111930670 B CN111930670 B CN 111930670B CN 202010798221 A CN202010798221 A CN 202010798221A CN 111930670 B CN111930670 B CN 111930670B
- Authority
- CN
- China
- Prior art keywords
- represented
- neural network
- data
- bit
- uniform
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/061—Physical 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本公开提供了一种异构智能处理量化装置、神经网络量化方法、电子设备及存储介质,异构智能处理装置应用于异构智能处理器,异构智能处理器包括通用处理器和智能处理器,其中智能处理器包括控制电路和多个运算电路,所述异构智能处理量化装置用于将异构神经网络中的权值和神经元量化为非均匀数,所述异构智能处理量化装置包括:系数确定模块,用于基于训练好的浮点数表示的神经网络,确定所述浮点数表示的数据与非均匀数表示的数据之间的缩放系数和偏移系数;量化模块,用于根据所述缩放系数和所述偏移系数,将所述浮点数表示的神经网络量化为非均匀数表示的神经网络。可无精度损失的对神经网络进行量化,量化后的神经网络可提高数据处理速度。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种异构智能处理量化装置、神经网络量化方法、电子设备及存储介质。
背景技术
神经网络是一种模仿生物神经网络结构和功能的数学模型。神经网络被广泛应用到图形识别、语音识别、自然语音处理等领域中。然而随着神经网络的复杂度日益提升,神经网络内的数据在不断的增大,数据处理是神经网络中进行的必要步骤,计算时通常采用功耗消耗巨大的浮点数或定点数乘法计算,数据处理效率低、速度慢。
发明内容
本公开的主要目的在于提供一种异构智能处理量化装置、神经网络量化方法、电子设备及存储介质,可解决上述技术问题。
为实现上述目的,本公开实施例第一方面提供一种异构智能处理器,所述异构智能处理装置应用于异构智能处理器,所述异构智能处理器包括通用处理器和智能处理器,其中智能处理器包括控制电路和多个运算电路,所述异构智能处理量化装置用于将异构神经网络中的权值和神经元量化为非均匀数,所述异构智能处理量化装置包括:
系数确定模块,用于基于训练好的浮点数表示的神经网络,确定所述浮点数表示的数据与非均匀数表示的数据之间的缩放系数和偏移系数;
量化模块,用于根据所述缩放系数和所述偏移系数,将所述浮点数表示的神经网络量化为非均匀数表示的神经网络。
可选的,所述非均匀数表示的数据包括符号位、指数位、尾数位和非均匀位。
可选的,所述系数确定模块包括:
统计子模块,用于在所述训练好的浮点数表示的神经网络中统计每一层神经网络数据的范围;
系数确定子模块,用于确定所述每一层神经网络数据的范围中所述浮点数表示的数据与所述非均匀数表示的数据之间的缩放系数和偏移系数。
可选的,所述量化模块,具体用于在所述非均匀数表示的神经网络的执行过程中,使神经元数据在进入预置的激活函数时按照所述缩放系数进行缩放并按照所述偏移系数进行偏移,以将任意分布范围的浮点数表示的数据映射为非均匀数表示的数据。
可选的,所述量化模块包括:
缩放偏移子模块,用于将所述浮点数表示的神经网络按照所述缩放系数进行缩放并按照所述偏移系数进行偏移,得到所述非均匀数表示的神经网络中非均匀数数据可以表示的实数范围;
映射子模块,用于将所述浮点数表示的实数按照最近邻原则映射到所述非均匀数数据可以表示的实数范围中,得到所述非均匀数表示的实数;
计算子模块,用于根据所述非均匀数表示的实数,计算所述非均匀数表示的数据的符号位、指数位、尾数位和非均匀位。
可选的,在每一层神经网络中所有权值、所有输入神经元、所有输出神经元分别共享一组缩放系数和偏移系数。
可选的,对于所述神经网络中某一层神经网络的所有权值组成的集合,将所述集合量化为所述非均匀数表示的集合。
可选的,所述非均匀数表示的数据包括1位符号位、3位指数位、3位尾数位和1位非均匀位;
所述1位符号位,用于表示数据的正负,其中,当所述1位符号位为0时表示正数,为1时表示负数;
所述3位指数位,用于表示数据的数值,所述3位指数位为无符号定点数,所述数值的范围从0到7;
所述3位尾数位,用于表示数据的精度,所述3位尾数位为无符号定点数,数值范围从0到7;
所述1位非均匀位,用于增强有效数据表示精度。
本公开实施例第二方面提供一种神经网络量化方法,包括:
基于训练好的浮点数表示方法表示的神经网络,确定所述浮点数表示的数据与非均匀数表示的数据之间的缩放系数和偏移系数;
根据所述缩放系数和所述偏移系数,将所述浮点数表示方法表示的神经网络量化为非均匀数表示的神经网络。
本公开实施例第三方面提供了一种电子设备,包括:存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器包括本公开实施例第一方面提供的异构智能处理量化装置。
本公开实施例第四方面提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现本公开实施例第一方面提供的神经网络量化方法。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本公开一实施例提供的智能处理器的结构示意图;
图2为本公开一实施例提供的智能处理器的结构示意图;
图3为本公开一实施例提供的异构智能处理量化装置的结构示意图;
图4为本公开一实施例提供的8位非均匀数的结构示意图;
图5为本公开一实施例提供的神经网络量化方法的流程示意图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
本公开的说明书和权利要求书及所述附图中的术语″第一″、″第二″、″第三″和″第四″等是用于区别不同对象,而不是用于描述特定顺序。此外,术语″包括″和″具有″以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本公开的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本公开提供了一种异构智能处理器,该异构智能处理器包括通用处理器和智能处理器,请参阅图1,图1为本公开一实施例提供的智能处理器的结构示意图,其中智能处理器包括控制电路101和多个运算电路102。控制电路101用于接收非均匀数表示的神经网络专用的运算指令,并将所述运算指令转换为可直接控制所述运算电路的控制信号,运算电路102,用于执行数据类型为非均匀数的数据的任务。其中,每个运算电路102可以独立运行所分配到的各种任务,例如:卷积运算任务、池化任务或全连接任务等。本公开不对控制电路和运算电路所运行的任务做出具体限制。
更多的,如图2所示,该智能处理器还可以包括内存电路201和直接内存访问电路202。内存电路201与控制电路101相连,用于存储神经网络中模型参数的数据;直接内存访问电路202,与内存电路201相连,用于将所述数据从内存电路201搬运到运算电路102。
请参阅图3,图3为本公开一实施例提供的智能处理量化装置的结构示意图,该异构智能处理装置应用于图1所示的异构智能处理器,所述异构智能处理量化装置用于将异构神经网络中的权值和神经元量化为非均匀数,所述异构智能处理量化装置包括:
系数确定模块301,用于基于训练好的浮点数表示的神经网络,确定所述浮点数表示的数据与非均匀数表示的数据之间的缩放系数和偏移系数;
量化模块302,用于根据所述缩放系数和所述偏移系数,将所述浮点数表示的神经网络量化为非均匀数表示的神经网络。
其中,由于训练好的浮点数表示的神经网络其训练过程是在浮点数表示的基础上完成的,训练过程未考虑神经网络优化影响,因此该方法未影响深度神经网络可能达到的最高识别精度。
在一可选实施例中,浮点数表示的神经网络中,可以是所有数据均由浮点数表示,也可以是部分数据由浮点数表示。例如,神经网络中的待运算数据由浮点数表示,如神经元、权值、梯度等数据。还可以是运算类型、与该运算类型对应的运算参数等数据由浮点数表示。本公开对此不做限制。
在一可选实施例中,该系数确定模块301可以对神经网络中某一个或多个层进行量化,也可以对神经网络中每一层均进行量化。示例性的,该待量化的层可以是卷积层、全连接层、池化层等进行神经网络运算所涉及到的对数据进行运算或处理的层,也可以是其它层,本公开对此不做限制。
在一可选实施例中,非均匀数表示的神经网络中,可以是所有数据均由非均匀数表示,也可以是部分数据由非均匀数表示。例如,神经网络中的待运算数据由非均匀数表示,如神经元、权值、梯度等数据。还可以是神经元、权值、梯度、运算类型、与该运算类型对应的运算参数等所有数据均由非均匀数表示。本公开对此不做限制。
在一可选实施例中,非均匀数是一种二进制数据类型,非均匀数表示的数据的位数可以包括8位(以下以LOGNN8表示8位非匀均数)。非均匀数表示的数据可以表示数据精度较高的小数也能表示一定范围内实数。因此,将浮点数表示的神经网络量化为非均匀数表示的神经网络,其精度不会产生损失。
更多的,可以先对原始神经网络中的神经元进行量化,后对原始神经网络中的权值进行量化。也可以是先对原始神经网络中的权值进行量化,后对原始神经网络中的神经元进行量化。还可以是对原始神经网络中的神经元和权值同时进行量化。本公开对此不做限制。
在本公开实施中,非均匀数表示的神经网络可较好的适配浮点数表示的神经网络的数据分布,在不用修改浮点数表示的神经网络训练过程和推理过程步骤的基础上,直接将浮点数表示的神经网络转换为非均匀数表示的神经网络。实现了简单快捷的神经网络优化技术。
在本公开其中一个实施例中,所述非均匀数表示的数据包括符号位、指数位、尾数位和非均匀位。
其中,符号位用于表示数据的正负。指数位用于表示数据的数值。尾数位用于表示数据的精度。非均匀位用于增强有效数据表示精度。
在本公开其中一个实施例中,所述系数确定模块301包括:统计子模块,用于在所述训练好的浮点数表示的神经网络中统计每一层神经网络数据的范围;系数确定子模块,用于确定所述每一层神经网络数据的范围中所述浮点数表示的数据与所述非均匀数表示的数据之间的缩放系数和偏移系数。
可选的,针对神经网络中的不同层,其每一层对应的缩放系数和偏移系数可以会有所不同。在一示例中,神经网络包括1个卷积层、3个全连接层、2个池化层。其中,可能是1个卷积层、3个全连接层、2个池化层共6个层的每个层均对应不同的缩放系数和偏移系数。
在本公开其中一个实施例中,所述量化模块302,具体用于在所述非均匀数表示的神经网络的执行过程中,使神经元数据在进入预置的激活函数时按照所述缩放系数进行缩放并按照所述偏移系数进行偏移,以将任意分布范围的浮点数表示的数据映射为非均匀数表示的数据。
在本公开其中一个实施例中,所述量化模块302包括:缩放偏移子模块,用于将所述浮点数表示的神经网络按照所述缩放系数进行缩放并按照所述偏移系数进行偏移,得到所述非均匀数表示的神经网络中非均匀数数据可以表示的实数范围;映射子模块,用于将所述浮点数表示的实数按照最近邻原则映射到所述非均匀数数据可以表示的实数范围中,得到所述非均匀数表示的实数;计算子模块,用于根据所述非均匀数表示的实数,计算所述非均匀数表示的数据的符号位、指数位、尾数位和非均匀位。
在本实施例中,由于浮点数可以表示的实数范围与非匀均数可以表示的实数范围之间可能会有所差异,例如,浮点数可以表示的实数范围为-64到64之间。8位非匀均数可以表示的实数范围为-44到44之间。按照最邻近原则,浮点数表示的实数46映射到非均匀数数据可以表示的实数范围中,则为44,然后根据非均匀数表示的实数44,计算非均匀数表示的数据的符号位、指数位、尾数位和非均匀位。
可选的,该缩放偏移子模块可以是乘法器和加法器,乘法器可用于对浮点数表示的神经网络按照缩放系数进行缩放,加法器可用于对浮点数表示的神经网络按照偏移系数进行偏移。
在本公开其中一个实施例中,在每一层神经网络中所有权值、所有输入神经元、所有输出神经元分别共享一组缩放系数和偏移系数。
在本实施例中,针对不同的数据种类,其缩放系数和偏移系数也可能会不同,因此,针对不同的层,每一层内不同的数据的种类,其缩放系数和偏移系数均可能不同,也即针对同一层内数据种类相同的数据可以共享一组缩放系数和偏移系数。
更多的,还可以对同一层内的梯度数据、运算类型、与该运算类型对应的运算参数等等分别共享一组缩放系数和偏移系数。
在本公开其中一个实施例中,对于所述神经网络中某一层神经网络的所有权值组成的集合,将所述集合量化为所述非均匀数表示的集合。
在本公开其中一个实施例中,所述非均匀数表示的数据包括1位符号位、3位指数位、3位尾数位和1位非均匀位;所述1位符号位,用于表示数据的正负,其中,当所述1位符号位为0时表示正数,为1时表示负数;所述3位指数位,用于表示数据的数值,所述3位指数位为无符号定点数,所述数值的范围从0到7;所述3位尾数位,用于表示数据的精度,所述3位尾数位为无符号定点数,数值范围从0到7;所述1位非均匀位,用于增强有效数据表示精度。
具体的,如图4所示,8位非均匀数表示的数据中包括1比特符号位SIGN、3比特指数位EXPONENT、3比特尾数位MANTISSA和1比特非均匀位EQU。8位非均匀数表示的数据定义如下:
当3位指数位等于23-1并且3位尾数位不等于0时,8位非均匀数表示的数据是非数(NAN);
当3位指数位等于23-1并且3位尾数位等于0时,8位非均匀数表示的数据是无穷数(INF)。其中,符号位为0时表示正无穷数,符号位为1时,符号位为1时表示负无穷数;
当3位指数位不等于23-1或者0时,为8位非均匀数表示的数据的标准模式,8位非均匀数表示的数据a=(-1)SIGN×2EXPONENT-3×(1+MATISSA×2-3×(1+2-EQU));
当3位指数位不等于0时,为8位非均匀数表示的数据的非标准模式8位非均匀数表示的数据a=(-1)SIGN×2-3×1+MATISSA×2-3×(1+2-EQU)。
可理解的,8位非均匀数表示的数据范围为从-1×24×(1+7×2-3×(1+20))=-44到1×24×(1+7×2-3×(1+20))=44。
在本实施例中,8位非均匀数仅使用了8位二进制序列用来表示数据。相比较于传统深度神经网络中使用的32位浮点数,数据存储量减少到四分之一,极大的缓解了深度神经网络算法在CPU、GPU等传统计算机硬件系统中的访存瓶颈问题。数据存储量的减少也使得深度神经网络模型在移动终端设备中的运行成为了可能。8位非均匀数能够表示从较高精度的小数数据以及跨越从负44到正44的实数范围。可较好的适配32位浮点数表示的深度神经网络模型中不同层数据各自独立的高斯分布特点,对于较高精度小数数据的支持也满足了不同深度神经网络模型的特异性需求。
在本实施例中,非均匀数数据规避了功耗消耗巨大的浮点数乘法计算,使用尽可能简单的逻辑完成非均匀数数据乘法运算操作。非均匀数数据乘法运算相比较于传统数据表示方法的乘法运算减少了完成1次等效乘法运算的功耗,减小了乘法器单元的数字电路面积。非均匀数数据在人工神经网络模型中,可以实现与浮点数数据的人工神经网络模型相同的神经网络识别精度。
请参阅图5,图5为本公开一实施例提供的神经网络量化方法的流程示意图,该神经网络量化可适用于图1或图2所示的异构智能处理量化装置,所述异构智能处理装置应用于异构智能处理器,所述异构智能处理器包括通用处理器和智能处理器,其中智能处理器包括控制电路和多个运算电路,所述异构智能处理量化装置用于将异构神经网络中的权值和神经元量化为非均匀数。该量化方法包括:
S501、基于训练好的浮点数表示方法表示的神经网络,确定所述浮点数表示的数据与非均匀数表示的数据之间的缩放系数和偏移系数;
S502、根据所述缩放系数和所述偏移系数,将所述浮点数表示方法表示的神经网络量化为非均匀数表示的神经网络。
在本公开其中一个实施例中,所述非均匀数表示的数据包括符号位、指数位、尾数位和非均匀位。
在本公开其中一个实施例中,步骤S501:基于训练好的浮点数表示方法表示的神经网络,确定所述浮点数表示的数据与非均匀数表示的数据之间的缩放系数和偏移系数包括:
在所述训练好的浮点数表示的神经网络中统计每一层神经网络数据的范围;
确定所述每一层神经网络数据的范围中所述浮点数表示的数据与所述非均匀数表示的数据之间的缩放系数和偏移系数。
在本公开其中一个实施例中,步骤S502包括:在所述非均匀数表示的神经网络的执行过程中,使神经元数据在进入预置的激活函数时按照所述缩放系数进行缩放并按照所述偏移系数进行偏移,以将任意分布范围的浮点数表示的数据映射为非均匀数表示的数据。
在本公开其中一个实施例中,所述步骤S502:根据所述缩放系数和所述偏移系数,将所述浮点数表示方法表示的神经网络量化为非均匀数表示的神经网络包括:
将所述浮点数表示的神经网络按照所述缩放系数进行缩放并按照所述偏移系数进行偏移,得到所述非均匀数表示的神经网络中非均匀数数据可以表示的实数范围;
将所述浮点数表示的实数按照最近邻原则映射到所述非均匀数数据可以表示的实数范围中,得到所述非均匀数表示的实数;
根据所述非均匀数表示的实数,计算所述非均匀数表示的数据的符号位、指数位、尾数位和非均匀位。
在本公开其中一个实施例中,在每一层神经网络中所有权值、所有输入神经元、所有输出神经元分别共享一组缩放系数和偏移系数。
在本公开其中一个实施例中,对于所述神经网络中某一层神经网络的所有权值组成的集合,将所述集合量化为所述非均匀数表示的集合。
在本公开其中一个实施例中,所述非均匀数表示的数据包括1位符号位、3位指数位、3位尾数位和1位非均匀位;
所述1位符号位,用于表示数据的正负,其中,当所述1位符号位为0时表示正数,为1时表示负数;
所述3位指数位,用于表示数据的数值,所述3位指数位为无符号定点数,所述数值的范围从0到7;
所述3位尾数位,用于表示数据的精度,所述3位尾数位为无符号定点数,数值范围从0到7;
所述1位非均匀位,用于增强有效数据表示精度。
本公开还提供了一种电子设备,存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器为上述的异构智能处理器,上述异构智能处理器包括上述的异构智能处理量化装置。
在一些实施例中,电子设备包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
本公开还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如上述神经网络量化方法的全部或部分步骤。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本公开所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器((RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指示相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROMD、随机存取器(英文:Random Access Memory,简称:RAMD、磁盘或光盘等。
以上对本发明实施例进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上上述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种异构智能处理量化装置,其特征在于,所述异构智能处理装置应用于异构智能处理器,所述异构智能处理器包括通用处理器和智能处理器,其中智能处理器包括控制电路和多个运算电路,所述异构智能处理量化装置用于将异构神经网络中的权值和神经元量化为非均匀数,所述异构智能处理量化装置包括:
系数确定模块,用于基于训练好的浮点数表示的神经网络,确定所述浮点数表示的数据与非均匀数表示的数据之间的缩放系数和偏移系数;
量化模块,用于根据所述缩放系数和所述偏移系数,将所述浮点数表示的神经网络量化为非均匀数表示的神经网络;
所述量化模块,具体用于在所述非均匀数表示的神经网络的执行过程中,使神经元数据在进入预置的激活函数时按照所述缩放系数进行缩放并按照所述偏移系数进行偏移,以将任意分布范围的浮点数表示的数据映射为非均匀数表示的数据。
2.根据权利要求1所述的异构智能处理量化装置,其特征在于,所述非均匀数表示的数据包括符号位、指数位、尾数位和非均匀位。
3.根据权利要求1所述的异构智能处理量化装置,其特征在于,所述系数确定模块包括:
统计子模块,用于在所述训练好的浮点数表示的神经网络中统计每一层神经网络数据的范围;
系数确定子模块,用于确定所述每一层神经网络数据的范围中所述浮点数表示的数据与所述非均匀数表示的数据之间的缩放系数和偏移系数。
4.根据权利要求2所述的异构智能处理量化装置,其特征在于,所述量化模块包括:
缩放偏移子模块,用于将所述浮点数表示的神经网络按照所述缩放系数进行缩放并按照所述偏移系数进行偏移,得到所述非均匀数表示的神经网络中非均匀数数据可以表示的实数范围;
映射子模块,用于将所述浮点数表示的实数按照最近邻原则映射到所述非均匀数数据可以表示的实数范围中,得到所述非均匀数表示的实数;
计算子模块,用于根据所述非均匀数表示的实数,计算所述非均匀数表示的数据的符号位、指数位、尾数位和非均匀位。
5.根据权利要求3所述的异构智能处理量化装置,其特征在于,在每一层神经网络中所有权值、所有输入神经元、所有输出神经元分别共享一组缩放系数和偏移系数。
6.根据权利要求1所述的异构智能处理量化装置,其特征在于,对于所述神经网络中某一层神经网络的所有权值组成的集合,将所述集合量化为所述非均匀数表示的集合。
7.根据权利要求1所述的异构智能处理量化装置,其特征在于,所述非均匀数表示的数据包括1位符号位、3位指数位、3位尾数位和1位非均匀位;
所述1位符号位,用于表示数据的正负,其中,当所述1位符号位为0时表示正数,为1时表示负数;
所述3位指数位,用于表示数据的数值,所述3位指数位为无符号定点数,所述数值的范围从0到7;
所述3位尾数位,用于表示数据的精度,所述3位尾数位为无符号定点数,数值范围从0到7;
所述1位非均匀位,用于增强有效数据表示精度。
8.一种神经网络量化方法,其特征在于,包括:
基于训练好的浮点数表示方法表示的神经网络,确定所述浮点数表示的数据与非均匀数表示的数据之间的缩放系数和偏移系数;
根据所述缩放系数和所述偏移系数,将所述浮点数表示方法表示的神经网络量化为非均匀数表示的神经网络,具体包括:在所述非均匀数表示的神经网络的执行过程中,使神经元数据在进入预置的激活函数时按照所述缩放系数进行缩放并按照所述偏移系数进行偏移,以将任意分布范围的浮点数表示的数据映射为非均匀数表示的数据。
9.一种电子设备,包括:存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器包括权利要求1至7中的任一项所述的异构智能处理量化装置。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现权利要求8所述的神经网络量化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010798221.3A CN111930670B (zh) | 2020-08-10 | 2020-08-10 | 异构智能处理量化装置、量化方法、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010798221.3A CN111930670B (zh) | 2020-08-10 | 2020-08-10 | 异构智能处理量化装置、量化方法、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111930670A CN111930670A (zh) | 2020-11-13 |
CN111930670B true CN111930670B (zh) | 2023-04-07 |
Family
ID=73307868
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010798221.3A Active CN111930670B (zh) | 2020-08-10 | 2020-08-10 | 异构智能处理量化装置、量化方法、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111930670B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114611697B (zh) * | 2022-05-11 | 2022-09-09 | 上海登临科技有限公司 | 神经网络量化及部署方法、系统、电子设备及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8520736B2 (en) * | 2009-04-14 | 2013-08-27 | Fastvdo, Llc | Real-time superresolution and video transmission |
CN101873138A (zh) * | 2010-06-11 | 2010-10-27 | 江南大学 | 浮点量化数字信号的降位转换方法及转换器 |
WO2019143027A1 (ko) * | 2018-01-16 | 2019-07-25 | 한국과학기술원 | 이미지 파이프라인 처리 방법 및 장치 |
US11562247B2 (en) * | 2019-01-24 | 2023-01-24 | Microsoft Technology Licensing, Llc | Neural network activation compression with non-uniform mantissas |
-
2020
- 2020-08-10 CN CN202010798221.3A patent/CN111930670B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111930670A (zh) | 2020-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109284823B (zh) | 一种运算装置及相关产品 | |
US11727276B2 (en) | Processing method and accelerating device | |
KR102647858B1 (ko) | 컨볼루션 신경망 계산을 위한 저전력 하드웨어 가속 방법 및 시스템 | |
CN109478144B (zh) | 一种数据处理装置和方法 | |
JP7325158B2 (ja) | ニューラル・ネットワーク・コアにおける動的精度のためのデータ表現 | |
CN107944545B (zh) | 应用于神经网络的计算方法及计算装置 | |
CN110610237A (zh) | 模型的量化训练方法、装置及存储介质 | |
CN109784420B (zh) | 一种图像处理方法及装置、计算机设备和存储介质 | |
KR102655950B1 (ko) | 뉴럴 네트워크의 고속 처리 방법 및 그 방법을 이용한 장치 | |
CN113065997B (zh) | 一种图像处理方法、神经网络的训练方法以及相关设备 | |
JP2022507704A (ja) | 適応量子化方法及び装置、デバイス、媒体 | |
CN111930670B (zh) | 异构智能处理量化装置、量化方法、电子设备及存储介质 | |
CN110826706B (zh) | 用于神经网络的数据处理方法和装置 | |
CN111383157A (zh) | 图像处理方法、装置、车载运算平台、电子设备及系统 | |
CN112200299B (zh) | 神经网络计算装置、数据处理方法及装置 | |
CN111930673B (zh) | 异构智能处理量化装置、量化方法、电子设备及存储介质 | |
WO2023040389A1 (zh) | 转数方法、存储介质、装置及板卡 | |
CN111930674A (zh) | 乘累加运算装置及方法、异构智能处理器及电子设备 | |
CN109558109B (zh) | 数据运算装置及相关产品 | |
CN114692865A (zh) | 一种神经网络量化训练方法、装置及相关产品 | |
JPH0713768A (ja) | 連続論理計算システムおよびその使用方法 | |
CN111198714A (zh) | 重训练方法及相关产品 | |
CN109582277A (zh) | 数据处理方法、装置及相关产品 | |
JP2020067897A (ja) | 演算処理装置、学習プログラム及び学習方法 | |
CN115600657A (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 |