WO2021120036A1 - 数据处理装置和数据处理方法 - Google Patents

数据处理装置和数据处理方法 Download PDF

Info

Publication number
WO2021120036A1
WO2021120036A1 PCT/CN2019/126179 CN2019126179W WO2021120036A1 WO 2021120036 A1 WO2021120036 A1 WO 2021120036A1 CN 2019126179 W CN2019126179 W CN 2019126179W WO 2021120036 A1 WO2021120036 A1 WO 2021120036A1
Authority
WO
WIPO (PCT)
Prior art keywords
initial
convolution kernel
layer
parameter
parameters
Prior art date
Application number
PCT/CN2019/126179
Other languages
English (en)
French (fr)
Inventor
董镇江
杨帆
李震桁
Original Assignee
华为技术有限公司
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 华为技术有限公司 filed Critical 华为技术有限公司
Priority to CN201980102503.0A priority Critical patent/CN114730331A/zh
Priority to PCT/CN2019/126179 priority patent/WO2021120036A1/zh
Publication of WO2021120036A1 publication Critical patent/WO2021120036A1/zh

Links

Images

Classifications

    • 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

Definitions

  • the data processing device When the data processing device performs convolution processing on a matrix to be convolved with a size of M+1 according to a convolution kernel with a size of M+1, it uses M multipliers and M-1 adders to calculate the convolution kernel The convolution result of the M parameters and the M eigenvalues in the matrix to be convolved, and another adder calculates the sum of the convolution result and the M+1th eigenvalue in the matrix to be convolved, and finally the sum Take it as the convolution result of the convolution kernel on the matrix to be convolved.
  • This makes it unnecessary to use multiple traditional data processing including M+1 multipliers and M adders when the size of the convolution kernel required for convolution calculation is one more than the number of multiplication and accumulation units in the data processing device.
  • the device calculates, thereby avoiding the waste of resources and improving the utilization rate of resources.
  • FIG. 3 is a schematic diagram of the hardware structure of a chip provided by this application.
  • FIG. 11 is a schematic diagram of another method for obtaining an equivalent convolution kernel provided by this application.
  • FIG. 17 is a schematic diagram of a method for reading data provided by this application.
  • FIG. 20 is a schematic structural diagram of a data processing device provided by this application.
  • a convolutional neural network (CNN) 300 may include an input layer 310, a convolutional layer/pooling layer 320 (the pooling layer is optional), and a neural network layer 330.
  • weight values in these weight matrices need to be obtained through a lot of training in practical applications.
  • Each weight matrix formed by the weight values obtained through training can be used to extract information from the input image, so that the convolutional neural network 300 can make correct predictions. .
  • FIG. 3 is a hardware structure of a chip provided by an embodiment of the application, and the chip includes a neural network processor 50.
  • the chip can be set in the client device 240 as shown in FIG. 4 to implement corresponding services.
  • the chip can also be set in the training device 220 shown in FIG. 4 to complete the training work of the training device 220 and output the target model 201.
  • the bus interface unit (BIU) 510 is used to implement interaction between the main CPU, the DMAC, and the instruction fetch memory 509 through the bus.
  • the parameters in the convolution kernel are based on the corresponding parameters of the initial convolution kernel of the Lth layer and the first initial parameters in the initial convolution kernel of the Lth layer. Therefore, the parameters in the equivalent convolution kernel are usually K times smaller than the initial convolution kernel of the Lth layer.
  • the initial parameters of the L+1th layer can be enlarged by K times, so that the eigenvalues output by the Lth layer can be compensated.
  • the initial convolution kernel of the Lth layer is a depth separable convolution kernel
  • the L+1th layer is a normal convolutional layer
  • obtain the L+1th layer according to the initial parameters of the L+1th layer of the neural network The implementation of equivalent parameters.
  • the M multipliers and the M-1 first adders are used for multiplying and accumulating the M second parameters and the M second characteristic values to obtain a multiplying and accumulating result.
  • the second adder is used to perform an addition operation on the multiplication and accumulation result and the first eigenvalue to obtain a convolution result of the two-dimensional convolution kernel and the matrix to be convolved.
  • the first parameter should be enlarged by m times accordingly, so the processing result of the first feature value by the first parameter should also be enlarged by m times.
  • the data processing device of the present application directly enlarges the first feature value by m times to ensure the accuracy of the convolution result.
  • the direct-connected buffer can reuse the repeated part read from the lower-level cache in the previous clock cycle in the next clock cycle Data, and only need to read part of the data that needs to be updated. This can save transmission resources and improve transmission efficiency.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)
  • Image Analysis (AREA)

Abstract

本申请提供人工智能领域中的数据处理装置和数据处理方法。本申请提供一种数据处理装置用于根据二维卷积核对待卷积矩阵进行卷积处理,二维卷积核包括一个第一参数和M个第二参数,待卷积矩阵包括一个第一特征值和M个第二特征值,所述M个第二参数与所述M个第二特征值一一对应,所述第一参数对应所述第一特征值,所述数据处理装置包括:M个乘法器和M-1个第一加法器,用于对所述M个第二参数和所述M个第二特征值进行乘累加运算,以得到乘累加结果;第二加法器,用于对所述乘累加结果和所述第一特征值进行加运算,以得到所述二维卷积核与所述待卷积矩阵的卷积结果。本申请提供的数据处理装置和数据处理方法,有助于避免资源浪费,提高资源利用率。

Description

数据处理装置和数据处理方法 技术领域
本申请涉及人工智能领域的数据计算,并且更具体地,涉及一种数据处理装置和数据处理方法。
背景技术
人工智能(artificial intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用***。换句话说,人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式作出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。人工智能领域的研究包括机器人,自然语言处理,计算机视觉,决策与推理,人机交互,推荐与搜索,AI基础理论等。
神经网络(neural network,NN)作为人工智能的重要分支,是一种模仿动物神经网络行为特征进行信息处理的网络结构。神经网络的结构由大量的节点(或称神经元)相互联接构成,基于特定运算模型通过对输入信息进行学习和训练达到处理信息的目的。一个神经网络包括输入层、隐藏层及输出层,输入层负责接收输入信号,输出层负责输出神经网络的计算结果,隐藏层负责学习、训练等计算过程,是网络的记忆单元,隐藏层的记忆功能由权重矩阵来表征,通常每个神经元对应一个权重系数。
其中,卷积神经网络(convolutional neural network,CNN)是一种多层的神经网络,每层有多个二维平面组成,而每个平面由多个独立神经元组成,每个特征平面可以由一些矩形排列的神经单元组成。同一特征平面的神经单元共享权重,这里共享的权重就是卷积核。
在卷积神经网络中,处理器进行卷积操作通常是将特征平面中的特征信息与权重的卷积,转换为信号矩阵与权重矩阵之间的矩阵乘运算。在具体矩阵乘运算时,对信号矩阵和权重矩阵进行分块处理,得到多个分形(fractional)信号矩阵和分形权重矩阵,然后对多个分形信号矩阵和分形权重矩阵进行矩阵乘和累加运算。
目前,处理器对输入层进行卷积时,处理器中用于进行卷积运算的每个处理单元(processing engine,PE)中通常包括2 n的乘累加(multiply and accumulate,MAC)单元。具体地说,处理器用于进行卷积计算的每个PE包括个2 n乘法单元和2 n-1个加法单元。但是,进行卷积核运算时使用的卷积核的大小一般都小于2 n,这使得PE进行卷积运算时,会有部分乘法单元和加法单元空转,从而造成处理器的资源浪费。
例如,如图15所示,进行卷积运行的PE包括16个MAC,且卷积核大小为3*3时,该PE中,至少乘法单元9至乘法单元15,以及加法单元8、加法单元9、加法单元10和加法单元12会空转,从而造成处理资源的浪费。
发明内容
本申请提供一种数据处理装置和数据处理方法,有助于避免资源的浪费,提高资源的利用率。
第一方面,本申请提供一种数据处理装置,所述数据处理装置用于根据二维卷积核对待卷积矩阵进行卷积处理,所述二维卷积核包括一个第一参数和M个第二参数,所述待卷积矩阵包括一个第一特征值和M个第二特征值,所述M个第二参数与所述M个第二特征值一一对应,所述第一参数对应所述第一特征值。所述数据处理装置包括:M个乘法器和M-1个第一加法器,用于对所述M个第二参数和所述M个第二特征值进行乘累加运算,以得到乘累加结果;第二加法器,用于对所述乘累加结果和所述第一特征值进行加运算,以得到所述二维卷积核与所述待卷积矩阵的卷积结果。其中,M为大于1的正整数。
该数据处理装置在根据大小为M+1的卷积核对大小为M+1的待卷积矩阵进行卷积处理时,通过M个乘法器和M-1个加法器来计算卷积核中的M个参数与待卷积矩阵中的M个特征值的卷积结果,并通过另一个加法器计算该卷积结果与待卷积矩阵中第M+1个特征值的和,最后将该和当作该卷积核对该待卷积矩阵的卷积结果。这使得当需要进行卷积计算的卷积核的大小比数据处理装置中的乘累加单元的数目多1时,可以不用使用多个包含M+1个乘法器和M个加法器的传统数据处理装置计算,从而可以避免资源的浪费,提高资源的利用率。
其中,待卷积矩阵中可以包括输入神经网络的图像的特征,或者可以包括输入神经网络的语音数据所包含的语音特征,或者可以包括输入神经网络的文本数据所包含的文本特征等等。
在一些可能的实现方式中,所述第一参数等于1。也就是说,输入第二加法器的第一特征值所对应的第一参数为1。这样,可以保证该数据处理装置计算得到的卷积结果的准确性。
在一些可能的实现方式中,所述装置还包括处理器,所述处理器用于:根据初始卷积核确定所述二维卷积核,所述初始卷积核包括一个第一初始参数和M个第二初始参数,所述M个所述第二参数与所述M个第二初始参数一一对应,所述第一参数与所述第一初始参数对应,所述第二参数等于所述第二参数对应的第二初始参数与所述第一初始参数的商,所述第一初始参数不为零。
该实现方式中的数据处理装置用于计算初始卷积核与待卷积矩阵的卷积结果时,可以先通过处理器将初始卷积核中的所有参数除上其中的一个非零参数(即第一初始参数),从而可以使得得到的二维卷积核中有一个参数(即第一参数)为1。这样,在使用上述M各乘法器和M个加法器来计算该二维卷积核与待卷积矩阵的卷积结果时,能够得到更准确的值。
可选地,该处理器还可以用于:根据所述二位卷积核与所述待卷积矩阵的卷积结果确定所述初始卷积核与所述待卷积矩阵的卷积结果,其中,所述初始卷积核与所述待卷积矩阵的卷积结果等于所述二维卷积核与所述待卷积矩阵的卷积结果与所述第一初始参数的乘积。
在一些可能的实现方式中,当至少一个所述第二初始参数与所述第一初始参数的商大 于第一阈值时,在所述根据初始卷积核确定所述二维卷积核之前,所述处理器还用于:对所述M个第二参数或所述M个第二初始参数缩小m倍,其中,任一缩小m倍的第二初始参数与所述第一初始参数的商不大于所述第一阈值。其中,m可以为正整数。
该实现方式中的数据处理装置,在初始卷积核中的任意一个第二初始参数与所述第一初始参数的商大于第一阈值时,可以先将所有第二初始参数缩小m倍,以使得缩小后的任意第二初始参数与所述第一初始参数的商不大于所述第一阈值,从而可以使得将缩小后的第二初始参数除上第一初始参数得到的第二参数不大于所述第一阈值。其中,第一阈值可以小于或等于处理器的最大可表达值,或者说,第一阈值可以小于或等于该数据处理装置中的上述乘法器和加法器的最大可表达值。这样可以使得计算得到的卷积结果不会因为溢出数据处理装置的最大可表达值范围而产生计算结果不准确的问题。
或者,该实现方式中的数据处理装置,在初始卷积核中的任意一个第二初始参数与所述第一初始参数的商大于第一阈值时,可以将所有第二参数缩小m倍,以使得缩小后的第二参数不大于所述第一阈值。其中,第一阈值可以小于或等于处理器的最大可表达值,或者说,第一阈值可以小于或等于该数据处理装置中的上述乘法器和加法器的最大可表达值。这样可以使得计算得到的卷积结果不会因为溢出数据处理装置的最大可表达值范围而产生计算结果不准确的问题。
在处理器还用于对所述M个第二参数或所述M个第二初始参数缩小m倍的情况下,在对所述乘累加结果和第一特征值进行加运算之前,所述处理器还用于:对所述第一特征值缩小m倍;对应的,第二加法器具体用于对所述乘累加结果和所述缩小后的第一特征值进行加运算。这是因为在将第二初始参数或第二参数缩小m倍的情况下,第一参数相应地也应该缩小m倍,所以第一参数对第一特征值的处理结果也应该缩小m倍。本申请的数据处理装置直接将第一特征值缩小m倍,以保证卷积结果的准确性。
可选地,该处理器可以通过移位操作来对第一特征值进行缩小。具体地,可以将第一特征值左移。
在一些可能的实现方式中,当至少一个所述第二初始参数与所述第一初始参数的商小于第二阈值时,在所述根据初始卷积核确定所述二维卷积核之前,所述处理器还用于:对所述M个第二参数或所述M个第二初始参数扩大n倍,其中,任一扩大n倍的第二初始参数与所述第一初始参数的商不小于所述第二阈值。其中,n可以为正整数。
该实现方式中的数据处理装置,在初始卷积核中的任意一个第二初始参数与所述第一初始参数的商小于第二阈值时,可以先将所有第二初始参数扩大m倍,以使得扩大后的任意第二初始参数与所述第一初始参数的商不小于所述第二阈值,从而可以使得将缩小后的第二初始参数除上第一初始参数得到的第二参数不小于所述第二一阈值。其中,第二阈值可以大于或等于处理器的最小可表达值,或者说,第二阈值可以大于或等于该数据处理装置中的上述乘法器和加法器的最小可表达值。这样可以使得计算得到的卷积结果不会因为溢出数据处理装置的最小可表达值范围而产生计算结果不准确的问题。
或者,该实现方式中的数据处理装置,在初始卷积核中的任意一个第二初始参数与所述第一初始参数的商小于第二阈值时,可以将所有第二参数缩小m倍,以使得缩小后的第二参数不小于所述第二阈值。其中,第二阈值可以大于或等于处理器的最小可表达值,或者说,第二阈值可以大于或等于该数据处理装置中的上述乘法器和加法器的最小可表达 值。这样可以使得计算得到的卷积结果不会因为溢出数据处理装置的最小可表达值范围而产生计算结果不准确的问题。
在一些可能的实现方式中,在所述对所述乘累加结果和所述第一特征值进行加运算之前,所述处理器还用于:对所述第一特征值扩大n倍;对应的,所述第二加法器具体用于对所述乘累加结果和所述扩大后的第一特征值进行加运算。
这是因为在将第二初始参数或第二参数扩大m倍的情况下,第一参数相应地也应该扩大m倍,所以第一参数对第一特征值的处理结果也应该扩大m倍。本申请的数据处理装置直接将第一特征值扩大m倍,以保证卷积结果的准确性。
可选地,该处理器可以通过移位操作来对第一特征值进行扩大处理。具体地,可以将第一特征值右移。
在一些可能的实现方式中,所述处理器包括以下一项或者多项的组合:中央处理器、图形处理器或神经网络处理器。
在一些可能的实现方式中,M等于8,所述二维卷积核为3*3矩阵。可选地,所述M个乘法器和所述M-1个第一加法器可以构成一个乘积累加器。
在一些可能的实现方式中,M等于24,所述二维卷积核为5*5矩阵。可选地,所述M个乘法器和所述M-1个第一加法器构成3个乘积累加器,其中,每个所述乘积累加器包括M/3个乘法器和M/3-1个第一加法器。
在一些可能的实现方式中,所述二维卷积核为一个N维卷积核的一个二维矩阵分量,N为大于2的整数。
第二方面,本申请提供一种数据处理方法,包括:根据神经网络第L层的初始卷积核得到第L层的等效卷积核,其中,所述第L层的等效卷积核的参数基于所述第L层的初始卷积核的对应参数与所述第L层的初始卷积核中的第一初始参数的商获得,所述第一初始参数的值为K,K为非零数,所述第L层的等效卷积核用于对所述第L层的特征图进行卷积处理;获取所述神经网络第L+1层中与所述第L层的初始卷积核具有映射关系的所述第L+1层的初始卷积核;将所述第L+1层的初始卷积核中的每个参数扩大K倍;根据所述扩大处理后的第L+1层的初始卷积核确定所述第L+1层的等效卷积核。其中,K可以为正整数。
该方法中,对神经网络第L层的初始卷积核中的参数进行处理,以使得根据处理得到的等效卷积核进行卷积处理时,可以减少一次乘运算处理,从而可以使得初始卷积核中的参数数量比进行卷积计算的装置中的乘法器数量多1时,不用多使用至少一个装置而导致装置中其他乘法器和加法器空转,进而可以节省资源,提高资源利用率。
此外,虽然对初始卷积核处理过程中使得等效卷积核缩小K倍,所导致的使用等效卷积核进行卷积处理得到的卷积结果比使用初始卷积核进行卷积处理得到的卷积结果小K倍的问题,可以通过扩大神经网络第L+1层中相应参数来解决。
其中,输入第L层的特征图可以包括输入神经网络的图像的特征,或者可以包括输入神经网络的语音数据所包含的语音特征,或者可以包括输入神经网络的文本数据所包含的文本特征等等。
在一些可能的实现方式中,所述第L层的等效卷积核包括M个第二参数和一个第一参数,所述M个第二参数分别对应所述特征图的M个第二特征值,所述第一参数对应所 述特征图的第一特征值,所述第一参数为1,所述对所述第L层的特征图进行卷积处理,包括:对所述M个第二参数和所述M个第二特征值进行乘累加运算,以得到乘累加结果;对所述乘累加结果和所述第一特征值进行加运算。
也就是说,等效卷积核中的参数可以是初始卷积核中的所有参数除上其中一个非零的第一初始参数得到的,此时,等效卷积核中与第一初始参数对应的第一参数即为1。这样,使用等效卷积核来对特征图进行处理时,就可以仅在计算等效卷积核中除第一参数以外的M个第二参数来与相应的M个特征值的乘累加加过时,才使用乘累加单元,然后可以在计算得到这M个第二参数与这M个特征值的乘累加结果之后,将该乘累加结果与第一参数对应的第一特征值相加,从而得到等效卷积核与特征图的卷积结果。
在一些可能的实现方式中,所述第L层等效卷积核的参数基于所述第L层的初始卷积核的对应参数与所述第L层的初始卷积核中的第一初始参数的商获得,包括:当至少一个所述第L层的初始卷积核的参数与所述第一初始参数的商大于第一阈值时,对所述第L层的初始卷积核的对应参数缩小m倍,其中,任一缩小m倍的所述第L层的初始卷积核的参数与所述第一初始参数的商不大于所述第一阈值。其中,m可以为正整数。
该实现方式中的数据处理装置,在初始卷积核中的任意一个第二初始参数与所述第一初始参数的商大于第一阈值时,可以先将所有第二初始参数缩小m倍,以使得缩小后的任意第二初始参数与所述第一初始参数的商不大于所述第一阈值,从而可以使得将缩小后的第二初始参数除上第一初始参数得到的第二参数不大于所述第一阈值。其中,第一阈值可以小于或等于处理器的最大可表达值,或者说,第一阈值可以小于或等于该数据处理装置中的上述乘法器和加法器的最大可表达值。这样可以使得计算得到的卷积结果不会因为溢出数据处理装置的最大可表达值范围而产生计算结果不准确的问题。
可选地,所述对所述乘累加结果和所述第一特征值进行加运算,包括:对所述第一特征值缩小m倍;对所述乘累加结果和所述缩小后的第一特征值进行加运算。
在一些可能的实现方式中,所述第L层等效卷积核的参数基于所述第L层的初始卷积核的对应参数与所述第L层的初始卷积核中的第一初始参数的商获得,包括:当至少一个所述第L层的初始卷积核的参数与所述第一初始参数的商小于第二阈值时,对所述第L层的初始卷积核的对应参数扩大n倍,其中,任一扩大n倍的所述第L层的初始卷积核的参数与所述第一初始参数的商不小于所述第二阈值。其中,n可以为正整数。
该实现方式中的数据处理装置,在初始卷积核中的任意一个第二初始参数与所述第一初始参数的商小于第二阈值时,可以先将所有第二初始参数扩大m倍,以使得扩大后的任意第二初始参数与所述第一初始参数的商不小于所述第二阈值,从而可以使得将缩小后的第二初始参数除上第一初始参数得到的第二参数不小于所述第二一阈值。其中,第二阈值可以大于或等于处理器的最小可表达值,或者说,第二阈值可以大于或等于该数据处理装置中的上述乘法器和加法器的最小可表达值。这样可以使得计算得到的卷积结果不会因为溢出数据处理装置的最小可表达值范围而产生计算结果不准确的问题。
可选地,所述对所述乘累加结果和所述第一特征值进行加运算,包括:对所述第一特征值扩大n倍;对所述乘累加结果和所述扩大后的第一特征值进行加运算。
第三方面,本申请提供一种数据处理装置,包括:处理模块,用于根据神经网络第L层的初始卷积核得到第L层的等效卷积核,其中,所述第L层的等效卷积核的参数基于所 述第L层的初始卷积核的对应参数与所述第L层的初始卷积核中的第一初始参数的商获得,所述第一初始参数的值为K,K为非零数,所述第L层的等效卷积核用于对所述第L层的特征图进行卷积处理;获取模块,用于获取所述神经网络第L+1层中与所述第L层的初始卷积核具有映射关系的所述第L+1层的初始卷积核;扩大模块,用于将所述第L+1层的初始卷积核中的每个参数扩大K倍;确定模块,用于根据所述扩大处理后的第L+1层的初始卷积核确定所述第L+1层的等效卷积核。其中,K可以为正整数。
其中,输入第L层的特征图可以包括输入神经网络的图像的特征,或者可以包括输入神经网络的语音数据所包含的语音特征,或者可以包括输入神经网络的文本数据所包含的文本特征等等。
在一些可能的实现方式中,所述第L层的等效卷积核包括M个第二参数和一个第一参数,所述M个第二参数分别对应所述特征图的M个第二特征值,所述第一参数对应所述特征图的第一特征值,所述第一参数为1;其中,所述对所述第L层的特征图进行卷积处理,包括:对所述M个第二参数和所述M个第二特征值进行乘累加运算,以得到乘累加结果;对所述乘累加结果和所述第一特征值进行加运算。
在一些可能的实现方式中,所述第L层等效卷积核的参数基于所述第L层的初始卷积核的对应参数与所述第L层的初始卷积核中的第一初始参数的商获得,包括:当至少一个所述第L层的初始卷积核的参数与所述第一初始参数的商大于第一阈值时,对所述第L层的初始卷积核的对应参数缩小m倍,其中,任一缩小m倍的所述第L层的初始卷积核的参数与所述第一初始参数的商不大于所述第一阈值。其中,m可以为正整数。
可选地,所述对所述乘累加结果和所述第一特征值进行加运算,包括:对所述第一特征值缩小m倍;对所述乘累加结果和所述缩小后的第一特征值进行加运算。
在一些可能的实现方式中,所述第L层等效卷积核的参数基于所述第L层的初始卷积核的对应参数与所述第L层的初始卷积核中的第一初始参数的商获得,包括:当至少一个所述第L层的初始卷积核的参数与所述第一初始参数的商小于第二阈值时,对所述第L层的初始卷积核的对应参数扩大n倍,其中,任一扩大n倍的所述第L层的初始卷积核的参数与所述第一初始参数的商不小于所述第二阈值。其中,n可以为正整数。
可选地,所述对所述乘累加结果和所述第一特征值进行加运算,包括:对所述第一特征值扩大n倍;对所述乘累加结果和所述扩大后的第一特征值进行加运算。
第四方面,本申请提供了一种数据装置,该装置包括:存储器,用于存储程序;处理器,用于执行所述存储器存储的程序,当所述存储器存储的程序被执行时,所述处理器用于执行第二方面中的方法。
第五方面,本申请提供一种计算机可读介质,该计算机可读介质存储用于设备执行的指令,该指令用于实现第二方面中的方法。
第六方面,本申请提供一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行第二方面中的方法。
第七方面,本申请提供一种芯片,所述芯片包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,执行第二方面中的方法。
可选地,作为一种实现方式,所述芯片还可以包括存储器,所述存储器中存储有指令,所述处理器用于执行所述存储器上存储的指令,当所述指令被执行时,所述处理器用于执 行第二方面中的方法。
第八方面,本申请提供了一种计算设备,计算设备包括处理器和存储器,其中:存储器中存储有计算机指令,处理器执行计算机指令,以实现第二方面中的方法。
第九方面,本申请提供了一种数据处理设备,包括可编程器件和存储器,其中,存储器用于存储可编程器件运行所需的配置文件,可编程器件用于从存储器读取配置文件,执行,以实现第二方面的方法。
可选地,作为一种实现方式,可编程器件包括现场可编程逻辑门阵列(FPGA)或复杂可编程逻辑器件(CPLD)。
附图说明
图1为本申请提供的一种卷积神经网络的结构示意图。
图2为本申请提供的另一种卷积神经网络的结构示意图。
图3为本申请提供的一种芯片的硬件结构示意图。
图4为本申请提供的一种***架构的结构示意图。
图5为本申请提供的一种数据处理方法的流程示意图。
图6为本申请提供的一种获取等效卷积核的方法示意图。
图7为本申请提供的一种获取等效参数的方法示意图。
图8为本申请提供的另一种获取等效参数的方法示意图。
图9为本申请提供的另一种获取等效参数的方法示意图。
图10为本申请提供的另一种获取等效卷积核的方法示意图。
图11为本申请提供的另一种获取等效卷积核的方法示意图。
图12为本申请提供的一种数据处理装置的结构示意图。
图13为本申请提供的另一种数据处理装置的结构示意图。
图14为本申请提供的另一种数据处理装置的结构示意图。
图15为本申请提供的另一种数据处理装置的结构示意图。
图16为本申请提供的一种读取数据的方法示意图。
图17为本申请提供的一种读取数据的方法示意图。
图18为本申请提供的另一种数据处理装置的结构示意图。
图19为本申请提供的另一种数据处理装置的结构示意图。
图20为本申请提供的一种数据处理设备的结构示意图。
具体实施方式
下面对本申请实施例中的技术方案进行描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例涉及了神经网络的相关应用,为了更好地理解本申请实施例的方案,下面先对本申请实施例可能涉及的神经网络的相关术语和其他相关概念进行介绍。
卷积神经网络是一种带有卷积结构的深度神经网络。卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器。该特征抽取器可以看作是滤波器,卷积过程可以看作是 使用一个可训练的滤波器与一个输入的图像或者卷积特征平面(feature map)做卷积。卷积层是指卷积神经网络中对输入信号进行卷积处理的神经元层。在卷积神经网络的卷积层中,一个神经元可以只与部分邻层神经元连接。一个卷积层中,通常包含若干个特征平面,每个特征平面可以由一些矩形排列的神经单元组成。同一特征平面的神经单元共享权重,这里共享的权重就是卷积核。共享权重可以理解为提取图像信息的方式与位置无关。这其中隐含的原理是:图像的某一部分的统计信息与其他部分是一样的。即意味着在某一部分学习的图像信息也能用在另一部分上。所以对于图像上的所有位置,我们都能使用同样的学习得到的图像信息。在同一卷积层中,可以使用多个卷积核来提取不同的图像信息,一般地,卷积核数量越多,卷积操作反映的图像信息越丰富。
卷积核可以以随机大小的矩阵的形式初始化,在卷积神经网络的训练过程中卷积核可以通过学习得到合理的权重。另外,共享权重带来的直接好处是减少卷积神经网络各层之间的连接,同时又降低了过拟合的风险。
下面结合图1重点对CNN的结构进行详细的介绍。如上文的基础概念介绍所述,卷积神经网络是一种带有卷积结构的深度神经网络,是一种深度学习(deep learning)架构,深度学习架构是指通过机器学习的算法,在不同的抽象层级上进行多个层次的学习。作为一种深度学习架构,CNN是一种前馈(feed-forward)人工神经网络,该前馈人工神经网络中的各个神经元可以对输入其中的图像作出响应。
本申请实施例中的卷积神经网络的结构可以如图1所示。在图1中,卷积神经网络(CNN)300可以包括输入层310,卷积层/池化层320(其中池化层为可选的),以及神经网络层330。
以图像处理为例(输入数据为文本或语音时的操作类似),其中,输入层310可以获取待处理图像,并将获取到的待处理图像交由卷积层/池化层320以及后面的神经网络层330进行处理,可以得到图像的处理结果。
下面对图1中的CNN 300中内部的层结构进行详细的介绍。
卷积层/池化层320:
卷积层:
如图1所示卷积层/池化层320可以包括如示例321-326层,举例来说:在一种实现中,321层为卷积层,322层为池化层,323层为卷积层,324层为池化层,325为卷积层,326为池化层;在另一种实现方式中,321、322为卷积层,323为池化层,324、325为卷积层,326为池化层。即卷积层的输出可以作为随后的池化层的输入,也可以作为另一个卷积层的输入以继续进行卷积操作。
下面将以卷积层321为例,且以输入数据为图像为例,介绍一层卷积层的内部工作原理。输入数据为语音或文本或其他类型的数据时,卷积层的内部工作原理类似。
卷积层321可以包括很多个卷积算子,卷积算子也称为核,其在图像处理中的作用相当于一个从输入图像矩阵中提取特定信息的过滤器,卷积算子本质上可以是一个权重矩阵,这个权重矩阵通常被预先定义,在对图像进行卷积操作的过程中,权重矩阵通常在输入图像上沿着水平方向一个像素接着一个像素(或两个像素接着两个像素……这取决于步长stride的取值)的进行处理,从而完成从图像中提取特定特征的工作。该权重矩阵的大小应该与图像的大小相关,需要注意的是,权重矩阵的纵深维度(depth dimension)和输 入图像的纵深维度是相同的,在进行卷积运算的过程中,权重矩阵会延伸到输入图像的整个深度。因此,和一个单一的权重矩阵进行卷积会产生一个单一纵深维度的卷积化输出,但是大多数情况下不使用单一权重矩阵,而是应用多个尺寸(行×列)相同的权重矩阵,即多个同型矩阵。每个权重矩阵的输出被堆叠起来形成卷积图像的纵深维度,这里的维度可以理解为由上面所述的“多个”来决定。不同的权重矩阵可以用来提取图像中不同的特征,例如一个权重矩阵用来提取图像边缘信息,另一个权重矩阵用来提取图像的特定颜色,又一个权重矩阵用来对图像中不需要的噪点进行模糊化等。该多个权重矩阵尺寸(行×列)相同,经过该多个尺寸相同的权重矩阵提取后的卷积特征图的尺寸也相同,再将提取到的多个尺寸相同的卷积特征图合并形成卷积运算的输出。
这些权重矩阵中的权重值在实际应用中需要经过大量的训练得到,通过训练得到的权重值形成的各个权重矩阵可以用来从输入图像中提取信息,从而使得卷积神经网络300进行正确的预测。
当卷积神经网络300有多个卷积层的时候,初始的卷积层(例如321)往往提取较多的一般特征,该一般特征也可以称之为低级别的特征;随着卷积神经网络300深度的加深,越往后的卷积层(例如326)提取到的特征越来越复杂,比如高级别的语义之类的特征,语义越高的特征越适用于待解决的问题。
池化层:
由于常常需要减少训练参数的数量,因此卷积层之后常常需要周期性的引入池化层,在如图1中320所示例的321-326各层,可以是一层卷积层后面跟一层池化层,也可以是多层卷积层后面接一层或多层池化层。例如,在图像处理过程中,池化层的唯一目的就是减少图像的空间大小。池化层可以包括平均池化算子和/或最大池化算子,以用于对输入图像进行采样得到较小尺寸的图像。平均池化算子可以在特定范围内对图像中的像素值进行计算产生平均值作为平均池化的结果。最大池化算子可以在特定范围内取该范围内值最大的像素作为最大池化的结果。另外,就像卷积层中用权重矩阵的大小应该与图像尺寸相关一样,池化层中的运算符也应该与图像的大小相关。通过池化层处理后输出的图像尺寸可以小于输入池化层的图像的尺寸,池化层输出的图像中每个像素点表示输入池化层的图像的对应子区域的平均值或最大值。
神经网络层330:
在经过卷积层/池化层320的处理后,卷积神经网络300还不足以输出所需要的输出信息。因为如前所述,卷积层/池化层320只会提取特征,并减少输入图像带来的参数。然而为了生成最终的输出信息(所需要的类信息或其他相关信息),卷积神经网络300需要利用神经网络层330来生成一个或者一组所需要的类的数量的输出。因此,在神经网络层330中可以包括多层隐含层(如图3所示的331、332至33n)以及输出层340,该多层隐含层中所包含的参数可以根据具体的任务类型的相关训练数据进行预先训练得到,例如该任务类型可以包括图像识别,图像分类,图像超分辨率重建等等。
在神经网络层330中的多层隐含层之后,也就是整个卷积神经网络300的最后层为输出层340,该输出层340具有类似分类交叉熵的损失函数,具体用于计算预测误差,一旦整个卷积神经网络300的前向传播(如图1由310至340方向的传播为前向传播)完成,反向传播(如图1由340至310方向的传播为反向传播)就会开始更新前面提到的各层的 权重值以及偏差,以减少卷积神经网络300的损失,及卷积神经网络300通过输出层输出的结果和理想结果之间的误差。
本申请实施例中的神经网络的结构可以如图2所示。在图2中,卷积神经网络(CNN)400可以包括输入层410,卷积层/池化层420(其中池化层为可选的),以及神经网络层430。与图1相比,图2中的卷积层/池化层420中的多个卷积层/池化层(421至426)并行,将分别提取的特征均输入给全神经网络层430进行处理。神经网络层430可以包括多个隐含层,即隐含层1至隐含层n,可以记为431至43n。
需要说明的是,图1和图2所示的卷积神经网络仅作为一种本申请实施例中的两种可能的卷积神经网络的示例,在具体的应用中,本申请实施例中的卷积神经网络还可以以其他网络模型的形式存在。
如图1和图2所示的卷积神经网络中各层的算法或者算子均可在如图3所示的芯片中得以实现。
图3为本申请实施例提供的一种芯片的硬件结构,该芯片包括神经网络处理器50。该芯片可以被设置在如图4所示的客户设备240中,用以实现相应业务。该芯片也可以被设置在如图4所示的训练设备220中,用以完成训练设备220的训练工作并输出目标模型201。
神经网络处理器NPU 50作为协处理器挂载到主中央处理器(central processing unit,CPU)(host CPU)上,由主CPU分配任务。NPU的核心部分为运算电路503,控制器504控制运算电路503提取存储器(权重存储器或输入存储器)中的数据并进行运算。
在一些实现中,运算电路503内部包括多个处理单元(process engine,PE)。
举例来说,假设有输入矩阵A,权重矩阵B,输出矩阵C。运算电路从权重存储器502中取矩阵B相应的数据,并缓存在运算电路中每一个PE上。运算电路从输入存储器501中取矩阵A数据与矩阵B进行矩阵运算,得到的矩阵C的部分结果或最终结果,保存在累加器(accumulator)508中。
向量计算单元507可以对运算电路的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。例如,向量计算单元507可以用于神经网络中非卷积/非FC层的网络计算,如池化(pooling),批归一化(batch normalization),局部响应归一化(local response normalization)等。
在一些实现中,向量计算单元能507将经处理的输出的向量存储到统一缓存器506。例如,向量计算单元507可以将非线性函数应用到运算电路503的输出,例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元507生成归一化的值、合并值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路503的激活输入,例如用于在神经网络中的后续层中的使用。
统一存储器506用于存放输入数据以及输出数据。
权重数据直接通过存储单元访问控制器505(direct memory access controller,DMAC)将外部存储器中的输入数据搬运到输入存储器501和/或统一存储器506、将外部存储器中的权重数据存入权重存储器502,以及将统一存储器506中的数据存入外部存储器。
总线接口单元(bus interface unit,BIU)510,用于通过总线实现主CPU、DMAC和取指存储器509之间进行交互。
与控制器504连接的取指存储器(instruction fetch buffer)509,用于存储控制器504使用的指令;
控制器504,用于调用指存储器509中缓存的指令,实现控制该运算加速器的工作过程。
一般地,统一存储器506,输入存储器501,权重存储器502以及取指存储器509均为片上(On-Chip)存储器,外部存储器为该NPU外部的存储器,该外部存储器可以为双倍数据率同步动态随机存储器(double data rate synchronous dynamic random access memory,DDR SDRAM)、高带宽存储器(high bandwidth memory,HBM)或其他可读可写的存储器。
其中,图1和图2所示的卷积神经网络中各层的运算可以由运算电路503或向量计算单元507执行。
如图4所示,本申请实施例提供了一种***架构200。在图4中,数据采集设备260用于采集训练数据。以用于图像处理的目标模型201为例来说,训练数据可以包括训练图像以及训练图像对应的分类结果,其中,训练图像的结果可以是人工预先标注的结果。目标模型201也可以称为目标规则201。
在采集到训练数据之后,数据采集设备260将这些训练数据存入数据库230,训练设备220基于数据库230中维护的训练数据训练得到目标模型201。
下面对训练设备220基于训练数据得到目标模型201进行描述,训练设备220对输入的原始图像进行处理,将输出的图像与原始图像进行对比,直到训练设备120输出的图像与原始图像的差值小于一定的阈值,从而完成目标模型201的训练。
本申请实施例中的目标模型201具体可以为神经网络。需要说明的是,在实际的应用中,所述数据库230中维护的训练数据不一定都来自于数据采集设备260的采集,也有可能是从其他设备接收得到的。另外需要说明的是,训练设备220也不一定完全基于数据库230维护的训练数据进行目标模型201的训练,也有可能从云端或其他地方获取训练数据进行模型训练,上述描述不应该作为对本申请实施例的限定。
根据训练设备220训练得到的目标模型201可以应用于不同的***或设备中,如应用于图2所示的客户设备240,所述客户设备240可以是终端,如手机终端,平板电脑,笔记本电脑,增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR),车载终端等,还可以是服务器或者云端等。
训练设备220可以针对不同的目标或称不同的任务,基于不同的训练数据生成相应的目标模型201,该相应的目标模型201即可以用于实现上述目标或完成上述任务,从而为用户提供所需的结果。
根据训练设备220训练得到目标模型201,可以是CNN,深度卷积神经网络(deep convolutional neural networks,DCNN)等等。
值得注意的是,图4仅是本申请实施例提供的一种***架构的示意图,图中所示设备、器件、模块等之间的位置关系、训练数据的类型以及神经网络的类型或功能不构成任何限制。例如,在图4中,客户设备240与训练设备220可以为同一个设备。
训练设备220训练得到的神经网络之后,若直接根据训练得到的神经网络执行目标任务,例如进行图像分割、图像识别等等,且神经网络处理器中的运算电路中的每个PE只 能计算大小为M的卷积核与大小为M的特征图的卷积结果,而神经网络中至少一个卷积核中的参数的数量为M+1,则需要至少两个PE才能计算得到大小为M+1的卷积核与大小为M+1的特征图的卷积结果。但是这样会使得PE中较多乘法器和加法器空转,从而浪费资源。
例如,神经网络中包括深度可分离卷积层,该深度可分离卷积层的卷积核的大小为3*3*1,而一个PE只能计算8个的乘累加时,就需要两个PE来计算该卷积核的卷积结果。这会导致有一个PE中的6个乘法器和四个加法器是空转,从而浪费资源。
针对资源浪费的问题,本申请提出了新的数据处理方法和数据处理装置。
图5是本申请一个实施例的数据处理方法的示意性流程图。该方法至少包括S510至S540。该方法可以由图3中的主CPU来执行。
S510,根据神经网络第L层的初始卷积核得到第L层的等效卷积核,其中,所述第L层的等效卷积核的参数基于所述第L层的初始卷积核的对应参数与所述第L层的初始卷积核中的第一初始参数的商获得,所述第一初始参数的值为K,K为非零数,所述第L层的等效卷积核用于对所述第L层的特征图进行卷积处理。
本实施例中的神经网络可以是任意包含卷积处理的神经网络。例如,本申请实施例中的神经网络可以是图1或图2中所示的卷积神经网络。
本实施例中的第L层可是任意包含卷积处理的层,例如可以是卷积层,进一步地,可以是深度可分离卷积层。
本实施例中的初始卷积核可以是对神经网络进行训练得到的卷积核,或者可以是对神经网络进行训练以及优化后得到的卷积核。
本实施例中,第L层的等效卷积核中的参数基于第L层的初始卷积核的对应参数与第L层的初始卷积核中的第一初始参数的商获得,可以理解为:将第L层的初始卷积核中的一个非零参数称为第一初始参数,将初始卷积核中所有参数除上该第一初始参数,得到每个参数与该第一初始参数的商,并根据每个参数与该第一初始参数的商来确定用于对第L层的特征图进行卷积处理的等效卷积核。也就是说,得到等效卷积核之后,后续使用该神经网络中的第L层对特征图进行处理时,不再使用初始卷积核,而是使用等效卷积核。
其中,输入第L层的特征图可以包括输入神经网络的图像的特征,或者可以包括输入神经网络的语音数据所包含的语音特征,或者可以包括输入神经网络的文本数据所包含的文本特征等等。
S520,获取所述神经网络第L+1层中与所述第L层的初始卷积核具有映射关系的所述第L+1层的初始卷积核。
也就是说,获取第L层之后的第一个层中,与第L层中前述初始卷积核中的参数具有映射关系的初始参数。
第L+1层的初始参数可以是对神经网络进行训练得到的第L+1层的参数,或者,可以是对神经网络进行训练和优化后得到的第L+1层的参数。
第L+1层中与第L层中前述初始卷积核中的参数具有映射关系的初始参数可以理解为:若在神经网络的第L层使用前述初始卷积核对特征图进行处理并输出卷积得到的特征值之后,该卷积得到的特征值输入第L+1层之后,第L+1层中原本应用于对这些特征值进行处理的参数则为第L+1层中与第L层的初始卷积核中的参数具有映射关系的初始参 数。
第L+1层可以是深度可分离卷积层、通常卷积层或全连接层等。其中,通常卷积层也可以称为常规卷积层或标准卷积层。不同类型的第L+1层,其初始参数与第L层的卷积核的初始参数之间的映射关系不同。
神经网络第L+1层中的初始参数与所述第L层的初始卷积核中的初始参数之间的映射关系的示例,将在后续内容中结合图7、图8和图9进行介绍。
S530,将所述第L+1层的初始卷积核中的每个参数扩大K倍。
因为S510中,第L层的等效该卷积核中的参数是基于所述第L层的初始卷积核的对应参数与所述第L层的初始卷积核中的第一初始参数的商获得的,所以,等效卷积核中的参数通常来说,会比第L层的初始卷积核缩小K倍。为了保证该神经网络对输入的数据处理的结果的准确性,可以将第L+1层的初始参数扩大K倍,这样,就能对第L层输出的特征值进行补偿。
S540,根据所述扩大处理后的第L+1层的初始卷积核确定所述第L+1层的等效卷积核。
本实施例中,第L+1层的等效卷积核用于对第L层输出的特征值进行处理,或者说用于对输入第L+1层的特征值进行处理。也就是说,在应用场景中使用该神经网络进行业务处理,例如进行图像分类、图像分割、图像识别等业务处理时,不再使用第L+1层的初始卷积核,而是使用第L+1层的等效卷积核。
本实施例中的数据处理方法,对第L层的初始卷积核进行相关处理,使得处理得到的等效卷积核用于对输入第L层的特征图进行卷积处理时,该等效卷积核与该特征图之间的卷积运算不再全部需要乘累加运算,而是使得等效卷积核与该特征图之间的卷积运算可以分解为部分卷积参数与对应特征值的乘累加运算,以及该乘累加运算结果与特征图中的没有参数乘累加运算的特征值的非乘累加运算。这样可以使得在神经网络第L层对特征图进行卷积处理时,若第L层的卷积核中参数的数量比进行卷积处理的运算电路一次能够计算的乘累加次数多1,则可以不在出现因为需要多使用一个运算电路而导致多使用的运算电路中大部分乘法器和加法器空转,从而导致的资源浪费的问题。
此外,根据L层的初始卷积核获取等效卷积核时,由于采用的处理所导致的等效卷积核与初始卷积核之间的差量,可以通过第L+1层的等效卷积核与初始卷积核之间的差量补偿回来,保证了神经网络对输入数据的处理的准确度。
本实施例中,作为一种可能的实现方式,根据第L层的初始卷积核获取第L层的等效卷积核,可以包括如下步骤:将第L层的初始卷积核中的一个参数确定为第一初始参数,在第一初始参数不为零的情况下,将初始卷积核中的所有参数均除上第一初始参数,得到的商构成的卷积核即为等效卷积核。其中,若第一初始参数为0,则可以将初始卷积核直接作为等效卷积核。
这种实现方式中,第L层的初始卷积核中的第一初始参数除上第一初始参数得到的值为1,即等效卷积核中有一个参数的值为1,这个值为1的参数称为第一参数。
本实施例中,假设所述第L层的初始卷积核包括一个第一初始参数和M个第二初始参数,则相应地得到的所述第L层的等效卷积核包括M个第二参数和一个第一参数,且所述M个第二参数可以分别对应待处理的特征图的M个第二特征值,所述第一参数可以 对应所述待处理的特征图的第一特征值。
本实施例中,在一些实现方式中,基于第L层的初始卷积核的对应参数与第L层的初始卷积核中的第一初始参数的商获得第L层等效卷积核的参数时,可以包括以下步骤:当第L层的初始卷积核中的至少一个参数与初始卷积核中的第一初始参数的商大于第一阈值时,可以先将第L层的初始卷积核中所有的参数先缩小m倍,然后再缩小m倍后的参数除上第一初始参数,其中,第L层的初始卷积核中的任意参数缩小m倍后得到的参数与第一初始参数的商应不大于所述第一阈值。
该第一阈值可以是基于等效卷积核对特征图进行卷积处理时所使用的装置的最大可表达值。例如,基于等效卷积核对特征图进行卷积处理所使用的装置如图3中的神经网络处理器50所示时,第一阈值可以小于或等于其中的存储器以及运算单元的最大可表达值。这样可以避免数据溢出,从而提高神经网络进行业务处理的准确性。
在一些可能的实现方式中,基于第L层的初始卷积核的参数与第L层的初始卷积核中的第一初始参数的商获得第L层等效卷积核的参数时,可以包括如下步骤:当第L层的初始卷积核中的至少一个参数与所述第一初始参数的商小于第二阈值时,可以先将第L层的初始卷积核的所有参数扩大n倍,然后再将扩大得到的参数除上第一初始参数,从而得到等效卷积核,其中,第L层的初始卷积核的任意参数扩大n倍后得到的参数与第一初始参数的商应不小于所述第二阈值。
该第二阈值可以是基于等效卷积核对特征图进行卷积处理时所使用的装置的最小可表达值。例如,基于等效卷积核对特征图进行卷积处理所使用的装置如图3中的神经网络处理器50所示时,第二阈值可以大于或等于其中的存储器以及运算单元的最小可表达值。这样可以避免数值溢出,从而提高神经网络进行业务处理的准确性。
下面以第L层为深度可分离卷积层、第L层的初始卷积核为3*3的卷积核为例,介绍根据神经网络的第L层的初始卷积核获取第L层的等效卷积核的一种实现方式。
在该实现方式中,将第L层中3*3卷积核中的任意一个参数作为第一初始参数(或者可以称为公因子);当第一初始参数非0时,将卷积核的所有9个参数(即8个第二初始参数和1个第一初始参数)除以第一初始参数的绝对值,当第一初始参数为0时,所有参数不变,以保证得到的等效卷积核内有8个正常的第二参数和一个值为1、0或-1的第二参数。这样可以使得第L层的卷积运算由9个MAC操作变为8个MAC结果(即8个第二参数与8个第二特征值)与一个常数(即第一特征值)相加的计算。基于该实现方式,可以在现有能处理8个MAC的PE中添加一个加法器,就可以在每一个时钟基于一个3*3的卷积核进行处理,从而使得新PE在处理卷积处理时能够以100%效率工作,大幅提升硬件的性能。
如图6所示,初始卷积核中包括w0、w1、w2、w3、w4、w5、w6、w7和w8九个初始参数时,选取w4为第一初始参数;在w4大于0的情况下,将这九个初始参数均除上w4,从而得到等效卷积核,这种情况,w4称为公因子;在w4等于0的情况下,不对这九个初始参数进行额外处理,即等效卷积核与初始卷积核相同,这种情况下,公因子为0;在w4小于0的情况下,将这九个初始参数除上-w4,从而得到等效卷积核,这种情况下,-w4称为公因子。
其中,可选地,在w4小于0时,可以将这九个初始参数除上w4,而不是除上-w4。
根据初始卷积核得到的等效卷积核用于对第L层输入的特征值进行卷积处理,卷积结果作为第L+1层的输入。
下面介绍第L层的初始卷积核为图6中所示的卷积核,且第L+1层也为深度可分离卷积层时,根据神经网络的第L+1层的初始参数获取第L+1层的等效参数的实现方式。
第L+1层为深度可分离卷积层时,若第L层的初始卷积核的公因子为0,则可以不对第L+1层的初始卷积核进行额外处理,即第L+1层的初始卷积核为等效卷积核;否则,可以将第L+1层的初始卷积核乘上第L层的初始卷积核的公因子,并进行图6中的类似操作,第L+1层的所述初始卷积核为第L+1层中与第L层的所述初始卷积核对应的卷积核。第L+1层的初始卷积核与等效卷积核的一种示例如图7所示。
由图7可知,第L+1层的等效卷积核中的第二参数,等于第L+1层的初始卷积核中相对应的第二初始参数乘上第L层中的第一初始参数得到的积与第L+1层的初始卷积核中的第一初始参数的商。
下面介绍第L层的初始卷积核为深度可分离卷积核,且第L+1层为通常卷积层时,根据神经网络的第L+1层的初始参数获取第L+1层的等效参数的实现方式。
如图8所示,第L层有16个输入通道(input channel),这16个输入通道的编号为0至15,这16个输入通道与16个初始卷积核一一对应,这16个初始卷积核的公因子为w0至w15,则根据神经网络的第L+1层的初始参数获取第L+1层的等效参数时,可以将L+1层的输入通道中每一层卷积核乘上w0至w15中对应的公因子,从而得到第L+1层的等效参数。
下面介绍第L层的初始卷积核为深度可分离卷积核,且第L+1层为全连接层时,根据神经网络的第L+1层的初始参数获取第L+1层的等效参数的实现方式。
如图9所示,当L+1为全连接层时,首选明确第L+1层输出的特征图中的各个特征值在特征图换为1维向量之后的位置,基于特征图的1维向量与全连接层的参数等长且位置呈对应关系的特性,识别第L+1层的各个参数与第L层中的哪个初始卷积核对应,并将各个参数乘上对应初始卷积核的公因子,其中,公因子不为零。
本申请的数据处理方法中,可以对神经网络中的所有深度可分离卷积层执行图5中的全部或部分步骤,也可以仅对神经网络中的部分深度可分离卷积层执行图5中的全部或部分步骤。
下面以第一阈值为实现卷积处理的装置内置硬件数据格式的最大可表达值,即第L层的初始卷积核中的任意一个第二初始参数与第一初始参数的商超出最大可表达值域,且最大可表达值为2的16次幂为例,介绍如何对第L层的初始卷积核进行处理,以得到不超出可表达值域的等效卷积核。
如图10中左图所示,第L层的初始卷积核中的第一初始参数为0.001,而其中一个第二初始参数为64000时,若直接将64000除上0.001,则会出现商大于极大值的问题。此时,如图10中位于中间的图所示,可以将所有初始参数除上2的10次幂(或者说乘上2的负的10次幂),并除上0.001,才得到如图10中右图所示的等效卷积核。其中,2的-10次幂是2的幂中最接近且小于最小可表达值的数。
下面以第二阈值为实现卷积处理的装置内置硬件数据格式的最小可表达值,即第L层的初始卷积核中的任意一个第二初始参数与第一初始参数的商超出最小可表达值域,且最 小可表达值为2的-16次幂为例,介绍如何对第L层的初始卷积核进行处理,以得到不超出可表达值域的等效卷积核。
如图11中左图所示,第L层的初始卷积核中的第一初始参数为64000,而其中一个第二初始参数为0.001时,若直接将0.001除上64000,则会出现商小于极大值的问题。此时,如图11中位于中间的图所示,可以将所有初始参数乘上2的16次幂,并除上64000,才得到如图11中右图所示的等效卷积核。其中,2的16次幂是2的幂中最接近且大于最大可表达值的数。
下面介绍本申请提供的数据装置。本申请提供的数据处理装置可以用于根据二维卷积核对待卷积矩阵进行卷积处理,所述二维卷积核包括一个第一参数和M个第二参数,所述待卷积矩阵包括一个第一特征值和M个第二特征值,所述M个第二参数与所述M个第二特征值一一对应,所述第一参数对应所述第一特征值。
图12为本申请数据处理装置的一种示意性结构图。该数据处理装置包括:M个乘法器、M-1个第一加法器和一个第二加法器,这M个乘法器为Mul 0至Mul M,这M-1个第一加法器为ADD 0至ADD M-2,这个第二加法器为ADD M-1。M为偶数。
这M个乘法器和这M-1个第一加法器用于对所述M个第二参数和所述M个第二特征值进行乘累加运算,以得到乘累加结果。该第二加法器用于对所述乘累加结果和所述第一特征值进行加运算,以得到所述二维卷积核与所述待卷积矩阵的卷积结果。
该数据处理装置在根据大小为M+1的卷积核对大小为M+1的待卷积矩阵进行卷积处理时,通过M个乘法器和M-1个加法器来计算卷积核中的M个参数与待卷积矩阵中的M个特征值的卷积结果,并通过另一个加法器计算该卷积结果与待卷积矩阵中第M+1个特征值的和,最后将该和当作该卷积核对该待卷积矩阵的卷积结果。这使得当需要进行卷积计算的卷积核的大小比数据处理装置中的乘累加单元的数目多1时,可以不用使用多个包含M+1个乘法器和M个加法器的传统数据处理装置计算,从而可以避免资源的浪费,提高资源的利用率。
例如,图12所示的数据处理装置可以用于:基于S510中第L层的等效卷积核对输入第L层的待卷积特征值矩阵进行卷积处理。
图12所示的数据处理装置可以是图3中的神经网络处理器50中的运算电路503的组成部分。
在一些可能的实现方式中,所述第一参数等于1。也就是说,输入第二加法器的第一特征值所对应的第一参数为1。这样,可以保证该数据处理装置计算得到的卷积结果的准确性。
在一些可能的实现方式中,所述装置还包括处理器,所述处理器用于:根据初始卷积核确定所述二维卷积核,所述初始卷积核包括一个第一初始参数和M个第二初始参数,所述M个所述第二参数与所述M个第二初始参数一一对应,所述第一参数与所述第一初始参数对应,所述第二参数等于所述第二参数对应的第二初始参数与所述第一初始参数的商,所述第一初始参数不为零。或者说,该处理器可以用于执行S510。
该实现方式中的数据处理装置用于计算初始卷积核与待卷积矩阵的卷积结果时,可以先通过处理器将初始卷积核中的所有参数除上其中的一个非零参数(即第一初始参数),从而可以使得得到的二维卷积核中有一个参数(即第一参数)为1。这样,在使用上述M 各乘法器和M个加法器来计算该二维卷积核与待卷积矩阵的卷积结果时,能够得到更准确的值。
可选地,该处理器还可以用于:根据所述二位卷积核与所述待卷积矩阵的卷积结果确定所述初始卷积核与所述待卷积矩阵的卷积结果,其中,所述初始卷积核与所述待卷积矩阵的卷积结果等于所述二维卷积核与所述待卷积矩阵的卷积结果与所述第一初始参数的乘积。
在一些可能的实现方式中,当至少一个所述第二初始参数与所述第一初始参数的商大于第一阈值时,在所述根据初始卷积核确定所述二维卷积核之前,所述处理器还用于:对所述M个第二参数或所述M个第二初始参数缩小m倍,其中,任一缩小m倍的第二初始参数与所述第一初始参数的商不大于所述第一阈值。
该实现方式中的数据处理装置,在初始卷积核中的任意一个第二初始参数与所述第一初始参数的商大于第一阈值时,可以先将所有第二初始参数缩小m倍,以使得缩小后的任意第二初始参数与所述第一初始参数的商不大于所述第一阈值,从而可以使得将缩小后的第二初始参数除上第一初始参数得到的第二参数不大于所述第一阈值。其中,第一阈值可以小于或等于处理器的最大可表达值,或者说,第一阈值可以小于或等于该数据处理装置中的上述乘法器和加法器的最大可表达值。这样可以使得计算得到的卷积结果不会因为溢出数据处理装置的最大可表达值范围而产生计算结果不准确的问题。
其中,对所述第一特征值进行缩小m倍处理的操作,可以由所述处理器来执行,或者可以通过移位器来执行。例如,m为2的s次幂时,可以通过至少能够左移s位的移位器来将第一特征值缩小m倍,s为非负整数。这种场景下基于等效卷积核对特征图进行卷积处理的装置的一种示例性结构图如图13所示。
通过图13所述的装置进行卷积处理时,等效卷积核中的M个第二参数和特征图中的M个第二特征值可以输入到M个乘法器,特征图中的第一特征值可以输入到移位器进行移位。这M个第二参数与这M个第二特征值经过这M个乘法器和其中的M个加法器的乘累加处理得到的乘累加结果,与第一特征值经过移位器左移缩小m倍得到的特征值,输入到ADD M-1,ADD M-1输出的和即为等效卷积核与特征图的卷积结果。
这是因为在将第二初始参数或第二参数缩小m倍的情况下,第一参数相应地也应该缩小m倍,所以第一参数对第一特征值的处理结果也应该缩小m倍。本申请的数据处理装置直接将第一特征值缩小m倍,以保证卷积结果的准确性。
例如,基于图10的右图所示的等效卷积核对特征图进行卷积处理时,可以将特征图中的第一特征值输入移位器左移10位,得到的特征值再与乘累加结果相加,从而得到卷积结果。
在一些可能的实现方式中,当至少一个所述第二初始参数与所述第一初始参数的商小于第二阈值时,在所述根据初始卷积核确定所述二维卷积核之前,所述处理器还用于:对所述M个第二参数或所述M个第二初始参数扩大n倍,其中,任一扩大n倍的第二初始参数与所述第一初始参数的商不小于所述第二阈值。
该实现方式中的数据处理装置,在初始卷积核中的任意一个第二初始参数与所述第一初始参数的商小于第二阈值时,可以先将所有第二初始参数扩大m倍,以使得扩大后的任意第二初始参数与所述第一初始参数的商不小于所述第二阈值,从而可以使得将缩小后 的第二初始参数除上第一初始参数得到的第二参数不小于所述第二一阈值。其中,第二阈值可以大于或等于处理器的最小可表达值,或者说,第二阈值可以大于或等于该数据处理装置中的上述乘法器和加法器的最小可表达值。这样可以使得计算得到的卷积结果不会因为溢出数据处理装置的最小可表达值范围而产生计算结果不准确的问题。
其中,对所述第一特征值进行扩大n倍处理的操作,可以由执行卷积处理的神经网络处理器所挂靠的主CPU来执行,或者可以通过移位器来执行。例如,n为2的t次幂时,可以通过至少能够右移t位的移位器来将第一特征值扩大n倍,n为非负整数。这种场景下基于等效卷积核对特征图进行卷积处理的装置的一种示例性结构图如图13所示。
通过图13所述的装置进行卷积处理时,等效卷积核中的M个第二参数和特征图中的M个第二特征值可以输入到M个乘法器,特征图中的第一特征值可以输入到移位器进行移位。这M个第二参数与这M个第二特征值经过这M个乘法器和其中的M个加法器的乘累加处理得到的乘累加结果,与第一特征值经过移位器右移扩大n倍得到的特征值,输入到ADD M-1,ADD M-1输出的和即为等效卷积核与特征图的卷积结果。
这是因为在将第二初始参数或第二参数扩大m倍的情况下,第一参数相应地也应该扩大m倍,所以第一参数对第一特征值的处理结果也应该扩大m倍。本申请的数据处理装置直接将第一特征值扩大m倍,以保证卷积结果的准确性。
例如,基于图11的右图所示的等效卷积核对特征图进行卷积处理时,可以将特征图中的第一特征值输入移位器右移16位,得到的特征值再与乘累加结果相加,从而得到卷积结果。
在一些可能的实现方式中,所述处理器包括以下一项或者多项的组合:中央处理器(CPU)、图形处理器(GPU)或神经网络处理器(network process units,NPU)。
在一些可能的实现方式中,M等于8,所述二维卷积核为3*3矩阵。可选地,所述M个乘法器和所述M-1个第一加法器可以构成一个乘积累加器。
例如,如图14所示,该数据处理装置可以包括8个乘法器和8个加法器,其中的8个乘法器与7个加法器用于对8个卷积核参数与8个特征值的乘累加,另一个加法器用于对乘累加结果与另一个特征值进行相加,从而得到二位卷积核与待卷积特征值矩阵的卷积结果。
可以理解的是,该数据处理装置可以以处理8个乘累加的PE为基础,添加一个加法器,从而得到本申请中的数据处理装置。也就是说本申请的数据处理装置可以复用现有硬件逻辑,再添加加法器即能得到本申请的数据处理装置。
或者,图14中的8个乘法器和7个加法器可以由两个可以处理4个乘累加的PE组成而成。
或者,如图15所示,可以以处理16个乘累加的PE为基础,添加一个加法器,以得到两个图14所示的数据处理装置。其中,ADD 6的输出不再输出到ADD 14,而是输出到新加的ADD 15。
在一些可能的实现方式中,M等于24,所述二维卷积核为5*5矩阵。可选地,所述M个乘法器和所述M-1个第一加法器构成3个乘积累加器,其中,每个所述乘积累加器包括M/3个乘法器和M/3-1个第一加法器。
例如,可以以3个可以处理8个乘累加的PE为基础,添加三个加法器,以得到一个 本申请中可以基于5*5的二位卷积核对5*5的待卷积特征矩阵的数据处理装置。其中,这3个新加的加法器用于将所述3个PE的乘累加结果与待卷积特征矩阵中的第一特征值进行相加。
在一些实现方式中,图14所示的装置中,还可以包括移位器,该移位器的输出端口与ADD 7的一个输入端口相连;或者,图15所示的装置中,还可以包括两个移位器,其中一个移位器的输出端口与ADD 15的输入端口相连,另一个移位器的输出端口与ADD 14的输入端口相连。这种情况下,待卷积特征矩阵中的第一特征值先输入到移位器进行移位,移位得到的结果与乘累加结果输入到加法器相加,从而得到卷积结果。这种包含移位器的装置在根据初始卷积核经过扩大或缩小得到的等效卷积核进行卷积处理时使用。当然,根据初始卷积核没有经过扩大或缩小处理而得到的等效卷积核进行卷积处理时,也可以使用包含移位器的装置,只是这种情况下,移位器不需要对输入的第一特征值移位而已。
本实施例的一些可能的实现方式中,所述二维卷积核为一个N维卷积核的一个二维矩阵分量,N为大于2的整数。
下面以一个PE能够基于包含9个参数的卷积核对包含9个特征值的特征图进行卷积为例,结合图16和图17示例性介绍本申请提出的数据读取方法。例如,该PE为图14或图15所示的结构。进一步地,例如,该PE为基于能够处理8个乘累加的PE添加加法器、甚至还添加移位器得到。
如图16所示,左边实线方框表示特征图,左边实线方框中一个正方形虚线边框表示一个卷积窗口,卷积窗口向右移动,且移动步长为1,卷积窗口的大小由右边实线框表示的卷积核的大小决定,特征图中第一行特征值用A0至An表示,第二行特征值用于B0至Bn表示,依次类推;中间的一个实线方框表示一个PE;右边实线方框表示卷积核K,该卷积核的一种示例为前述等效卷积核,该卷积核的大小为3*3。图16中示例性给出16个PE,分别为PE0至PE15,例如,神经网络处理器中包括这样的16个PE。图16中,箭头表示数据流向。
其中,每个PE可以基于一个卷积核对一个卷积核窗口中的特征值进行卷积,则一个时钟周期内16个PE可以基于同一个卷积核对16个卷积核窗口中的特征值进行卷积。
如图17所示,在初始时钟时,与进行卷积处理的单元直接相连的直连缓存可以从下级缓存中读取3*(16+2)个数据,这3*(16+2)个数据分别为A0至A17、B0至B17和C0至C17,然后直连缓存可以将A0至A2、B0至B2、C0至C2传输给PE0,将A1至A3、B1至B3和C1至C3传输至PE1,依次类推,直到A15至A17、B15至B17和C15至C17输出到PE15。
在下一个时钟时,直连缓存从下级缓存中可以仅读取(16+2)个数据,这18个数据分别为D0至D17,然后将B0至B2、C0至C2、D0至D2传输给PE0,将B1至B3、C1至C3、D1至D3传输给PE1,依次类推,直到B15至B17、C15至C17、D15至D17传输给PE15。
这是因为两个时钟周期内,直连缓存需要向PE0至PE15传输的数据存在部分重合,因此直连缓存在后一个时钟周期可以复用其在前一个时钟周期从下级缓存读取的重复部分数据,而只需读取需更新的部分数据。这样可以节省传输资源,提高传输效率。
可以理解的是,图17中没有示出卷积核中的参数的传输。
若一个PE包括两个如图14或图15所示结构的装置,例如,该PE为基于能够处理16个乘累加的PE添加加法器、甚至还添加移位器得到,则直连缓存读取数据的方法与图17中所示的方法类似。不同之处在于,在初始时钟周期,直连缓存在特征图的水平纬度需要多读取16个卷积窗口中的数据,或者,在特征图的垂直纬度从图16的卷积窗口的下一行中多读取16个数据。也就是说,初始时钟周期中,直连缓存需要读取4*(16+2)个数据,在后续每个时钟周期可以只更新2*(16+2)个数据。
图18是本申请数据处理装置的一种示例性结构图。该装置1800包括处理模块1810、获取模块1820、扩大模块1830和确定模块1840。该装置1800可以实现前述图5所示的方法。
例如,处理模块1810可以用于执行S510,获取模块1820可以用于执行S520,扩大模块1830可以用于执行S530,确定模块1840可以用于执行S540。
在一些可能的实现方式中,装置1800可以是图3中的主CPU;在另一些可能的实现方式中,装置1800可以是图4中所示的训练设备220;在另一些可能的实现方式中,装置1800可以是图4中所述的客户设备240。
本申请还提供一种如图19所示的装置1900,装置1900包括处理器1902、通信接口1903和存储器1904。装置1900的一种示例为芯片。装置1900的另一种示例为计算设备。
处理器1902、存储器1904和通信接口1903之间可以通过总线通信。存储器1904中存储有可执行代码,处理器1902读取存储器1904中的可执行代码以执行对应的方法。存储器1904中还可以包括操作***等其他运行进程所需的软件模块。操作***可以为LINUX TM,UNIX TM,WINDOWS TM等。
例如,存储器1904中的可执行代码用于实现图5所示的方法,处理器1902读取存储器1804中的该可执行代码以执行图5所示的方法。
其中,处理器1902可以为中央处理器(central processing unit,CPU)或图形处理器(graphic processing unit,GPU)等。存储器1904可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM)。存储器1904还可以包括非易失性存储器(non-volatile memory,NVM),例如只读存储器(read-only memory,ROM),快闪存储器,硬盘驱动器(hard disk drive,HDD)或固态启动器(solid state disk,SSD)。
本申请还提供了一种如图20所示的数据处理设备2000,包括可编程器件2001和存储器2002,其中,存储器2002用于存储可编程器件2001运行所需的配置文件,可编程器件2001用于从存储器2002读取配置文件,执行,以实现对应的方法。
其中,可编程器件可以包括现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA)或复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD)。
以FPGA为例,领域技术人员可以理解,其基本工作原理是通过加载一个配置数据(例如,以配置文件形式存在)来改变FPGA内部的配置RAM的内容,从而改变FPGA内部各种逻辑资源的配置,以实现不同的电路功能,并且,配置数据可以多次加载,从而使得FPGA能够通过加载不同的配置数据来完成不同的功能,具有很好的灵活性。本实际应用中,常常需要更新FPGA的功能,此时,可以将新配置数据事先加载到FPGA配置存储器,然后让FPGA加载新配置数据来实现新配置数据所定义的功能,这个过程被称为FPGA的升级过程。同时,FPGA在出厂时,会自带有一个用于加载配置数据的配置加载电路,该 配置加载电路可用于在用户自定义的电路功能(即由配置数据定义的功能)失效后,仍然能够保证最基本的加载操作。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (28)

  1. 一种数据处理装置,其特征在于,所述数据处理装置用于根据二维卷积核对待卷积矩阵进行卷积处理,所述二维卷积核包括一个第一参数和M个第二参数,所述待卷积矩阵包括一个第一特征值和M个第二特征值,所述M个第二参数与所述M个第二特征值一一对应,所述第一参数对应所述第一特征值,所述数据处理装置包括:
    M个乘法器和M-1个第一加法器,用于对所述M个第二参数和所述M个第二特征值进行乘累加运算,以得到乘累加结果;
    第二加法器,用于对所述乘累加结果和所述第一特征值进行加运算,以得到所述二维卷积核与所述待卷积矩阵的卷积结果。
  2. 如权利要求1所述的装置,其特征在于,所述第一参数等于1。
  3. 如权利要求1或2所述的装置,其特征在于,所述装置还包括处理器,所述处理器用于:根据初始卷积核确定所述二维卷积核,所述初始卷积核包括一个第一初始参数和M个第二初始参数,所述M个所述第二参数与所述M个第二初始参数一一对应,所述第一参数与所述第一初始参数对应,所述第二参数等于所述第二参数对应的第二初始参数与所述第一初始参数的商,所述第一初始参数不为零。
  4. 如权利要求3所述的装置,其特征在于,当至少一个所述第二初始参数与所述第一初始参数的商大于第一阈值时,在所述根据初始卷积核确定所述二维卷积核之前,所述处理器还用于:
    对所述M个第二参数或所述M个第二初始参数缩小m倍,其中,任一缩小m倍的第二初始参数与所述第一初始参数的商不大于所述第一阈值。
  5. 如权利要求4所述的装置,其特征在于,在所述对所述乘累加结果和所述第一特征值进行加运算之前,所述处理器还用于:
    对所述第一特征值缩小m倍;
    对应的,所述第二加法器具体用于对所述乘累加结果和所述缩小后的第一特征值进行加运算。
  6. 如权利要求3所述的装置,其特征在于,当至少一个所述第二初始参数与所述第一初始参数的商小于第二阈值时,在所述根据初始卷积核确定所述二维卷积核之前,所述处理器还用于:
    对所述M个第二参数或所述M个第二初始参数扩大n倍,其中,任一扩大n倍的第二初始参数与所述第一初始参数的商不小于所述第二阈值。
  7. 如权利要求6所述的装置,其特征在于,在所述对所述乘累加结果和所述第一特征值进行加运算之前,所述处理器还用于:
    对所述第一特征值扩大n倍;
    对应的,所述第二加法器具体用于对所述乘累加结果和所述扩大后的第一特征值进行加运算。
  8. 如权利要求3至7中任一项所述的装置,其特征在于,所述处理器包括以下一项或者多项的组合:中央处理器(CPU)、图形处理器(GPU)或神经网络处理器(NPU)。
  9. 如权利要求1至8中任一项所述的装置,其特征在于,M等于8,所述二维卷积核为3*3矩阵。
  10. 如权利要求8所述的装置,其特征在于,所述M个乘法器和所述M-1个第一加法器构成一个乘积累加器。
  11. 如权利要求1至8中任一项所述的装置,其特征在于,M等于24,所述二维卷积核为5*5矩阵。
  12. 如权利要求11所述的装置,其特征在于,所述M个乘法器和所述M-1个第一加法器构成3个乘积累加器,其中,每个所述乘积累加器包括M/3个乘法器和M/3-1个第一加法器。
  13. 如权利要求1至12中任一项所述的装置,其特征在于,所述二维卷积核为一个N维卷积核的一个二维矩阵分量,N为大于2的整数。
  14. 一种数据处理方法,其特征在于,包括:
    根据神经网络第L层的初始卷积核得到第L层的等效卷积核,其中,所述第L层的等效卷积核的参数基于所述第L层的初始卷积核的对应参数与所述第L层的初始卷积核中的第一初始参数的商获得,所述第一初始参数的值为K,K为非零数,所述第L层的等效卷积核用于对所述第L层的特征图进行卷积处理;
    获取所述神经网络第L+1层中与所述第L层的初始卷积核具有映射关系的所述第L+1层的初始卷积核;
    将所述第L+1层的初始卷积核中的每个参数扩大K倍;
    根据所述扩大处理后的第L+1层的初始卷积核确定所述第L+1层的等效卷积核。
  15. 根据权利要求14所述的方法,其特征在于,所述第L层的等效卷积核包括M个第二参数和一个第一参数,所述M个第二参数分别对应所述特征图的M个第二特征值,所述第一参数对应所述特征图的第一特征值,所述第一参数为1;
    其中,所述对所述第L层的特征图进行卷积处理,包括:
    对所述M个第二参数和所述M个第二特征值进行乘累加运算,以得到乘累加结果;
    对所述乘累加结果和所述第一特征值进行加运算。
  16. 如权利要求14所述的方法,其特征在于,所述第L层等效卷积核的参数基于所述第L层的初始卷积核的对应参数与所述第L层的初始卷积核中的第一初始参数的商获得,包括:
    当至少一个所述第L层的初始卷积核的参数与所述第一初始参数的商大于第一阈值时,对所述第L层的初始卷积核的对应参数缩小m倍,其中,任一缩小m倍的所述第L层的初始卷积核的参数与所述第一初始参数的商不大于所述第一阈值。
  17. 如权利要求16所述的方法,其特征在于,所述对所述乘累加结果和所述第一特征值进行加运算,包括:
    对所述第一特征值缩小m倍;
    对所述乘累加结果和所述缩小后的第一特征值进行加运算。
  18. 如权利要求14所述的方法,其特征在于,所述第L层等效卷积核的参数基于所述第L层的初始卷积核的对应参数与所述第L层的初始卷积核中的第一初始参数的商获得,包括:
    当至少一个所述第L层的初始卷积核的参数与所述第一初始参数的商小于第二阈值时,对所述第L层的初始卷积核的对应参数扩大n倍,其中,任一扩大n倍的所述第L层的初始卷积核的参数与所述第一初始参数的商不小于所述第二阈值。
  19. 如权利要求18所述的方法,其特征在于,所述对所述乘累加结果和所述第一特征值进行加运算,包括:
    对所述第一特征值扩大n倍;
    对所述乘累加结果和所述扩大后的第一特征值进行加运算。
  20. 一种数据处理装置,其特征在于,包括:
    处理模块,用于根据神经网络第L层的初始卷积核得到第L层的等效卷积核,其中,所述第L层的等效卷积核的参数基于所述第L层的初始卷积核的对应参数与所述第L层的初始卷积核中的第一初始参数的商获得,所述第一初始参数的值为K,K为非零数,所述第L层的等效卷积核用于对所述第L层的特征图进行卷积处理;
    获取模块,用于获取所述神经网络第L+1层中与所述第L层的初始卷积核具有映射关系的所述第L+1层的初始卷积核;
    扩大模块,用于将所述第L+1层的初始卷积核中的每个参数扩大K倍;
    确定模块,用于根据所述扩大处理后的第L+1层的初始卷积核确定所述第L+1层的等效卷积核。
  21. 根据权利要求20所述的装置,其特征在于,所述第L层的等效卷积核包括M个第二参数和一个第一参数,所述M个第二参数分别对应所述特征图的M个第二特征值,所述第一参数对应所述特征图的第一特征值,所述第一参数为1;
    其中,所述对所述第L层的特征图进行卷积处理,包括:
    对所述M个第二参数和所述M个第二特征值进行乘累加运算,以得到乘累加结果;
    对所述乘累加结果和所述第一特征值进行加运算。
  22. 如权利要求20所述的装置,其特征在于,所述第L层等效卷积核的参数基于所述第L层的初始卷积核的对应参数与所述第L层的初始卷积核中的第一初始参数的商获得,包括:
    当至少一个所述第L层的初始卷积核的参数与所述第一初始参数的商大于第一阈值时,对所述第L层的初始卷积核的对应参数缩小m倍,其中,任一缩小m倍的所述第L层的初始卷积核的参数与所述第一初始参数的商不大于所述第一阈值。
  23. 如权利要求22所述的装置,其特征在于,所述对所述乘累加结果和所述第一特征值进行加运算,包括:
    对所述第一特征值缩小m倍;
    对所述乘累加结果和所述缩小后的第一特征值进行加运算。
  24. 如权利要求20所述的装置,其特征在于,所述第L层等效卷积核的参数基于所述第L层的初始卷积核的对应参数与所述第L层的初始卷积核中的第一初始参数的商获得,包括:
    当至少一个所述第L层的初始卷积核的参数与所述第一初始参数的商小于第二阈值时,对所述第L层的初始卷积核的对应参数扩大n倍,其中,任一扩大n倍的所述第L层的初始卷积核的参数与所述第一初始参数的商不小于所述第二阈值。
  25. 如权利要求24所述的装置,其特征在于,所述对所述乘累加结果和所述第一特征值进行加运算,包括:
    对所述第一特征值扩大n倍;
    对所述乘累加结果和所述扩大后的第一特征值进行加运算。
  26. 一种计算机可读存储介质,其特征在于,包括指令,当所述指令在处理器上运行时,所述处理器执行如权利要求14至19任一项所述的方法。
  27. 一种数据处理设备,其特征在于,包括可编程器件和存储器,所述存储器用于存储所述可编程器件运行所需的配置文件,所述可编程器件用于从所述存储器读取所述配置文件,执行如权利要求14至19任一所述的方法。
  28. 如权利要求27所述的设备,其特征在于,所述可编程器件包括现场可编程逻辑门阵列(FPGA)或复杂可编程逻辑器件(CPLD)。
PCT/CN2019/126179 2019-12-18 2019-12-18 数据处理装置和数据处理方法 WO2021120036A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201980102503.0A CN114730331A (zh) 2019-12-18 2019-12-18 数据处理装置和数据处理方法
PCT/CN2019/126179 WO2021120036A1 (zh) 2019-12-18 2019-12-18 数据处理装置和数据处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/126179 WO2021120036A1 (zh) 2019-12-18 2019-12-18 数据处理装置和数据处理方法

Publications (1)

Publication Number Publication Date
WO2021120036A1 true WO2021120036A1 (zh) 2021-06-24

Family

ID=76476963

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/126179 WO2021120036A1 (zh) 2019-12-18 2019-12-18 数据处理装置和数据处理方法

Country Status (2)

Country Link
CN (1) CN114730331A (zh)
WO (1) WO2021120036A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115278360B (zh) * 2022-07-18 2023-11-07 天翼云科技有限公司 一种视频数据处理方法及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105654729A (zh) * 2016-03-28 2016-06-08 南京邮电大学 一种基于卷积神经网络的短时交通流量预测方法
US20180130186A1 (en) * 2015-07-14 2018-05-10 Apical Limited Hybrid machine learning systems
CN109313663A (zh) * 2018-01-15 2019-02-05 深圳鲲云信息科技有限公司 人工智能计算辅助处理装置、方法、存储介质、及终端
CN109886391A (zh) * 2019-01-30 2019-06-14 东南大学 一种基于空间正反对角卷积的神经网络压缩方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180130186A1 (en) * 2015-07-14 2018-05-10 Apical Limited Hybrid machine learning systems
CN105654729A (zh) * 2016-03-28 2016-06-08 南京邮电大学 一种基于卷积神经网络的短时交通流量预测方法
CN109313663A (zh) * 2018-01-15 2019-02-05 深圳鲲云信息科技有限公司 人工智能计算辅助处理装置、方法、存储介质、及终端
CN109886391A (zh) * 2019-01-30 2019-06-14 东南大学 一种基于空间正反对角卷积的神经网络压缩方法

Also Published As

Publication number Publication date
CN114730331A (zh) 2022-07-08

Similar Documents

Publication Publication Date Title
WO2020073211A1 (zh) 运算加速器、处理方法及相关设备
JP6857286B2 (ja) ニューラルネットワークアレイの性能の改善
WO2020221200A1 (zh) 神经网络的构建方法、图像处理方法及装置
US20180260710A1 (en) Calculating device and method for a sparsely connected artificial neural network
US11775430B1 (en) Memory access for multiple circuit components
CN112163601B (zh) 图像分类方法、***、计算机设备及存储介质
EP4080416A1 (en) Adaptive search method and apparatus for neural network
WO2022001805A1 (zh) 一种神经网络蒸馏方法及装置
WO2022067508A1 (zh) 一种神经网络加速器、加速方法以及装置
WO2023231794A1 (zh) 一种神经网络参数量化方法和装置
CN113449859A (zh) 一种数据处理方法及其装置
WO2023010244A1 (zh) 神经网络加速器及神经网络加速器的数据处理方法
EP4235506A1 (en) Neural network model training method, image processing method, and apparatus
CN112789627B (zh) 一种神经网络处理器、数据处理方法及相关设备
Que et al. Mapping large LSTMs to FPGAs with weight reuse
KR20190098671A (ko) 뉴럴 네트워크의 고속 처리 방법 및 그 방법을 이용한 장치
WO2022156475A1 (zh) 神经网络模型的训练方法、数据处理方法及装置
US20240135174A1 (en) Data processing method, and neural network model training method and apparatus
CN111931901A (zh) 一种神经网络构建方法以及装置
US20230143985A1 (en) Data feature extraction method and related apparatus
TW202138999A (zh) 用於卷積運算的資料劃分方法及處理器
WO2022227024A1 (zh) 神经网络模型的运算方法、训练方法及装置
WO2021120036A1 (zh) 数据处理装置和数据处理方法
WO2023197857A1 (zh) 一种模型切分方法及其相关设备
CN115668222A (zh) 一种神经网络的数据处理方法及装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19956381

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19956381

Country of ref document: EP

Kind code of ref document: A1