CN112308216A - 数据块的处理方法、装置及存储介质 - Google Patents
数据块的处理方法、装置及存储介质 Download PDFInfo
- Publication number
- CN112308216A CN112308216A CN201910683930.4A CN201910683930A CN112308216A CN 112308216 A CN112308216 A CN 112308216A CN 201910683930 A CN201910683930 A CN 201910683930A CN 112308216 A CN112308216 A CN 112308216A
- Authority
- CN
- China
- Prior art keywords
- data
- data blocks
- compensation
- level operation
- layer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title abstract description 9
- 238000000034 method Methods 0.000 claims abstract description 44
- 238000012545 processing Methods 0.000 claims abstract description 26
- 238000003062 neural network model Methods 0.000 claims abstract description 25
- 238000004590 computer program Methods 0.000 claims description 13
- 230000015654 memory Effects 0.000 claims description 12
- 238000004891 communication Methods 0.000 claims description 9
- 238000013139 quantization Methods 0.000 claims description 9
- 238000004364 calculation method Methods 0.000 abstract description 16
- 230000008569 process Effects 0.000 abstract description 15
- 238000010801 machine learning Methods 0.000 abstract description 2
- 239000010410 layer Substances 0.000 description 154
- 238000010586 diagram Methods 0.000 description 8
- 238000013528 artificial neural network Methods 0.000 description 6
- 238000007667 floating Methods 0.000 description 6
- 230000003321 amplification Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000003199 nucleic acid amplification method Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 239000002346 layers by function Substances 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000011229 interlayer Substances 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
- 210000002569 neuron Anatomy 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
Images
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/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本申请公开了一种数据块的处理方法、装置及存储介质,属于机器学习技术领域。该方法包括:通过神经网络模型中元素级操作层,获取上一级网络层输入的数据类型为定点型数据的多个数据块,获取每个数据块的各个通道对应的补偿系数,基于多个数据块中每个数据块的各个通道对应的补偿系数,将多个数据块转换成多个补偿数据块,多个补偿数据块中的数据均为定点型数据且数据精度相同,对多个补偿数据块进行元素级操作,得到元素级操作结果。本申请中的元素级操作层可以对定点型数据进行处理,而且通过为每个数据块的各个通道设置补偿系数,将各个数据块的数据精度调整一致,补偿了数据精度差异带来误差,提高了定点化网络的计算精度。
Description
技术领域
本申请涉及机器学习技术领域,特别涉及一种数据块的处理方法、装置及存储介质。
背景技术
近年来,随着人工智能技术的不断发展,神经网络在图像识别、语音识别等领域应用日益广泛。神经网络模型通常包括多个网络层,如Convolution(卷积)层或Eltwise(Element Wise,元素级操作)层等。Eltwise层是神经网络模型中的一种重要的功能层的统称,其用于对上一级网络层输入的数据块进行处理,比如对上一级网络层输入的数据块进行相加或相乘等。
在相关技术中,Eltwise层只能采用浮点形式进行计算,也即是,只能对浮点型数据进行处理,浮点型数据是指小数点不固定的数据。具体地,Eltwise层的元素级操作过程包括:接收上一级网络层输入的多个数据块,这多个数据块中的数据均为浮点型数据;对这多个数据块直接进行元素级操作,得到元素级操作结果。元素级操作是指对两个或两个以上的数据块进行逐元素(同位置)计算,具体可以为加法操作或乘法操作等。
由于目前的Eltwise层只能对浮点型数据进行处理,因此,运行设备需要将Eltwise层的输入数据以高比特宽度进行缓存,又由于浮点型数据的运算复杂,因此,Eltwise层的运行效率较低,导致具有Eltwise层的神经网络模型在相关硬件上的运行效率较低,且该Eltwise层只能运行在能够处理浮点型数据的硬件上,对硬件要求较高。
发明内容
本申请提供了一种数据块的处理方法、装置及存储介质,可以解决相关技术中存在的Eltwise层的运行效率较低,对硬件要求较高的问题。所述技术方案如下:
一方面,提供了一种数据块的处理方法,所述方法包括:
通过神经网络模型中的元素级操作层,获取所述元素级操作层的上一级网络层输入的多个数据块,所述多个数据块中的数据均为定点型数据;
通过所述元素级操作层,获取所述多个数据块中每个数据块的各个通道对应的补偿系数;
通过所述元素级操作层,基于所述多个数据块中每个数据块的各个通道对应的补偿系数,将所述多个数据块转换成多个补偿数据块,所述多个补偿数据块中的数据均为定点型数据;
通过所述元素级操作层,对所述多个补偿数据块进行元素级操作,得到元素级操作结果。
可选地,所述基于所述多个数据块中每个数据块的各个通道对应的补偿系数,将所述多个数据块转换成多个补偿数据块,包括:
将所述多个数据块中每个数据块的各个通道上的数据,分别与各个通道对应的补偿系数进行相乘,得到多个补偿数据块;或者,
将所述多个数据块中每个数据块的各个通道上的数据,分别与各个通道对应的补偿系数进行相乘,并对相乘结果进行取整处理,得到多个补偿数据块。
可选地,所述对所述多个补偿数据块进行元素级操作,得到元素级操作结果,包括:
对所述多个补偿数据块进行相加或相乘,得到所述元素级操作结果;或者,
对所述多个补偿数据块进行相加或相乘,得到第一操作结果,将所述第一操作结果与偏置系数进行相加,得到所述元素级操作结果。
可选地,所述对所述多个补偿数据块进行元素级操作,得到元素级操作结果之后,还包括:
通过所述元素级操作层,对所述元素级操作结果进行量化,得到输出数据,所述输出数据占据的比特宽度为预设比特宽度;
通过所述元素级操作层,将所述输出数据输出给所述元素级操作层的下一个网络层。
可选地,所述获取所述多个数据块中每个数据块的各个通道对应的补偿系数,包括:
对于所述多个数据块中的目标数据块,从已存储的模型数据中,获取所述目标数据块的各个通道对应的补偿系数,所述目标数据块为所述多个数据块中的任一数据块;或者,
从所述元素级操作层的输入数据中,获取所述目标数据块的各个通道对应的补偿系数。
第二方面,提供了一种数据块的处理装置,所述装置包括:
第一获取模块,用于通过神经网络模型中的元素级操作层,获取所述元素级操作层的上一级网络层向所述元素级操作层输入的多个数据块,所述多个数据块中的数据均为定点型数据;
第二获取模块,用于通过所述元素级操作层,获取所述多个数据块中每个数据块的各个通道对应的补偿系数;
补偿模块,用于通过所述元素级操作层,基于所述多个数据块中每个数据块的各个通道对应的补偿系数,将所述多个数据块转换成多个补偿数据块,所述多个补偿数据块中的数据均为定点型数据,且所述多个补偿数据块的数据精度相同;
操作模块,用于通过所述元素级操作层,对所述多个补偿数据块进行元素级操作,得到元素级操作结果。
可选地,所述补偿模块用于:
将所述多个数据块中每个数据块的各个通道上的数据,分别与各个通道对应的补偿系数进行相乘,得到多个补偿数据块;或者,
将所述多个数据块中每个数据块的各个通道上的数据,分别与各个通道对应的补偿系数进行相乘,并对相乘结果进行取整处理,得到多个补偿数据块。
可选地,所述操作模块用于:
对所述多个补偿数据块进行相加或相乘,得到所述元素级操作结果;或者,
对所述多个补偿数据块进行相加或相乘,得到第一操作结果,将所述第一操作结果与偏置系数进行相加,得到所述元素级操作结果。
可选地,所述装置还包括:
量化模块,用于通过所述元素级操作层,对所述元素级操作结果进行量化,得到输出数据,所述输出数据占据的比特宽度为预设比特宽度;
输出模块,用于通过所述元素级操作层,将所述输出数据输出给所述元素级操作层的下一个网络层。
可选地,所述获取模块用于:
对于所述多个数据块中的目标数据块,从已存储的模型数据中,获取所述目标数据块的各个通道对应的补偿系数,所述目标数据块为所述多个数据块中的任一数据块;或者,
从所述元素级操作层的输入数据中,获取所述目标数据块的各个通道对应的补偿系数。
第三方面,提供了一种计算机设备,所述计算机设备包括处理器、通信接口、存储器和通信总线,所述处理器、所述通信接口和所述存储器通过所述通信总线完成相互间的通信,所述存储器用于存放计算机程序,所述处理器用于执行所述存储器上所存放的计算机程序,以实现上述任一种数据块的处理方法的步骤。
第四方面,提供了一种计算机可读存储介质,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一种数据块的处理方法的步骤。
第五方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述所述的任一种数据块的处理方法的步骤。
本申请提供的技术方案至少可以带来以下有益效果:
本申请实施例中,神经网络模型中的元素级操作层可以获取上一级网络层输入的数据类型为定点型数据的多个数据块,然后获取多个数据块中每个数据块的各个通道对应的补偿系数,基于多个数据块中每个数据块的各个通道对应的补偿系数,将这多个数据块转换成数据类型为定点型且数据精度相同的多个补偿数据块,再对转换后的多个补偿数据块进行元素级操作,得到元素级操作结果。也即是,本申请对神经网络模型中的元素级操作层进行了改进,使其可以对定点型数据进行处理,进而使得运行设备可以将元素级操作层的输入数据以低比特位进行缓存,极大地减少了带宽消耗,又由于定点型数据的运算相对简单,因此提高了神经网络模型在相关硬件上的运行效率,降低了硬件要求。另外,通过为每个数据块的各个通道设置补偿系数,基于对应的补偿系数,将数据精度不一致的各个数据块转换成数据精度一致的补偿数据块,使得元素级操作层可以利用设置的补偿系数来补偿数据精度或数据范围差异带来的操作误差,提高了定点化网络的计算精度,使得元素级操作层的数据操作更为灵活,实现了元素级操作层的低精度量化支持。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是相关技术中提供的一种Eltwise层的元素级操作示意图;
图2是本申请实施例提供的一种数据块的处理方法的流程图;
图3是本申请实施例提供的一种Eltwise层的元素级操作示意图;
图4是本申请实施例提供的一种数据块的处理装置的结构示意图;
图5是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在对本申请实施例提供的数据块的处理方法进行详细的解释说明之前,先对本申请实施例涉及的名词进行解释。
Convolution(卷积)层:神经网络中卷积计算层的统称,可对输入数据进行卷积计算后,将结果输出给下一层。
Eltwise(元素级操作层):神经元网络中一种功能层的统称,其特点在于对两个或两个以上同等尺寸的数据块进行逐元素(同位置)计算,计算过程可为加法或乘法等。
Blob(数据块):神经网络中传递网络层的层间数据的数据单位称为数据块,通常为4维以上的数据结构,也可称为Tensor(张量)。
Weight(权重):卷积层中的权重数据统称,通常采用张量结构存储。
Activation(激活值):神经网络中各层之间传递的数据统称,通常采用张量结构存储。
Channel(通道):神经网络中数据的一个维度,特征维度称为通道。
补偿系数:对数据范围进行缩放的比例系数。
偏置系数:对数据零点漂移进行校正的补偿系数。
接下来,对本申请实施例的应用场景进行介绍。
近年来,处理芯片大量使用量化(定点化)技术,使得原来需要浮点数做计算存储的神经网络可以直接使用低精度的定点数进行计算存储。但是,对于Eltiwse层的操作,目前的量化方案中还没有针对其进行量化计算的方法,也即是,目前的Eltwise层仍然只能对浮点型数据进行处理,目前的处理芯片在进行Eltwise层操作时,仍然只能采用浮点形式进行计算,因此其数据输入仍然需要以较高精度缓存。
请参考图1,图1是相关技术中提供的一种Eltwise层的元素级操作示意图,如图1所示,Eltwise层的上一级网络层可以向Eltwise层输入两组或两组以上的数据块,且每组数据块中的数据均为高精度的浮点型数据,其中的两组数据块为A和B。Eltwise层可以直接对输入的多组数据块进行元素级操作,得到元素级操作结果C。比如,直接将多组数据块进行相加,得到元素级操作结果C。
但是,由于目前的Eltwise层只能对浮点型数据进行处理,因此,运行设备需要将Eltwise层的输入数据以高比特宽度进行缓存,又由于浮点型数据的运算复杂,因此,Eltwise层的运行效率较低,导致具有Eltwise层的神经网络模型在相关硬件上的运行效率较低,且该Eltwise层只能运行在能够处理浮点型数据的硬件上,对硬件要求较高。为了解决目前的Eltwise层存在的问题,本申请实施例提供了一种对Eltwise层的元素级操作进行改进的方法,使得改进后的Eltwise层可以对定点型数据进行处理,且保持较高的计算精度。
接下来,对本申请实施例提供的数据块的处理方法进行详细介绍。图2是本申请实施例提供的一种数据块的处理方法的流程图,该方法应用于计算机设备或处理器中,该计算机设备或处理器中运行有神经网络模型,该神经网络模型包括元素级操作层,该计算机设备可以为终端或服务器等,接下来,将以应用于计算机设备中为例进行说明。如图2所示,该方法包括如下步骤:
步骤201:通过神经网络模型中的元素级操作层,获取该元素级操作层的上一级网络层输入的多个数据块,该多个数据块中的数据均为定点型数据。
也即是,该神经网络模型包括多个网络层,其中一个网络层为元素级操作层,对于该神经网络模型中的元素级操作层,该可以接收上一级网络层输入的数据类型为定点型数据的多个数据块。也即是,该元素级操作层可以对定点型数据进行处理。
其中,元素级操作层的上一级网络层可以为任一种网络层,比如卷积层等。定点型数据是指小数点固定的数据,即在固定比特宽度下可表示的整数。上一级网络层输入的多个数据块是指元素级操作层的上一级网络层向该元素级操作层输入的多个数据块。
其中,该多个数据块的数据精度可以相同,也可以不同。当该多个数据块的数据精度不同时,该多个数据块的数据范围也不同。数据精度用于指示数据步长的浮点数据范围,即数据块中的数值每增大1时,所增大的真实数据范围。比如,若某个数据块的数据精度为0.5,则该数据块中的数值每增大1时,其增大的真实数据范围实际是0.5。
作为一个示例,该多个数据块中数据的比特宽度相同,比如,均为8bit或16bit的定点型数据。当然,该多个数据块中数据的比特宽度也可以不同,本申请实施例对此不做限定。
需要说明的是,对于定点型数据来说,其数据范围与数据精度通常呈反比,也即是,数据范围越大,则数据精度越小,数据精度越小,则数据范围越大。比如,对于1个比特宽度为8bit的定点型数据来说,其可以表达(-128-+127)的整数。而且,每个定点型数据均具有对应的放大系数来控制其数据范围,该放大系数相当于该数据的精度。
比如,若8bit的定点型数据设置的放大系数为1,则该定点型数据的数据范围为(-128-+127),即该定点型数据的数据精度为1,数据范围为(-128-+127)。再比如,若8bit的定点型数据设置的放大系数为1/128,则该定点型数据的数据范围为(-1-+127/128),即该定点型数据的数据精度为1/128,数据范围为(-1-+127/128)。由此可知,对于固定比特宽度的定点型数据来说,数据范围越大,则数据精度越小,也即是,若需要一个固定比特宽度的定点型数据来表示一个较大的数据范围,则就需要放弃该数据的数据精度,即该数据的数据精度将会变差。对于两个相同比特宽度的定点型数据来说,若这两个数据的数据精度不同,则数据范围也不同。
步骤202:通过该元素级操作层,获取多个数据块中每个数据块的各个通道对应的补偿系数。
其中,补偿系数是指用于对数据范围进行缩放的比例系数,用于调整该多个数据块中数据的数据范围,进而调整数据精度。
在Eltwise层的数据处理过程中,向Eltwise层输入的各个数据块的数据精度可能存在较大差异,进而导致各个数据块的数据范围存在较大差异,则对各个数据块进行元素级操作后得到的元素级操作结果的整体分布方差也较大,导致元素级操作结果的数据精度变低。
本申请实施例中,为了解决上述问题,对于向Eltwise层输入的每个数据块,可以为每个数据块的每个通道设置对应的补偿系数,也即是,提出了细化到输入通道级的补偿系数,这些补偿系数可以对每个数据块的各个通道上的数据的数据范围差异进行补偿,进而对这多个数据块的数据范围差异进行补偿,使得对这多个数据块的数据精度范围也得到行补偿,从而将这多个数据块转换成数据精度相同的数据块,也即是,这些补偿系数可以对数据范围进行调整,以对齐不同通道数据的数据精度,使得基于补偿后的数据进行元素级操作后得到的元素级操作结果的整体分布方差减小,数据精度变高。如此,可以使得低精度的定点型数据也可以兼顾数据范围和数据精度,以实现Eltwise层操作要求。
作为一个示例,每个数据块的各个通道对应的补偿系数可以用Alpha表示。
作为一个示例,这多个数据块中每个数据块的各个通道对应的补偿系数可以根据这多个数据块的数据精度差异或数据范围差异进行设置。
作为一个示例,这多个数据块中每个数据块的各个通道对应的补偿系数可以预先存储在该神经网络模型的模型数据中,也可以不预先存储,而是由模型外部输入,或者,这多个数据块中的一部分数据块的各个通道对应的补偿系数预先存储在该神经网络模型的模型数据中,而其他部分数据块的各个通道对应的补偿系数由模型外部输入。
作为一个示例,对于多个数据块中的目标数据块,可以从已存储的模型数据中,获取目标数据块的各个通道对应的补偿系数,也可以从元素级操作层的输入数据中,获取目标数据块的各个通道对应的补偿系数,目标数据块为多个数据块中的任一数据块。
其中,输入至元素级操作层的所有数据称之为元素级操作层的输入数据。该输入数据包括该多个数据块,也可以包括其他数据,比如可以包括模型外部输入的补偿系数或偏置系数等。
也即是,对于这多个数据块中的任一数据块,该数据块的各个通道对应的补偿系数可以是从已存储的模型数据中获取得到,也可以是从Eltwise层的输入数据中获取得到,即是由模型外部输入得到。
需要说明的是,当目标数据块的各个通道对应的补偿系数设置为从模型外部输入时,即可实现对目标数据块进行Attention(注意力网络)方式的特征选择,比如实现对目标数据块的各个特征通道的加权。
由上可知,本申请实施例提出了一种灵活的补偿系数导入方式,即可将补偿系数预先存储于模型中作为调节数据范围使用,也可以接受外部输入的补偿系数,将外部输入的补偿系数作为注意力机制的权重系数使用。
步骤203:通过该元素级操作层,基于多个数据块中每个数据块的各个通道对应的补偿系数,将多个数据块转换成多个补偿数据块,多个补偿数据块中的数据均为定点型数据,且多个补偿数据块的数据精度相同。
作为一个示例,可以将多个数据块中每个数据块的各个通道上的数据,分别与各个通道对应的补偿系数进行相乘,得到多个补偿数据块。
请参考图3,图3是本申请实施例提供的一种Eltwise层的元素级操作示意图,如图3所示,Eltwise层的上一级网络层可以向Eltwise层输入两组或两组以上的数据块,且每组数据块中的数据均为定点型数据,其中的两组数据块为A和B,数据块A的各个通道对应的补偿系数用Alpha-a表示,数据块B的各个通道对应的补偿系数用Alpha-b表示。则可以将数据块A与Alpha-A进行相乘,得到数据块A对应的补偿数据块,将数据块B与Alpha-b进行相乘,得到数据块B对应的补偿数据块。
作为另一示例,还可以先将多个数据块中每个数据块的各个通道上的数据,分别与各个通道对应的补偿系数进行相乘,再对相乘结果进行取整处理,得到多个补偿数据块。
需要说明的是,当该元素级操作层输入的多个数据块的数据精度不同时,每个数据块的各个通道对应的补偿系数可以根据该多个数据块的数据范围的差异进行设置,元素级操作层可以根据每个数据块的各个通道的补偿系数对这多个数据块进行补偿,从而将这多个数据块转换成数据精度相同的多个补偿数据块,再进行元素级操作;当该元素级操作层输入的多个数据块的数据精度相同时,每个数据块的各个通道对应的补偿系数还可以均为1,这样补偿前后的数据块相同,保证了该元素级操作层也可以对无需补偿的正常数据进行处理。
示例的,假设一个8bit的定点型数据的数值为10,放大系数为0.25,即数据精度为0.25,若想要将其放大系数调整为2,即将该定点型数据的数据精度调整为2,可以将该数据与一个补偿系数进行相乘。例如,该补偿系数可以为(0.25/2),该定点型数据的补偿算法为:10*(0.25/2)。
步骤204:通过该元素级操作层,对多个补偿数据块进行元素级操作,得到元素级操作结果。
其中,元素级操作是指对两个或两个以上的数据块进行逐元素(同位置)计算,具体可以为加法操作或乘法操作等。
作为一个示例,对多个补偿数据块进行元素级操作,得到元素级操作结果可以包括以下两种实现方式:
第一种实现方式:对多个补偿数据块进行相加或相乘,得到元素级操作结果。
第二种实现方式:对多个补偿数据块进行元素级操作,得到第一操作结果,将第一操作结果与偏置系数进行相加,得到元素级操作结果。
比如,对多个补偿数据块进行相加或相乘,得到第一操作结果,将第一操作结果与偏置系数进行相加,得到元素级操作结果。
其中,偏置系数是指用于对数据零点漂移进行校正的补偿系数,通过在对多个补偿数据块进行元素级操作,得到第一操作结果之后,将第一操作结果与偏置系数进行相加,可以对元素级操作之后的零点漂移进行校正,减少每个数据通道可能发生的零点漂移,进一步减小元素级操作的数据误差。
作为一个示例,偏置系数可以用bias表示。请参考图3,在将各个数据块A的每个通道与对应的补偿系数相乘,并将相乘结果加和之后,还可以再将加和结果与偏置系数bias进行相加。
另外,在对多个补偿数据块进行元素级操作,得到元素级操作结果,该元素级操作结果的比特宽度可能会不满足操作需求,因此,本申请实施例中,在对多个数据块进行元素级操作,得到元素级操作结果之后,还可以对元素级操作结果进行逆向处理,以得到满足比特宽度要求的输出数据。其中,逆向处理过程中可以采用逆向系数,对元素级操作结果进行逆向处理。
示例的,该元素级操作层在对多个数据块进行元素级操作,得到元素级操作结果之后,还可以对元素级操作结果进行量化,得到输出数据,该输出数据占据的比特宽度为预设比特宽度,然后将输出数据输出给元素级操作层的下一个网络层。
其中,该预设比特宽度为预先设置,用于限制该元素级操作层的输出数据的比特宽度。元素级操作层的下一个网络层可以为卷积层、全连接层或元素级操作层等。
作为一个示例,对元素级操作结果进行量化可以包括以下两种实现方式:1,若元素级操作层的下一级网络层为卷积层或全连接层,则将逆向系数合并入权重参数中;2,若元素级操作层的下一级网络层仍为元素级操作层,则将逆向系数合并入对应的补偿系数和/或偏置系数中,以完成下一层的操作。
本申请实施例中,神经网络模型中的元素级操作层中可以获取上一级网络层输入的数据类型为定点型数据的多个数据块,然后获取多个数据块中每个数据块的各个通道对应的补偿系数,基于多个数据块中每个数据块的各个通道对应的补偿系数,将这多个数据块转换成数据类型为定点型且数据精度相同的多个补偿数据块,再对转换后的多个补偿数据块进行元素级操作,得到元素级操作结果。也即是,本申请对神经网络模型中的元素级操作层进行了改进,使其可以对定点型数据进行处理,进而使得运行设备可以将元素级操作层的输入数据以低比特位进行缓存,极大地减少了带宽消耗,又由于定点型数据的运算相对简单,因此提高了神经网络模型在相关硬件上的运行效率,降低了硬件要求。另外,通过为每个数据块的各个通道设置补偿系数,基于对应的补偿系数,将数据精度不一致的各个数据块转换成数据精度一致的补偿数据块,使得元素级操作层可以利用设置的补偿系数来补偿数据精度或数据范围差异带来的操作误差,提高了定点化网络的计算精度,使得元素级操作层的数据操作更为灵活,实现了元素级操作层的低精度量化支持。而且,本申请实施例可以有效量化模型在进行Eltwise操作时的精度损失,从而使得一些复杂模型结构在量化硬件上得以应用。
图4是本申请实施例提供的一种数据块的处理装置的结构示意图,该装置可以集成于计算机设备或处理器中,该计算机设备或处理器中运行有神经网络模型,该神经网络模型包括元素级操作层,该装置可以由软件、硬件或者两者的结合实现成为计算机设备的部分或者全部。如图4所示,该装置包括第一获取模块401,第二获取模块402,补偿模块403和操作模块404。
第一获取模块401,用于通过神经网络模型的元素级操作层,获取该元素级操作层的上一级网络层输入的多个数据块,该多个数据块中的数据均为定点型数据;
第二获取模块402,用于通过该元素级操作层,获取该多个数据块中每个数据块的各个通道对应的补偿系数;
补偿模块403,用于通过该元素级操作层,基于该多个数据块中每个数据块的各个通道对应的补偿系数,将该多个数据块转换成多个补偿数据块,该多个补偿数据块中的数据均为定点型数据,且该多个补偿数据块的数据精度相同;
操作模块404,用于通过该元素级操作层,对该多个补偿数据块进行元素级操作,得到元素级操作结果。
可选地,该补偿模块403用于:
将该多个数据块中每个数据块的各个通道上的数据,分别与各个通道对应的补偿系数进行相乘,得到多个补偿数据块;或者,
将该多个数据块中每个数据块的各个通道上的数据,分别与各个通道对应的补偿系数进行相乘,并对相乘结果进行取整处理,得到多个补偿数据块。
可选地,该操作模块404用于:
对该多个补偿数据块进行相加或相乘,得到该元素级操作结果;或者,
对该多个补偿数据块进行相加或相乘,得到第一操作结果,将该第一操作结果与偏置系数进行相加,得到该元素级操作结果。
可选地,该装置还包括:
量化模块,用于通过该元素级操作层,对该元素级操作结果进行量化,得到输出数据,该输出数据占据的比特宽度为预设比特宽度;
输出模块,用于通过该元素级操作层,将该输出数据输出给该元素级操作层的下一个网络层。
可选地,该获取模块402用于:
对于该多个数据块中的目标数据块,从已存储的模型数据中,获取该目标数据块的各个通道对应的补偿系数,该目标数据块为该多个数据块中的任一数据块;或者,
从该元素级操作层的输入数据中,获取该目标数据块的各个通道对应的补偿系数。
本申请实施例中,神经网络模型中的元素级操作层可以获取上一级网络层输入的数据类型为定点型数据的多个数据块,然后获取多个数据块中每个数据块的各个通道对应的补偿系数,基于多个数据块中每个数据块的各个通道对应的补偿系数,将这多个数据块转换成数据类型为定点型且数据精度相同的多个补偿数据块,再对转换后的多个补偿数据块进行元素级操作,得到元素级操作结果。也即是,本申请对神经网络模型中的元素级操作层进行了改进,使其可以对定点型数据进行处理,进而使得运行设备可以将元素级操作层的输入数据以低比特位进行缓存,极大地减少了带宽消耗,又由于定点型数据的运算相对简单,因此提高了神经网络模型在相关硬件上的运行效率,降低了硬件要求。另外,通过为每个数据块的各个通道设置补偿系数,基于对应的补偿系数,将数据精度不一致的各个数据块转换成数据精度一致的补偿数据块,使得元素级操作层可以利用设置的补偿系数来补偿数据精度或数据范围差异带来的操作误差,提高了定点化网络的计算精度,使得元素级操作层的数据操作更为灵活,实现了元素级操作层的低精度量化支持。
需要说明的是:上述实施例提供的数据块的处理装置在进行元素级操作时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据块的处理装置与数据块的处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图5是本申请实施例提供的一种计算机设备500的结构示意图,该计算机设备500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessing units,CPU)501和一个或一个以上的存储器502,其中,所述存储器502中存储有至少一条指令,所述至少一条指令由所述处理器501加载并执行以实现上述各个方法实施例提供的数据块的处理方法。当然,该计算机设备500还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该计算机设备500还可以包括其他用于实现设备功能的部件,在此不做赘述。上述存储器还包括一个或者一个以上的程序,一个或者一个以上程序存储于存储器中,被配置由CPU执行。
在一些实施例中,还提供了一种计算机可读存储介质,该存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例中数据块的处理方法的步骤。例如,所述计算机可读存储介质可以是ROM、RAM、CD-ROM、磁带、软盘和光数据存储设备等。
值得注意的是,本申请提到的计算机可读存储介质可以为非易失性存储介质,换句话说,可以是非瞬时性存储介质。
应当理解的是,实现上述实施例的全部或部分步骤可以通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。所述计算机指令可以存储在上述计算机可读存储介质中。
也即是,在一些实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述所述的数据块的处理方法的步骤。
以上所述为本申请提供的实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (12)
1.一种数据块的处理方法,其特征在于,所述方法包括:
通过神经网络模型中的元素级操作层,获取所述元素级操作层的上一级网络层输入的多个数据块,所述多个数据块中的数据均为定点型数据;
通过所述元素级操作层,获取所述多个数据块中每个数据块的各个通道对应的补偿系数;
通过所述元素级操作层,基于所述多个数据块中每个数据块的各个通道对应的补偿系数,将所述多个数据块转换成多个补偿数据块,所述多个补偿数据块中的数据均为定点型数据,且所述多个补偿数据块的数据精度相同;
通过所述元素级操作层,对所述多个补偿数据块进行元素级操作,得到元素级操作结果。
2.如权利要求1所述的方法,其特征在于,所述基于所述多个数据块中每个数据块的各个通道对应的补偿系数,将所述多个数据块转换成多个补偿数据块,包括:
将所述多个数据块中每个数据块的各个通道上的数据,分别与各个通道对应的补偿系数进行相乘,得到多个补偿数据块;或者,
将所述多个数据块中每个数据块的各个通道上的数据,分别与各个通道对应的补偿系数进行相乘,并对相乘结果进行取整处理,得到多个补偿数据块。
3.如权利要求1所述的方法,其特征在于,所述对所述多个补偿数据块进行元素级操作,得到元素级操作结果,包括:
对所述多个补偿数据块进行相加或相乘,得到所述元素级操作结果;或者,
对所述多个补偿数据块进行相加或相乘,得到第一操作结果,将所述第一操作结果与偏置系数进行相加,得到所述元素级操作结果。
4.如权利要求1所述的方法,其特征在于,所述对所述多个补偿数据块进行元素级操作,得到元素级操作结果之后,还包括:
通过所述元素级操作层,对所述元素级操作结果进行量化,得到输出数据,所述输出数据占据的比特宽度为预设比特宽度;
通过所述元素级操作层,将所述输出数据输出给所述元素级操作层的下一个网络层。
5.如权利要求1-4任一所述的方法,其特征在于,所述获取所述多个数据块中每个数据块的各个通道对应的补偿系数,包括:
对于所述多个数据块中的目标数据块,从已存储的模型数据中,获取所述目标数据块的各个通道对应的补偿系数,所述目标数据块为所述多个数据块中的任一数据块;或者,
从所述元素级操作层的输入数据中,获取所述目标数据块的各个通道对应的补偿系数。
6.一种数据块的处理装置,其特征在于,所述装置包括:
第一获取模块,用于通过神经网络模型中的元素级操作层,获取所述元素级操作层的上一级网络层输入的多个数据块,所述多个数据块中的数据均为定点型数据;
第二获取模块,用于通过所述元素级操作层,获取所述多个数据块中每个数据块的各个通道对应的补偿系数;
补偿模块,用于通过所述元素级操作层,基于所述多个数据块中每个数据块的各个通道对应的补偿系数,将所述多个数据块转换成多个补偿数据块,所述多个补偿数据块中的数据均为定点型数据,且所述多个补偿数据块的数据精度相同;
操作模块,用于通过所述元素级操作层,对所述多个补偿数据块进行元素级操作,得到元素级操作结果。
7.如权利要求6所述的装置,其特征在于,所述补偿模块用于:
将所述多个数据块中每个数据块的各个通道上的数据,分别与各个通道对应的补偿系数进行相乘,得到多个补偿数据块;或者,
将所述多个数据块中每个数据块的各个通道上的数据,分别与各个通道对应的补偿系数进行相乘,并对相乘结果进行取整处理,得到多个补偿数据块。
8.如权利要求6所述的装置,其特征在于,所述操作模块用于:
对所述多个补偿数据块进行相加或相乘,得到所述元素级操作结果;或者,
对所述多个补偿数据块进行相加或相乘,得到第一操作结果,将所述第一操作结果与偏置系数进行相加,得到所述元素级操作结果。
9.如权利要求6所述的装置,其特征在于,所述装置还包括:
量化模块,用于通过所述元素级操作层,对所述元素级操作结果进行量化,得到输出数据,所述输出数据占据的比特宽度为预设比特宽度;
输出模块,用于通过所述元素级操作层,将所述输出数据输出给所述元素级操作层的下一个网络层。
10.如权利要求1-9任一所述的装置,其特征在于,所述获取模块用于:
对于所述多个数据块中的目标数据块,从已存储的模型数据中,获取所述目标数据块的各个通道对应的补偿系数,所述目标数据块为所述多个数据块中的任一数据块;或者,
从所述元素级操作层的输入数据中,获取所述目标数据块的各个通道对应的补偿系数。
11.一种计算机设备,其特征在于,所述计算机设备包括处理器、通信接口、存储器和通信总线,所述处理器、所述通信接口和所述存储器通过所述通信总线完成相互间的通信,所述存储器用于存放计算机程序,所述处理器用于执行所述存储器上所存放的计算机程序,以实现权利要求1-5任一所述方法的步骤。
12.一种计算机可读存储介质,其特征在于,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-5任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910683930.4A CN112308216A (zh) | 2019-07-26 | 2019-07-26 | 数据块的处理方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910683930.4A CN112308216A (zh) | 2019-07-26 | 2019-07-26 | 数据块的处理方法、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112308216A true CN112308216A (zh) | 2021-02-02 |
Family
ID=74329832
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910683930.4A Pending CN112308216A (zh) | 2019-07-26 | 2019-07-26 | 数据块的处理方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112308216A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108074211A (zh) * | 2017-12-26 | 2018-05-25 | 浙江大华技术股份有限公司 | 一种图像处理装置及方法 |
CN108701250A (zh) * | 2017-10-16 | 2018-10-23 | 深圳市大疆创新科技有限公司 | 数据定点化方法和装置 |
US20180322607A1 (en) * | 2017-05-05 | 2018-11-08 | Intel Corporation | Dynamic precision management for integer deep learning primitives |
-
2019
- 2019-07-26 CN CN201910683930.4A patent/CN112308216A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180322607A1 (en) * | 2017-05-05 | 2018-11-08 | Intel Corporation | Dynamic precision management for integer deep learning primitives |
CN108701250A (zh) * | 2017-10-16 | 2018-10-23 | 深圳市大疆创新科技有限公司 | 数据定点化方法和装置 |
CN108074211A (zh) * | 2017-12-26 | 2018-05-25 | 浙江大华技术股份有限公司 | 一种图像处理装置及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10491239B1 (en) | Large-scale computations using an adaptive numerical format | |
US11488019B2 (en) | Lossless model compression by batch normalization layer pruning in deep neural networks | |
CN110598839A (zh) | 卷积神经网络系统和卷积神经网络量化的方法 | |
CN111758104B (zh) | 适合于硬件实现的神经网络参数优化方法、神经网络计算方法和装置 | |
KR20200034918A (ko) | 심층 신경망의 가중치에 대한 밸런싱된 프루닝을 제공하는 시스템 및 방법 | |
CN114341892A (zh) | 具有用于高效参数更新的降低精度参数分量的机器学习硬件 | |
CN112639810A (zh) | 人脸关键点定位系统及方法 | |
CN113642711B (zh) | 一种网络模型的处理方法、装置、设备和存储介质 | |
CN111967608A (zh) | 数据处理方法、装置、设备及存储介质 | |
CN113344170A (zh) | 神经网络权重矩阵调整方法、写入控制方法以及相关装置 | |
CN110955405B (zh) | 一种输入数据的处理及指数值获取方法、装置及电子设备 | |
CN109034384B (zh) | 一种数据处理方法和装置 | |
WO2021073638A1 (zh) | 运行神经网络模型的方法、装置和计算机设备 | |
CN114418057A (zh) | 卷积神经网络的运算方法及相关设备 | |
CN111383157A (zh) | 图像处理方法、装置、车载运算平台、电子设备及系统 | |
CN112308199B (zh) | 数据块的处理方法、装置及存储介质 | |
CN112308216A (zh) | 数据块的处理方法、装置及存储介质 | |
CN116594589A (zh) | 浮点数乘法计算的方法、装置和算术逻辑单元 | |
CN115952834A (zh) | 应用于Transformer的批量层归一化方法及装置 | |
CN111788567A (zh) | 一种数据处理设备以及一种数据处理方法 | |
CN111614358B (zh) | 基于分通道量化的特征提取方法、系统、设备及存储介质 | |
US20200371746A1 (en) | Arithmetic processing device, method for controlling arithmetic processing device, and non-transitory computer-readable storage medium for storing program for controlling arithmetic processing device | |
CN113283591A (zh) | 基于Winograd算法和近似乘法器的高效卷积实现方法及装置 | |
JP2021076900A (ja) | データ処理装置及びその動作方法、プログラム | |
CN114662679B (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 |