CN110874625B - 一种数据处理方法及装置 - Google Patents
一种数据处理方法及装置 Download PDFInfo
- Publication number
- CN110874625B CN110874625B CN201811012643.2A CN201811012643A CN110874625B CN 110874625 B CN110874625 B CN 110874625B CN 201811012643 A CN201811012643 A CN 201811012643A CN 110874625 B CN110874625 B CN 110874625B
- Authority
- CN
- China
- Prior art keywords
- quantized
- data
- activation
- data layer
- dividing
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 23
- 230000004913 activation Effects 0.000 claims abstract description 98
- 238000013528 artificial neural network Methods 0.000 claims abstract description 19
- 238000000034 method Methods 0.000 claims description 34
- 238000013139 quantization Methods 0.000 claims description 24
- 238000012545 processing Methods 0.000 claims description 16
- 238000001514 detection method Methods 0.000 claims description 12
- 230000008569 process Effects 0.000 claims description 9
- 230000011218 segmentation Effects 0.000 claims description 7
- 238000000638 solvent extraction Methods 0.000 claims 2
- 238000000275 quality assurance Methods 0.000 description 9
- 230000002708 enhancing effect Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000015654 memory Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 210000004556 brain Anatomy 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000001788 irregular Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000006403 short-term memory Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007787 long-term memory Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000010977 unit operation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本申请实施例提供了一种数据处理方法及装置,数据处理方法可以包括:获取深度神经网络中的待量化数据层,其中,待量化数据层包括参数层和/或激活量;根据待量化数据层中各待量化数据与预设阈值的大小关系,将待量化数据层划分为小值区域及大值区域,其中,小值区域中的各待量化数据小于大值区域中的各待量化数据;分别对小值区域中各待量化数据以及大值区域中各待量化数据进行量化,得到量化后的待量化数据层。通过本方案,可以实现同时满足高精度及高动态范围的需求,提高DNN的运算性能。
Description
技术领域
本申请涉及机器学习技术领域,特别是涉及一种数据处理方法及装置。
背景技术
DNN(Deep Neural Network,深度神经网络)作为机器学习研究中的一个新兴领域,通过模仿人脑的机制来解析数据,是一种通过建立和模拟人脑进行分析学习的智能模型。目前,例如CNN(Convolutional NeuralNetwork,卷积神经网络)、RNN(RecurrentNeuralNetwork,循环神经网络)、LSTM(Long Short Term Memory,长短期记忆网络)等DNN已在目标检测与分割、行为检测与识别、语音识别等方面得到了很好的应用。
传统的DNN一般采用双精度或单精度浮点数据的乘/加操作来实现网络基本单元的运算,随着参与运算的数据量越来越多,使得DNN的计算量越来越大,这样,给实现DNN的硬件资源带来巨大压力。
为了减少硬件资源的压力,需要对DNN的各数据层(包括参数层和激活量)进行定点化压缩,将数据层中的各数据量化至统一的较低比特数。但是,由于数据层中数据的分布具有长尾特性,将所有数据量化至统一的比特数,无法同时满足高精度及高动态范围的需求,导致DNN的运算性能较差。
发明内容
本申请实施例的目的在于提供一种数据处理方法及装置,以实现同时满足高精度及高动态范围的需求,提高DNN的运算性能。具体技术方案如下:
第一方面,本申请实施例提供了一种数据处理方法,所述方法包括:
获取深度神经网络中的待量化数据层,其中,所述待量化数据层包括参数层和/或激活量;
根据所述待量化数据层中各待量化数据与预设阈值的大小关系,将所述待量化数据层划分为小值区域及大值区域,其中,所述小值区域中的各待量化数据小于所述大值区域中的各待量化数据;
分别对所述小值区域中各待量化数据以及所述大值区域中各待量化数据进行量化,得到量化后的待量化数据层。
可选的,所述根据所述待量化数据层中各待量化数据与预设阈值的大小关系,将所述待量化数据层划分为小值区域及大值区域,包括:
将所述待量化数据层中小于或等于预设阈值的待量化数据划分为小值区域,并将所述待量化数据层中大于所述预设阈值的待量化数据划分为大值区域;
或者,
将所述待量化数据层中小于所述预设阈值的待量化数据划分为小值区域,并将所述待量化数据层中大于或等于所述预设阈值的待量化数据划分为大值区域。
可选的,所述分别对所述小值区域中各待量化数据以及所述大值区域中各待量化数据进行量化,包括:
将所述小值区域中各待量化数据量化至第一预设比特数,并将所述大值区域中各待量化数据量化至第二预设比特数,其中,所述第二预设比特数大于或等于所述第一预设比特数。
可选的,所述根据所述待量化数据层中各待量化数据与预设阈值的大小关系,将所述待量化数据层划分为小值区域及大值区域,包括:
将所述待量化数据层中小于或等于预设阈值的待量化数据划分为小值区域,并将所述待量化数据层中大于所述预设阈值的待量化数据划分为大值区域;
所述分别对所述小值区域中各待量化数据以及所述大值区域中各待量化数据进行量化,包括:
将所述小值区域中各待量化数据量化至第一预设比特数;
分别计算所述大值区域中各待量化数据与所述预设阈值的残差,并将各残差量化至所述第一预设比特数。
可选的,在所述根据所述待量化数据层中各待量化数据与预设阈值的大小关系,将所述待量化数据层划分为小值区域及大值区域之后,所述方法还包括:
对所述小值区域中各待量化数据标记第一预设标签,并对所述大值区域中各待量化数据标记第二预设标签。
可选的,所述对所述小值区域中各待量化数据标记第一预设标签,并对所述大值区域中各待量化数据标记第二预设标签,包括:
利用与所述待量化数据层大小一致的掩膜单元对所述待量化数据层进行标记,其中,所述掩膜单元中,与所述小值区域中各待量化数据相同位的数值为0、与所述大值区域中各待量化数据相同位的数值为1。
第二方面,本申请实施例提供了一种数据处理装置,所述装置包括:
获取模块,用于获取深度神经网络中的待量化数据层,其中,所述待量化数据层包括参数层和/或激活量;
划分模块,用于根据所述待量化数据层中各待量化数据与预设阈值的大小关系,将所述待量化数据层划分为小值区域及大值区域,其中,所述小值区域中的各待量化数据小于所述大值区域中的各待量化数据;
量化模块,用于分别对所述小值区域中各待量化数据以及所述大值区域中各待量化数据进行量化,得到量化后的待量化数据层。
可选的,所述划分模块,具体用于:
将所述待量化数据层中小于或等于预设阈值的待量化数据划分为小值区域,并将所述待量化数据层中大于所述预设阈值的待量化数据划分为大值区域;
或者,
将所述待量化数据层中小于所述预设阈值的待量化数据划分为小值区域,并将所述待量化数据层中大于或等于所述预设阈值的待量化数据划分为大值区域。
可选的,所述量化模块,具体用于:
将所述小值区域中各待量化数据量化至第一预设比特数,并将所述大值区域中各待量化数据量化至第二预设比特数,其中,所述第二预设比特数大于或等于所述第一预设比特数。
可选的,所述划分模块,具体用于:
将所述待量化数据层中小于或等于预设阈值的待量化数据划分为小值区域,并将所述待量化数据层中大于所述预设阈值的待量化数据划分为大值区域;
所述量化模块,具体用于:
将所述小值区域中各待量化数据量化至第一预设比特数;
分别计算所述大值区域中各待量化数据与所述预设阈值的残差,并将各残差量化至所述第一预设比特数。
可选的,所述装置还包括:
标记模块,用于对所述小值区域中各待量化数据标记第一预设标签,并对所述大值区域中各待量化数据标记第二预设标签。
可选的,所述标记模块,具体用于:
利用与所述待量化数据层大小一致的掩膜单元对所述待量化数据层进行标记,其中,所述掩膜单元中,与所述小值区域中各待量化数据相同位的数值为0、与所述大值区域中各待量化数据相同位的数值为1。
本申请实施例提供的一种数据处理方法及装置,通过获取DNN中的待量化数据层,根据待量化数据层中各待量化数据与预设阈值的大小关系,将待量化数据层划分为小值区域及大值区域(其中,小值区域中的各待量化数据小于大值区域中的各待量化数据),分别对小值区域中各待量化数据以及大值区域中各待量化数据进行量化,得到量化后的待量化数据层。根据待量化数据层中各待量化数据与预设阈值的大小关系,将待量化数据层划分为两个部分,第一部分包含数值小的待量化数据,将其称为小值区域;第二部分包含数值大的待量化数据,将其称为大值区域。在对待量化数据层进行量化时,分别对小值区域和大值区域中的各待量化数据进行量化。由于小值区域中待量化数据小,可以将这些待量化数据量化至较低比特数;由于大值区域中待量化数据大,可以将这些待量化数据量化至较高比特数。这样,在不显著增强模型比特数的前提下,既可以满足对较小的待量化数据的高精度需求,也可以满足对较大的待量化数据的高动态范围的需求,从而提高了DNN的运算性能。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例的数据处理方法的流程示意图;
图2为本申请实施例的残差量化后待量化数据层与后续单元运算分解示意图;
图3为本申请一实施例的激活量的分段式量化方法的流程示意图;
图4为本申请另一实施例的激活量的分段式量化方法的流程示意图;
图5为本申请实施例的数据处理装置的结构示意图;
图6为本申请实施例的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了实现同时满足高精度及高动态范围的需求,提高DNN的运算性能,本申请实施例提供了一种数据处理方法、装置、电子设备及机器可读存储介质。
下面,首先对本申请实施例所提供的数据处理方法进行介绍。
本申请实施例所提供的一种数据处理方法的执行主体可以为执行智能算法的电子设备,该电子设备可以为具有目标检测与分割、行为检测与识别或者语音识别等功能的智能设备,例如远程计算机、远程服务器、智能相机、智能语音设备等等,执行主体中应该至少包括处理器。实现本申请实施例所提供的一种数据处理方法的方式可以为设置于执行主体中的软件、硬件电路和逻辑电路中的至少一种方式。
如图1所示,本申请实施例所提供的一种数据处理方法,可以包括如下步骤:
S101,获取深度神经网络中的待量化数据层。
其中,待量化数据层包括参数层和/或激活量。参数层可以包括卷积Conv层及全连接层,各参数层中均包含有进行网络运算的参数权值张量。DNN为一个较为宽泛的数据处理方法,DNN可以为CNN、RNN、LSTM等数据处理方法中的任意一种。激活量为Conv层的输入/输出,或者內积Inner Product层的输入/输出,或者线性修正Relu层的输入/输出,或者批规范化Batch Normalization层的输入/输出,或者缩放Scale层的输入/输出,或者融合Concat层的输入/输出等,归纳来讲,激活量即为在运行DNN模型时,DNN中层与层之间传输的数据流。
DNN的量化过程,可以是按照各参数层和激活量,逐层的进行量化,也可以是同时对参数层和激活量进行量化,这里不做具体限定。
S102,根据待量化数据层中各待量化数据与预设阈值的大小关系,将待量化数据层划分为小值区域及大值区域。
其中,小值区域中的各待量化数据小于大值区域中的各待量化数据。由于待量化数据层中的待量化数据分布具有长尾特性,即较小的待量化数据数量多、较大的待量化数据数量少。所以,在统一用较小的比特数对待量化数据进行量化时,很难在量化精度与动态范围保持较好的平衡,由于大值区域的待量化数据数量较少,可以对该区域的数据量化至较高比特数,而对小值区域的待量化数据量化至较低比特数,从而在不显著增加模型比特数的前提下,在模型量化精度与动态范围之间保持较好的平衡。基于这样的特性,可以将待量化数据层划分为两个部分,即小值区域部分和大值区域部分。两个部分的划分依据于预设阈值的设定,预设阈值根据实际的数据分布和量化需求来进行设定,例如,通过对数据分布的分析,需要80%的4比特数据以及20%的8比特数据,则会将预设阈值设置的较大。
可选的,S102具体可以为:
将待量化数据层中小于或等于预设阈值的待量化数据划分为小值区域,并将待量化数据层中大于预设阈值的待量化数据划分为大值区域;
或者,
将待量化数据层中小于预设阈值的待量化数据划分为小值区域,并将待量化数据层中大于或等于预设阈值的待量化数据划分为大值区域。
在对待量化数据层进行划分时,小值区域和大值区域的区别在于小值区域中的待量化数据数量多但数值小、大值区域中的待量化数据数量少但数值大,因此,小值区域中的各待量化数据一定小于大值区域中的各待量化数据,而对于等于预设阈值的待量化数据,可以划分至小值区域也可以划分至大值区域,这里不做详细的限定。
S103,分别对小值区域中各待量化数据以及大值区域中各待量化数据进行量化,得到量化后的待量化数据层。
在对待量化数据层进行划分后,基于小值区域中待量化数据的数量大、数值小的特点,大值区域中待量化数据的数量少、数值大的特点,可以分别对小值区域和大值区域进行量化,将小值区域和大值区域中的待量化数据量化至不同的比特数,以分别满足高精度和高动态范围的需求。
可选的,S103具体可以为:
将小值区域中各待量化数据量化至第一预设比特数,并将大值区域中各待量化数据量化至第二预设比特数,其中,第二预设比特数大于或等于第一预设比特数。
对于小值区域中的各待量化数据,可以利用第一量化器将各待量化数据量化至第一预设比特数;而对于大值区域中的各待量化数据,可以利用第二量化器将各待量化数据量化至第二预设比特数。第一量化器和第二量化器可以为任一种固定步长的线性量化器或者任一种可变步长的非线性量化器,量化器即为进行数据量化时可采用的具体量化公式,这里不做具体的限定和赘述。
第二预设比特数大于或等于第一预设比特数,例如,第一预设比特数可以为2比特、4比特,第二预设比特数可以为8比特、16比特等。较低的第一预设比特数可以保证量化后的数据具有较高的精度,而较高的第二预设比特数可以保证量化后的数据具有较高的动态范围。
通过上述方式处理后,量化后的待量化数据层包含了两套量化参数来分别应对大值区域和小值区域,但是大值区域和小值区域的空间分布规则是无规律的,在进行解码时,并不知道哪些数据的比特数大、哪些数据的比特数小,导致后续单元在做运算时较为不便,因此,为了提高后续单元做运算(例如卷积运算)的方便性,可选的,S102具体可以为:
将待量化数据层中小于或等于预设阈值的待量化数据划分为小值区域,并将待量化数据层中大于预设阈值的待量化数据划分为大值区域。
则S103,具体可以为:
将小值区域中各待量化数据量化至第一预设比特数;
分别计算大值区域中各待量化数据与预设阈值的残差,并将各残差量化至第一预设比特数。
通过对大值区域的直接量化转化为对残差的量化,将待量化数据层各量化的待量化数据表示为两个定点张量之和,经过将小值区域中各待量化数据量化至第一预设比特数得到稠密定点张量,经过将残差量化至第一预设比特数得到稀疏定点张量。通过调整预设阈值,稀疏定点张量可以达到非常高的稀疏性(可达90%以上)。通过以上处理方式,定点张量与后续单元的运算可以表示为稠密定点张量、稀疏定点张量分别与后续单元做运算(如卷积),并将其累加和作为最终输出值,如图2所示。稠密定点张量和稀疏定点张量具有相同的比特数,因此在进行运算时,可以根据相同的比特数进行解码,从而提高了后续运算的方便性,不需要再进行多种比特数的解码。
上述方式虽然实现了提高后续单元做运算的方便性的目的,但是,引入残差计算的过程,增加了运算量,为了不增加运算量,更为直观的进行处理。可选的,在S102之后,本申请实施例所提供的数据处理方法还可以包括如下步骤:
对小值区域中各待量化数据标记第一预设标签,并对大值区域中各待量化数据标记第二预设标签。
通过对小值区域和大值区域分别进行不同的标记,例如将小值区域中各待量化数据的标签标记为5,将大值区域中各待量化数据的标签标记为10,则在解码时,可以直接通过标签来识别是小值区域的量化数据还是大值区域的量化数据,这样分别采用对应的方式进行解码,减少了对比特数大小的识别,同样提高了后续单元做运算的方便性。
具体的,做标记的方式具体可以为:利用与待量化数据层大小一致的掩膜单元对待量化数据层进行标记,其中,掩膜单元中,与小值区域中各待量化数据相同位的数值为0、与大值区域中各待量化数据相同位的数值为1。
采用与待量化数据层大小一致的掩膜单元mask来对量化后的待量化数据层做处理,mask单元采用1比特编码,如‘0’值表示小值区域量化数据,‘1’值表示大值区域量化数据,当然,也可以是‘0’值表示大值区域量化数据,‘1’值表示小值区域量化数据,这样,利用mask单元提供的额外信息在后续运算时,可以对量化的待量化数据层做正确的解码操作。
应用本实施例,通过获取DNN中的待量化数据层,根据待量化数据层中各待量化数据与预设阈值的大小关系,将待量化数据层划分为小值区域及大值区域(其中,小值区域中的各待量化数据小于大值区域中的各待量化数据),分别对小值区域中各待量化数据以及大值区域中各待量化数据进行量化,得到量化后的待量化数据层。根据待量化数据层中各待量化数据与预设阈值的大小关系,将待量化数据层划分为两个部分,第一部分包含数值小的待量化数据,将其称为小值区域;第二部分包含数值大的待量化数据,将其称为大值区域。在对待量化数据层进行量化时,分别对小值区域和大值区域中的各待量化数据进行量化。由于小值区域中待量化数据小,可以将这些待量化数据量化至较低比特数;由于大值区域中待量化数据大,可以将这些待量化数据量化至较高比特数。这样,在不显著增强模型比特数的前提下,既可以满足对较小的待量化数据的高精度需求,也可以满足对较大的待量化数据的高动态范围的需求,从而提高了DNN的运算性能。
下面以激活量为例,对本申请实施例提供的数据处理方法进行详细介绍,如图3所示的激活量分段式量化方法,该方法的操作大致流程为:
步骤一:利用已统计好的阈值thr对激活量A划分为小值区域As及大值区域Al。其中,大小值区域划分可以将小于或等于阈值thr的激活值归入小值区域,将大于阈值thr的激活值归入大值区域;或者可以将小于阈值thr的激活值归入小值区域,将大于或等于阈值thr的激活值归入大值区域。
步骤二:对小值区域As利用量化器Q1量化至bs比特数,其中Q1可以采用任意现有的量化器。
步骤三:对大值区域Al利用量化器Q2量化至bl比特数,其中Q2可以采用任意现有的量化器,bl大于或等于bs,用于提高模型精度。
步骤四:完成对激活量A的量化,传输至网络下层单元做前向推理。
通过上述方式处理后,量化后的激活量包含了两套量化参数来分别应对大值区域和小值区域,其大值区域与小值区域的空间分布规律是无规律的,为了提高后续单元做运算的方便性,这里给出了两种具体实施特例来应对上述问题。
第一种方案,采用与激活量A大小一致的掩膜单元mask来对量化后的激活量QA做处理,mask单元采用1bit编码,如‘0’值表示小值区域量化值,‘1’值表示大值区域量化值,这样利用mask单元提供的额外信息在后续运算时,可以对量化的激活量做正确的解码操作。
第一种方案是一种比较直观的处理方式,更进一步的,提供了第二种实施特例来解决上述问题。将上述量化流程稍作修改,不是直接对落在大值区域内的激活值作量化,而是将落在大值区域内的激活值与阈值thr的残差作量化,并将步骤一调整为“利用已统计好的阈值thr对激活量A划分为小值区域As及大值区域Al。其中,大小值区域划分可以将小于或等于阈值thr的激活值归入小值区域,将大于阈值thr的激活值归入大值区域”;将步骤三调整为“对大值区域Al与统计阈值thr的残差利用量化器Q1量化至bs比特数”,即操作流程如图4所示。
通过对大值区域的直接量化转化为对残差数值的量化,可以将激活量A量化的激活值表示为两个定点激活张量QAdense与QAsparse之和。QAdense为经过步骤二量化出的结果,QAsparse为经过步骤三(修改后的)量化出的结果,通过控制阈值thr,QAsparse可以达到非常高的稀疏性(可达90%以上)。通过以上处理方式,定点激活量与后续单元的运算可以表示为稠密定点张量QAdense、系数定点张量QAsparse分别与后续单元做运算,并将其累加和作为最终输出值。
通过本方案,将激活量按照统计特性划分为两个部分,第一部分包含数量多但数值小的激活值,将其称为小值区域;第二部分包含数量少但数值大的激活值,将其称为大值区域。在对激活量进行量化时,对小值区域量化至较低比特数,对大值区域量化至较高比特数,通过这种处理方式,同时达到高精度及高动态范围的需求,提高量化后模型的性能。
相应于上述方法实施例,本申请实施例提供了一种数据处理装置,如图5所示,该数据处理装置可以包括:
获取模块510,用于获取深度神经网络中的待量化数据层,其中,所述待量化数据层包括参数层和/或激活量;
划分模块520,用于根据所述待量化数据层中各待量化数据与预设阈值的大小关系,将所述待量化数据层划分为小值区域及大值区域,其中,所述小值区域中的各待量化数据小于所述大值区域中的各待量化数据;
量化模块530,用于分别对所述小值区域中各待量化数据以及所述大值区域中各待量化数据进行量化,得到量化后的待量化数据层。
可选的,所述划分模块520,具体可以用于:
将所述待量化数据层中小于或等于预设阈值的待量化数据划分为小值区域,并将所述待量化数据层中大于所述预设阈值的待量化数据划分为大值区域;
或者,
将所述待量化数据层中小于所述预设阈值的待量化数据划分为小值区域,并将所述待量化数据层中大于或等于所述预设阈值的待量化数据划分为大值区域。
可选的,所述量化模块530,具体可以用于:
将所述小值区域中各待量化数据量化至第一预设比特数,并将所述大值区域中各待量化数据量化至第二预设比特数,其中,所述第二预设比特数大于或等于所述第一预设比特数。
可选的,所述划分模块520,具体可以用于:
将所述待量化数据层中小于或等于预设阈值的待量化数据划分为小值区域,并将所述待量化数据层中大于所述预设阈值的待量化数据划分为大值区域;
所述量化模块530,具体可以用于:
将所述小值区域中各待量化数据量化至第一预设比特数;
分别计算所述大值区域中各待量化数据与所述预设阈值的残差,并将各残差量化至所述第一预设比特数。
可选的,所述装置还可以包括:
标记模块,用于对所述小值区域中各待量化数据标记第一预设标签,并对所述大值区域中各待量化数据标记第二预设标签。
可选的,所述标记模块,具体可以用于:
利用与所述待量化数据层大小一致的掩膜单元对所述待量化数据层进行标记,其中,所述掩膜单元中,与所述小值区域中各待量化数据相同位的数值为0、与所述大值区域中各待量化数据相同位的数值为1。
应用本实施例,通过获取DNN中的待量化数据层,根据待量化数据层中各待量化数据与预设阈值的大小关系,将待量化数据层划分为小值区域及大值区域(其中,小值区域中的各待量化数据小于大值区域中的各待量化数据),分别对小值区域中各待量化数据以及大值区域中各待量化数据进行量化,得到量化后的待量化数据层。根据待量化数据层中各待量化数据与预设阈值的大小关系,将待量化数据层划分为两个部分,第一部分包含数值小的待量化数据,将其称为小值区域;第二部分包含数值大的待量化数据,将其称为大值区域。在对待量化数据层进行量化时,分别对小值区域和大值区域中的各待量化数据进行量化。由于小值区域中待量化数据小,可以将这些待量化数据量化至较低比特数;由于大值区域中待量化数据大,可以将这些待量化数据量化至较高比特数。这样,在不显著增强模型比特数的前提下,既可以满足对较小的待量化数据的高精度需求,也可以满足对较大的待量化数据的高动态范围的需求,从而提高了DNN的运算性能。
为了实现同时满足高精度及高动态范围的需求,提高DNN的运算性能,本申请实施例还提供了一种电子设备,如图6所示,包括处理器601和机器可读存储介质602,其中,
机器可读存储介质602,用于存储能够被处理器601执行的机器可执行指令;
处理器601,用于被机器可读存储介质602上所存放的机器可执行指令促使执行本申请实施例提供的数据处理方法的所有步骤。
机器可读存储介质602与处理器601之间可以通过有线连接或者无线连接的方式进行数据传输,并且电子设备可以通过有线通信接口或者无线通信接口与其他的设备进行通信。
上述机器可读存储介质可以包括RAM(RandomAccess Memory,随机存取存储器),也可以包括NVM(Non-volatile Memory,非易失性存储器),例如至少一个磁盘存储器。可选的,机器可读存储介质还可以是至少一个位于远离前述处理器的存储装置。
上述处理器可以是通用处理器,包括CPU(Central Processing Unit,中央处理器)、NP(Network Processor,网络处理器)等;还可以是DSP(Digital Signal Processor,数字信号处理器)、ASIC(Application Specific Integrated Circuit,专用集成电路)、FPGA(Field-Programmable GateArray,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本实施例中,该电子设备的处理器通过读取机器可读存储介质中存储的机器可执行指令,并通过运行该机器可执行指令,能够实现:通过获取DNN中的待量化数据层,根据待量化数据层中各待量化数据与预设阈值的大小关系,将待量化数据层划分为小值区域及大值区域(其中,小值区域中的各待量化数据小于大值区域中的各待量化数据),分别对小值区域中各待量化数据以及大值区域中各待量化数据进行量化,得到量化后的待量化数据层。根据待量化数据层中各待量化数据与预设阈值的大小关系,将待量化数据层划分为两个部分,第一部分包含数值小的待量化数据,将其称为小值区域;第二部分包含数值大的待量化数据,将其称为大值区域。在对待量化数据层进行量化时,分别对小值区域和大值区域中的各待量化数据进行量化。由于小值区域中待量化数据小,可以将这些待量化数据量化至较低比特数;由于大值区域中待量化数据大,可以将这些待量化数据量化至较高比特数。这样,在不显著增强模型比特数的前提下,既可以满足对较小的待量化数据的高精度需求,也可以满足对较大的待量化数据的高动态范围的需求,从而提高了DNN的运算性能。
另外,相应于上述实施例所提供的数据处理方法,本申请实施例提供了一种机器可读存储介质,用于机器可执行指令,所述机器可执行指令促使处理器执行本申请实施例提供的数据处理方法的所有步骤。
本实施例中,机器可读存储介质存储有在运行时执行本申请实施例所提供的数据处理方法的机器可执行指令,因此能够实现:通过获取DNN中的待量化数据层,根据待量化数据层中各待量化数据与预设阈值的大小关系,将待量化数据层划分为小值区域及大值区域(其中,小值区域中的各待量化数据小于大值区域中的各待量化数据),分别对小值区域中各待量化数据以及大值区域中各待量化数据进行量化,得到量化后的待量化数据层。根据待量化数据层中各待量化数据与预设阈值的大小关系,将待量化数据层划分为两个部分,第一部分包含数值小的待量化数据,将其称为小值区域;第二部分包含数值大的待量化数据,将其称为大值区域。在对待量化数据层进行量化时,分别对小值区域和大值区域中的各待量化数据进行量化。由于小值区域中待量化数据小,可以将这些待量化数据量化至较低比特数;由于大值区域中待量化数据大,可以将这些待量化数据量化至较高比特数。这样,在不显著增强模型比特数的前提下,既可以满足对较小的待量化数据的高精度需求,也可以满足对较大的待量化数据的高动态范围的需求,从而提高了DNN的运算性能。
对于电子设备以及机器可读存储介质实施例而言,由于其所涉及的方法内容基本相似于前述的方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备及机器可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。
Claims (6)
1.一种数据处理方法,其特征在于,应用于电子设备的处理器,所述处理器用于目标检测与分割、行为检测与识别、或者语音识别,所述处理器中运行有深度神经网络;所述方法包括:
读取机器可读存储介质中存储的机器可执行指令,并运行所述机器可执行指令,实现以下步骤:
在所述处理器运行深度神经网络进行目标检测与分割、行为检测与识别、或者语音识别的过程中,获取深度神经网络中的待量化数据层,其中,所述待量化数据层包括激活量,所述激活量为在运行所述深度神经网络时,所述深度神经网络中层与层之间传输的数据流,所述数据流的分布具有长尾特性;
按照统计特性,根据所述待量化数据层中激活量与预设阈值的大小关系,将所述待量化数据层中的激活量划分为小值区域及大值区域,其中,所述小值区域中的激活量小于所述大值区域中的激活量;
分别对所述小值区域中激活量以及所述大值区域中激活量进行量化,得到量化后的激活量;
使用所述深度神经网络,处理所述量化后的激活量,得到处理结果;
所述分别对所述小值区域中激活量以及所述大值区域中激活量进行量化,包括:
将所述小值区域中激活量量化至第一预设比特数,并将所述大值区域中激活量量化至第二预设比特数,其中,所述第二预设比特数大于或等于所述第一预设比特数;
在所述根据所述待量化数据层中激活量与预设阈值的大小关系,将所述待量化数据层中的激活量划分为小值区域及大值区域之后,所述方法还包括:
对所述小值区域中激活量标记第一预设标签,并对所述大值区域中激活量标记第二预设标签;
所述对所述小值区域中激活量标记第一预设标签,并对所述大值区域中激活量标记第二预设标签,包括:
利用与所述待量化数据层大小一致的掩膜单元对所述待量化数据层进行标记,其中,所述掩膜单元中,与所述小值区域中激活量相同位的数值为0、与所述大值区域中激活量相同位的数值为1;利用所述掩膜单元,对量化后的激活量进行解码操作。
2.根据权利要求1所述的方法,其特征在于,所述根据所述待量化数据层中激活量与预设阈值的大小关系,将所述待量化数据层中的激活量划分为小值区域及大值区域,包括:
将所述待量化数据层中小于或等于预设阈值的激活量划分为小值区域,并将所述待量化数据层中大于所述预设阈值的激活量划分为大值区域;
或者,
将所述待量化数据层中小于所述预设阈值的激活量划分为小值区域,并将所述待量化数据层中大于或等于所述预设阈值的激活量划分为大值区域。
3.根据权利要求1所述的方法,其特征在于,所述根据所述待量化数据层中激活量与预设阈值的大小关系,将所述待量化数据层中的激活量划分为小值区域及大值区域,包括:
将所述待量化数据层中小于或等于预设阈值的激活量划分为小值区域,并将所述待量化数据层中大于所述预设阈值的激活量划分为大值区域;
所述分别对所述小值区域中激活量以及所述大值区域中激活量进行量化,还包括:
分别计算所述大值区域中激活量与所述预设阈值的残差,并将各残差量化至所述第一预设比特数。
4.一种数据处理装置,其特征在于,应用于电子设备的处理器,所述处理器用于目标检测与分割、行为检测与识别、或者语音识别,所述处理器中运行有深度神经网络;所述处理器读取机器可读存储介质中存储的机器可执行指令,并运行所述机器可执行指令,调用以下单元执行相应步骤;所述装置包括:
获取模块,用于在所述处理器运行深度神经网络进行目标检测与分割、行为检测与识别、或者语音识别的过程中,获取深度神经网络中的待量化数据层,其中,所述待量化数据层包括激活量,所述激活量为在运行所述深度神经网络时,所述深度神经网络中层与层之间传输的数据流,所述数据流的分布具有长尾特性;
划分模块,用于按照统计特性,根据所述待量化数据层中激活量与预设阈值的大小关系,将所述待量化数据层中的激活量划分为小值区域及大值区域,其中,所述小值区域中的激活量小于所述大值区域中的激活量;
量化模块,用于分别对所述小值区域中激活量以及所述大值区域中激活量进行量化,得到量化后的激活量;使用所述深度神经网络,处理所述量化后的激活量,得到处理结果;
所述量化模块,具体用于:
将所述小值区域中激活量量化至第一预设比特数,并将所述大值区域中激活量量化至第二预设比特数,其中,所述第二预设比特数大于或等于所述第一预设比特数;
所述装置还包括:
标记模块,用于对所述小值区域中激活量标记第一预设标签,并对所述大值区域中激活量标记第二预设标签;
所述标记模块,具体用于:
利用与所述待量化数据层大小一致的掩膜单元对所述待量化数据层进行标记,其中,所述掩膜单元中,与所述小值区域中激活量相同位的数值为0、与所述大值区域中激活量相同位的数值为1;利用所述掩膜单元,对量化后的激活量进行解码操作。
5.根据权利要求4所述的装置,其特征在于,所述划分模块,具体用于:
将所述待量化数据层中小于或等于预设阈值的激活量划分为小值区域,并将所述待量化数据层中大于所述预设阈值的激活量划分为大值区域;
或者,
将所述待量化数据层中小于所述预设阈值的激活量划分为小值区域,并将所述待量化数据层中大于或等于所述预设阈值的激活量划分为大值区域。
6.根据权利要求4所述的装置,其特征在于,所述划分模块,具体用于:
将所述待量化数据层中小于或等于预设阈值的激活量划分为小值区域,并将所述待量化数据层中大于所述预设阈值的激活量划分为大值区域;
所述量化模块,还用于:
分别计算所述大值区域中激活量与所述预设阈值的残差,并将各残差量化至所述第一预设比特数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811012643.2A CN110874625B (zh) | 2018-08-31 | 2018-08-31 | 一种数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811012643.2A CN110874625B (zh) | 2018-08-31 | 2018-08-31 | 一种数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110874625A CN110874625A (zh) | 2020-03-10 |
CN110874625B true CN110874625B (zh) | 2023-10-27 |
Family
ID=69715908
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811012643.2A Active CN110874625B (zh) | 2018-08-31 | 2018-08-31 | 一种数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110874625B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113780513B (zh) * | 2020-06-10 | 2024-05-03 | 杭州海康威视数字技术股份有限公司 | 网络模型量化、推理方法、装置、电子设备及存储介质 |
CN111832704A (zh) * | 2020-06-30 | 2020-10-27 | 东南大学 | 一种卷积输入式的嵌套递归神经网络的设计方法 |
WO2022021083A1 (zh) * | 2020-07-28 | 2022-02-03 | 深圳市大疆创新科技有限公司 | 图像处理方法、图像处理装置及计算机可读存储介质 |
CN114065904A (zh) * | 2020-08-07 | 2022-02-18 | 嘉楠明芯(北京)科技有限公司 | 神经网络模型量化方法以及装置 |
CN113065638A (zh) * | 2021-02-27 | 2021-07-02 | 华为技术有限公司 | 一种神经网络压缩方法及其相关设备 |
CN114708180B (zh) * | 2022-04-15 | 2023-05-30 | 电子科技大学 | 具有动态范围保持的预失真图像比特深度量化和增强方法 |
CN114841325A (zh) * | 2022-05-20 | 2022-08-02 | 安谋科技(中国)有限公司 | 神经网络模型的数据处理方法、介质及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106529668A (zh) * | 2015-11-17 | 2017-03-22 | 中国科学院计算技术研究所 | 加速深度神经网络算法的加速芯片的运算装置及方法 |
CN106570559A (zh) * | 2015-10-09 | 2017-04-19 | 阿里巴巴集团控股有限公司 | 一种基于神经网络的数据处理方法和装置 |
CN108229663A (zh) * | 2018-01-29 | 2018-06-29 | 百度在线网络技术(北京)有限公司 | 用于生成卷积神经网络的方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ES2738319T3 (es) * | 2014-09-12 | 2020-01-21 | Microsoft Technology Licensing Llc | Sistema informático para entrenar redes neuronales |
-
2018
- 2018-08-31 CN CN201811012643.2A patent/CN110874625B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106570559A (zh) * | 2015-10-09 | 2017-04-19 | 阿里巴巴集团控股有限公司 | 一种基于神经网络的数据处理方法和装置 |
CN106529668A (zh) * | 2015-11-17 | 2017-03-22 | 中国科学院计算技术研究所 | 加速深度神经网络算法的加速芯片的运算装置及方法 |
CN108229663A (zh) * | 2018-01-29 | 2018-06-29 | 百度在线网络技术(北京)有限公司 | 用于生成卷积神经网络的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110874625A (zh) | 2020-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110874625B (zh) | 一种数据处理方法及装置 | |
US11275986B2 (en) | Method and apparatus for quantizing artificial neural network | |
JP7424078B2 (ja) | 画像エンコーディング方法及び装置並びに画像デコーディング方法及び装置 | |
TWI722434B (zh) | 深度神經網絡自我調整增量模型壓縮的方法 | |
CN110119745B (zh) | 深度学习模型的压缩方法、装置、计算机设备及存储介质 | |
CN110175641B (zh) | 图像识别方法、装置、设备和存储介质 | |
CN109840589B (zh) | 一种在fpga上运行卷积神经网络的方法和装置 | |
KR102608467B1 (ko) | 뉴럴 네트워크의 경량화 방법, 이를 이용한 인식 방법, 및 그 장치 | |
EP3686813A1 (en) | Deep neural network-based method and device for quantifying activation amount | |
US20190044535A1 (en) | Systems and methods for compressing parameters of learned parameter systems | |
CN111988629A (zh) | 图像编码方法和装置、图像解码方法和装置 | |
TWI480859B (zh) | 縮減複雜性向量索引及解索引技術 | |
CN111091278A (zh) | 机械设备异常检测的边缘检测模型构建方法及装置 | |
EP3069449B1 (en) | Split gain shape vector coding | |
CN113901823A (zh) | 命名实体识别方法、装置、存储介质及终端设备 | |
CN110647974A (zh) | 深度神经网络中的网络层运算方法及装置 | |
CN111027684A (zh) | 一种深度学习模型量化方法、装置、电子设备及存储介质 | |
Hong et al. | Efficient neural image decoding via fixed-point inference | |
CN113792816A (zh) | 数据编码方法、装置、计算机设备及存储介质 | |
CN113408704A (zh) | 数据处理方法、装置、设备及计算机可读存储介质 | |
CN112561050B (zh) | 一种神经网络模型训练方法及装置 | |
CN112613604A (zh) | 神经网络的量化方法及装置 | |
CN110738313B (zh) | 用于评估量化操作的方法、装置、设备和介质 | |
WO2023185209A1 (zh) | 模型剪枝 | |
CN109286817B (zh) | 一种视频编码中dct系数的量化失真信息处理方法 |
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 |