CN108334946B - 深度神经网络模型的处理方法、装置和设备 - Google Patents
深度神经网络模型的处理方法、装置和设备 Download PDFInfo
- Publication number
- CN108334946B CN108334946B CN201810150453.0A CN201810150453A CN108334946B CN 108334946 B CN108334946 B CN 108334946B CN 201810150453 A CN201810150453 A CN 201810150453A CN 108334946 B CN108334946 B CN 108334946B
- Authority
- CN
- China
- Prior art keywords
- layer
- neural network
- calculation
- computing
- target
- 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
- 238000003062 neural network model Methods 0.000 title claims abstract description 22
- 238000003672 processing method Methods 0.000 title claims abstract description 10
- 238000004364 calculation method Methods 0.000 claims abstract description 147
- 238000013528 artificial neural network Methods 0.000 claims abstract description 139
- 238000012545 processing Methods 0.000 claims abstract description 86
- 238000000034 method Methods 0.000 claims abstract description 43
- 230000015654 memory Effects 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 9
- 230000008569 process Effects 0.000 abstract description 16
- 238000010586 diagram Methods 0.000 description 11
- 230000004807 localization Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30018—Bit or string instructions
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computational Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Neurology (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Pure & Applied Mathematics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Image Analysis (AREA)
Abstract
本发明提供了一种深度神经网络模型的处理方法、装置和设备,包括:获取神经网络的第一目标计算层的多个输入数据;第一目标计算层为深度神经网络所包含的依次连接的多个计算层中除前两个计算层之外的其他计算层,多个输入数据为深度神经网络中位于第一目标计算层之前且与第一目标计算层相连接的多个计算层的计算结果,输入数据的位宽不超过预设位宽;通过位操作对多个输入数据进行位运算,得到位运算结果,并将位运算结果作为第一目标计算层的输入数据进行处理。本发明缓解了现有的神经网络在对多个输入进行加法或者乘法等运算时,由于运算过程相对较为复杂导致神经网络的计算效率较低的技术问题。
Description
技术领域
本发明涉及人工智能技术领域,尤其是涉及一种深度神经网络模型的处理方法、装置和设备。
背景技术
随着人工智能技术的快速发展,神经网络在图像、语音以及文字等具有海量数据的领域已经有了广泛而成功的应用。如图1所示,传统的神经网络是由多组卷积层和非线性单元层逐层叠加而成的,例如,图1所示的神经网络包括三个处理层,分别是卷积1和非线性处理层1,以及卷积2和非线性处理层2,以及卷积3和非线性处理层3。图1中非线性处理层对卷积层的处理结果进行非线性化。在低位宽神经网络中,非线性处理层一般采用的是离散定点化层,低位宽神经网络的每一层的输出会被离散定点化为数种固定的取值之一,而不再是浮点数。在通过该神经网络进行相关运算时,例如,加法运算和/或乘运算时,都会用到相应的加法器或者乘法器来进行计算。但是,通过加法器或者乘法器来进行相应的计算时,会影响神经网络的计算效率,从而影响低位宽神经网络的性能。
发明内容
有鉴于此,本发明的目的在于提供一种深度神经网络模型的处理方法、装置和设备,以缓解了现有的神经网络在对多个输入进行加法或者乘法等运算时,由于运算过程相对较为复杂导致神经网络的计算效率较低的技术问题。
第一方面,本发明实施例提供了一种深度神经网络,包括:多个依次连接的计算层,每个所述计算层包括卷积层和非线性处理层,且多个所述计算层中第一计算层和第二计算层之间通过短路边相连接,所述第一计算层为所述多个依次连接的计算层中除前两个计算层之外的其他计算层,所述第二计算层为所述第一计算层之前与所述第一计算层通过短路边相连接的计算层;在所述第一计算层的起始位置处,还包括位操作处理层;所述位操作处理层用于对所述第二计算层的输出数据和所述第一计算层的前一个计算层的输出数据进行位运算。
进一步地,所述非线性处理层为离散定点化处理层,其中,所述位操作处理层用于对所述第二计算层中离散定点化处理层的输出数据和所述第一计算层的前一个计算层中离散定点化处理层的输出数据进行位运算。
第二方面,本发明实施例提供了一种深度神经网络的处理方法,包括:获取神经网络中第一目标计算层的多个输入数据;其中,所述第一目标计算层为上述所述的深度神经网络所包含的依次连接的多个计算层中除前两个计算层之外的其他计算层,所述多个输入数据为所述深度神经网络中位于所述第一目标计算层之前且与所述第一目标计算层相连接的多个计算层的计算结果,所述输入数据的位宽不超过预设位宽;通过位操作对所述多个输入数据进行位运算,得到位运算结果,并将所述位运算结果作为所述第一目标计算层的输入数据进行处理。
进一步地,获取神经网络的第一目标计算层的多个输入数据包括:确定多个第二目标计算层,其中,所述第二目标计算层为所述第一目标计算层的前一个计算层和通过短路边与所述第一目标计算层相连接的计算层;确定所述多个第二目标计算层的计算结果为所述第一目标计算层的所述多个输入数据。
进一步地,确定多个第二目标计算层包括:当所述深度神经网络中包含依次连接的多个计算层的数量为2N时,确定所述神经网络中第i-2n-1个计算层为所述第一目标计算层Ai的多个第二目标计算层,其中,第i-1个计算层为所述第一目标计算层Ai的前一个计算层,剩余计算层为通过短路边与所述第一目标计算层相连接的计算层,i-2n-1和n均为正整数,且n依次取1至N。
进一步地,所述计算结果为离散定点化处理之后的计算结果,通过位操作对所述多个输入数据进行位运算,得到位运算结果包括:通过所述位操作对所述离散定点化处理之后的计算结果进行位运算,得到所述位运算结果。
进一步地,当在处理器中对所述深度神经网络的第一目标计算层进行数据计算时,所述方法还包括:在所述处理器所对应的集成电路中,按照所述第一目标计算层的计算逻辑为所述第一目标计算层分配逻辑计算电路,以使所述逻辑计算电路对所述多个输入数据进行相应的位运算。
进一步地,所述方法还包括:获取原始深度神经网络;在所述原始深度神经网络中计算层的数量为2N时,在第i个计算层和第i-2k-1个计算层之间依次构建短路边,其中,i为大于2的正整数,i-2k-1和n均为正整数,且k依次取2至N;在所述第i个计算层的卷积层之前,构建位操作处理层,并将构建之后的原始深度神经网络作为所述深度神经网络。
第三方面,本发明实施例提供了一种深度神经网络的处理装置,包括:获取单元,用于获取神经网络中第一目标计算层的多个输入数据,其中,所述第一目标计算层为上述所述的深度神经网络所包含的依次连接的多个计算层中除前两个计算层之外的其他计算层,所述多个输入数据为所述深度神经网络中位于所述第一目标计算层之前且与所述第一目标计算层相连接的多个计算层的计算结果,所述输入数据的位宽不超过预设位宽;位运算单元,用于通过位操作对所述多个输入数据进行位运算,得到位运算结果,并将所述位运算结果作为所述第一目标计算层的输入数据进行处理。
第四方面,本发明实施例提供了一种深度神经网络的处理设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述所述的方法的步骤。
第五方面,本发明实施例提供了一种具有处理器可执行的非易失的程序代码的计算机可读介质,所述程序代码使所述处理器执行上述所述的方法的步骤。
在本发明实施例中,当第一目标计算层的输入数据为多个时,通过位操作来代替传统的加法运算或者乘法运算来对多个输入数据进行位运算的方式,能够简化运算过程,提高神经网络的运算效率,进而缓解了现有的神经网络在对多个输入进行加法或者乘法等运算时,由于运算过程相对较为复杂导致神经网络的计算效率较低的技术问题。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术的一种深度神经网络的结构示意图;
图2是根据本发明实施例的一种电子设备的结构示意图;
图3是根据本发明实施例的一种基于短路边的深度神经网络的结构示意图;
图4是根据本发明实施例的一种可选的深度神经网络的结构示意图;
图5是根据本发明实施例的另一种可选的深度神经网络的结构示意图;
图6是根据本发明实施例的一种深度神经网络的处理方法的流程图;
图7是根据本发明实施例的一种深度神经网络的处理装置的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
首先,参照图2来描述用于实现本发明实施例的电子设备100,该电子设备可以用于运行本发明各实施例的神经网络。
如图2所示,电子设备100包括一个或多个处理器102、一个或多个存储器104、输入装置106、输出装置108以及数据采集器110,这些组件通过总线系统112和/或其它形式的连接机构(未示出)互连。应当注意,图2所示的电子设备100的组件和结构只是示例性的,而非限制性的,根据需要,所述电子设备也可以具有其他组件和结构。
所述处理器102可以采用数字信号处理器(DSP)、现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)和ASIC(Application Specific Integrated Circuit)中的至少一种硬件形式来实现,所述处理器102可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元,并且可以控制所述电子设备100中的其它组件以执行期望的功能。
所述存储器104可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器102可以运行所述程序指令,以实现下文所述的本发明实施例中(由处理器实现)的客户端功能以及/或者其它期望的功能。在所述计算机可读存储介质中还可以存储各种应用程序和各种数据,例如所述应用程序使用和/或产生的各种数据等。
所述输入装置106可以是用户用来输入指令的装置,并且可以包括键盘、鼠标、麦克风和触摸屏等中的一个或多个。
所述输出装置108可以向外部(例如,用户)输出各种信息(例如,图像或声音),并且可以包括显示器、扬声器等中的一个或多个。
所述数据采集器110用于进行数据采集,其中,数据采集器所采集的数据用于输入至所述神经网络中进行运算,例如,数据采集器可以拍摄用户期望的图像(例如照片、视频等),然后,将该图像输入至所述神经网络中进行运算,数据采集器还可以将所拍摄的图像存储在所述存储器104中以供其它组件使用。
示例性地,用于实现根据本发明实施例的深度神经网络的处理方法的电子设备可以被实现为诸如摄像机、抓拍机、智能手机、平板电脑等智能终端。
在本发明实施例中所提出的深度神经网络是一种基于短路边和位操作的神经网络,首先将分别介绍短路边和位操作。
短路边是一种跨越多于一层的网络连接。如图1所示的是传统的深度神经网络的结构示意图,在结构示意图在背景技术中进行了描述,此处不再赘述。在传统的神经网络中,可以采用短路边的结构来提升传统深度神经网络的性能。在传统神经网络里加入的绕开了一层或多层的连接关系可称作短路边。当某个计算层通过短路边与一个或者多个位于其之前的计算层相连接时,那么该计算层将一个或者多个计算层的输出数据和其他计算层(例如,该计算层的前一个计算层)的输出数据进行相加运算,并将相加运算作为该计算层的输入数据。如图3所示,虚线部分(即,非线性处理层1和相加处理模块)之间的虚线即为短路边。
位操作是对位模式按位或二进制数的一元和二元操作。对于两个或多个长度相同的二进制数,它们之间的位运算是指把这两个数的对应位用同一个函数映射到一个新数的对应位上。比如,按位AND(与)操作是指输出的某一位为1当且仅当两个输入的对应位同时为1的操作,例如,0111和1110进行按位AND(与)操作的结果是0110。二元位操作一共只有16种,常用有按位AND(与)操作,按位OR(或)操作,按位XOR(异或)操作,按位NAND(与非)操作,按位NOR(或非)操作,多元位操作则有更多种,此处不再赘述。
如图3所示的短路边的实现方式是将第一个计算层的输出数据和第二个计算层的输出数据直接相加。但是,在低位宽神经网络里,输出数据的直接相加会改变输出的位宽,从而给低位宽神经网络带来麻烦。
例如,如图3所示,在通过该加法器对该第一个计算层的输出数据和第二个计算层输出数据进行相加处理时,需要考虑计算过程中的进位数据,当待处理的数据的位宽较大时,将影响低位宽神经网络的运算效率,给低位宽神经网络带来麻烦,从而降低了低位宽神经网络的性能。基于此,在本发明实施例提出一种深度神经网络,该深度神经网络是一种基于短路边和位操作的低位宽神经网络。在该深度神经网络中,可以将加法处理替换为位操作,在通过位操作对第一个计算层的输出数据和第二个计算层输出数据进行位运算时,无需考虑进位,就能够得到第一个计算层的输出数据和第二个计算层输出数据的相加计算结果。
需要说明的是,在本发明实施例中,可以定义低于16位宽的数据为低位宽数据,定义高于或者等于16位宽的数据为高位宽数据。需要说明的是,还可以根据实际需要设定高位宽数据和低位宽数据的分界值,此处不做具体限定。例如,还可以定义低于32位宽的数据为低位宽数据,定义高于或者等于32位宽的数据为高位宽数据,本发明对此不作具体限定。在本发明以下实施例中,以低位宽数据为低于16位宽的数据,高位宽数据为高于或者等于16位宽的数据为例进行说明。
根据本发明实施例,提供了一种深度神经网络的结构的实施例。
在本发明实施例中,该深度神经网络,包括:多个依次连接的计算层,每个所述计算层包括卷积层和非线性处理层,且多个所述计算层中第一计算层和第二计算层之间通过短路边相连接,所述第一计算层为所述多个依次连接的计算层中除前两个计算层之外的其他计算层,所述第二计算层为所述第一计算层之前与所述第一计算层通过短路边相连接的计算层;
在所述第一计算层的起始位置处,还包括位操作处理层;所述位操作处理层用于对所述第二计算层的输出数据和所述第一计算层的前一个计算层的输出数据进行位运算。
可选地,上述所述非线性处理层为离散定点化处理层,其中,所述位操作处理层用于对所述第二计算层中离散定点化处理层的输出数据和所述第一计算层的前一个计算层中离散定点化处理层的输出数据进行位运算。
需要说明的是,在本发明实施例中所采用的深度神经网络为低位宽的神经网络,因此,可以采用离散定点化处理层作为非线性处理层,其中,低位宽的神经网络是指其所处理的数据为低位宽数据。
如图4所示的即为一种可选的深度神经网络的结构示意图。在一个具体的实施例中,如图4所示,包括4个依次连接的计算层,其中,第一个计算层中包括卷积层1和离散定点化处理层1,第二个计算层中包括卷积层2和离散定点化处理层2,第三个计算层中包括卷积层3和离散定点化处理层3,第四个计算层中包括卷积层4和离散定点化处理层4。
如图4所示,第一个计算层(即为上述第二计算层)的输入与第三个计算层(即为上述第一计算层)通过短路边相连接;第二计算层(即为上述第二计算层)和第四个计算层(即为上述第一计算层)通过短路边相连接。
进一步地,从图4中还可以看出,在第三个计算层(即,上述第一计算层)的起始位置处,还包括位操作处理层,该位操作处理层用于对第一个计算层(即,上述第二计算层)的输出数据和第二个计算层(即,上述前一个计算层)的输出数据进行位运算。
进一步地,从图4中还可以看出,在第四个计算层(即,上述第一计算层)的起始位置处,还包括位操作处理层,该位操作处理层用于对第二个计算层(即,上述第二计算层)的输出数据和第三个计算层(即,上述前一个计算层)的输出数据进行位运算。
需要说明的是,在本发明实施例中,如图4所示的结构图是深度神经网络一个可选的连接方式。在本发明实施例中,并不限定深度神经网络中计算层之间的短路边连接方式,相关技术人员可以根据实际需要来进行设定。
优选地,当所述深度神经网络中包含依次连接的多个计算层的数量为2N时,确定所述深度神经网络中第i-2n-1个计算层为与第i个计算层相连接的计算层,i依次取3至2N。
例如,当N为2时(即,如图4所示的网络结构)多个计算层的数量为4。此时,与第三个计算层相连接的计算层分别为:3-21-1=2,3-22-1=1,也就是说,与第三个计算层相连接的计算层分别是第一个计算层和第二个计算层,其中,第二个计算层为第三个计算层的上一个计算层,第一个计算层为通过短路边与第三个计算层相连接的计算层。
又例如,当N为3时,深度神经网络中包含依次连接的多个计算层的数量为8,此时,与第六个计算层相连接的计算层分别为:6-21-1=5,6-22-1=4,6-23-1=2。也就是说,与第六个计算层相连接的计算层分别是第五个计算层,第四个计算层和第二个计算层,其中,第五个计算层为第六个计算层的上一个计算层,第四个计算层和第二个计算层为通过短路边与第六个计算层相连接的计算层。
如图5所示的即为另一种可选的深度神经网络的结构示意图。在本发明实施例中,如果深度神经网络中包括的深度神经网络单元(也可简称深度神经网络)的数量为多个,例如,如图5所示,包括深度神经网络1,深度神经网络2,深度神经网络3,…,深度神经网络r时,深度神经网络1,深度神经网络2,深度神经网络3,…,深度神经网络r中的部分或者全部网络可以采用如图5中右侧虚线框所示的连接结构。当部分网络可以采用如图5中右侧虚线框所示的连接结构时,具体哪个神经网络采用如图5中右侧虚线框所示的连接结构可以根据实际需要来进行设定,对此不作具体限定。
根据本发明又一实施例中,还提供了一种深度神经网络的处理方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图6是根据本发明实施例的一种深度神经网络的处理方法的流程图,如图6所示,该方法包括如下步骤:
步骤S602,获取神经网络中第一目标计算层的多个输入数据;其中,所述第一目标计算层为深度神经网络所包含的依次连接的多个计算层中除前两个计算层之外的其他计算层,所述多个输入数据为所述深度神经网络中位于所述第一目标计算层之前且与所述第一目标计算层相连接的多个计算层的计算结果,所述输入数据的位宽不超过预设位宽;
在本发明实施例中,该深度神经网络为低位宽神经网络,该低位宽神经网络的数据位宽不超过预设位宽,例如,低于16位宽。此时,在对多个输入数据进行加法计算时,会改变输出数据的位宽,例如,增大输出数据的位宽,从而给低位宽神经网络带来麻烦。基于此,在本发明实施例中,通过位操作来对多个输入数据进行加法计算,从而简化多个输入数据的计算过程。
步骤S604,通过位操作对所述多个输入数据进行位运算,得到位运算结果,并将所述位运算结果作为所述第一目标计算层的输入数据进行处理。
可选地,如图4和图5所示的深度神经网络中,每个计算层的计算结果均为离散定点化处理层处理之后的计算结果,基于此,通过位操作对所述多个输入数据进行位运算,得到位运算结果包括:通过所述位操作对所述离散定点化处理层处理之后的计算结果进行位运算,得到所述位运算结果。
在本发明实施例中,当第一目标计算层的输入数据为多个时,通过位操作来代替传统的加法运算或者乘法运算来对多个输入数据进行位运算的方式,能够简化运算过程,提高神经网络的运算效率,进而缓解了现有的神经网络在对多个输入进行加法或者乘法等运算时,由于运算过程相对较为复杂导致神经网络的计算效率较低的技术问题。
在一个实施例中,获取神经网络的第一目标计算层的多个输入数据包括如下步骤:
步骤S6021,确定多个第二目标计算层,其中,所述第二目标计算层为所述第一目标计算层的前一个计算层和通过短路边与所述第一目标计算层相连接的计算层;
步骤S6022,确定所述多个第二目标计算层的计算结果为所述第一目标计算层的所述多个输入数据。
在本发明实施例中,在第一目标计算层进行数据计算时,首先确定与第一目标计算层相连接的多个第二目标计算层。然后,获取多个第二目标计算层的计算结果,最后,将多个第二目标计算层的计算结果作为多个输入数据。
例如,如图4所示,假设,图4中第三个计算层为第一目标计算层,此时,通过步骤S6021可以确定出第三个计算层的第二目标计算层为第一个计算层和第二个计算层。其中,第一个计算层与第三个计算层通过短路边相连接,第二个计算层为第三个计算层的前一个计算层。此时,通过步骤S6022就能够确定出第一个计算层和第二个计算层的输出数据即为第三个计算层的输入数据。
在获得第一个计算层和第二个计算层的输出数据之后,如果需要对第一个计算层和第二个计算层的输出数据进行加法操作,则可以通过相应的位操作来对第一个计算层和第二个计算层的输出数据进行相加。
在一个实施例中,确定多个第二目标计算层包括如下步骤:
当所述深度神经网络中包含依次连接的多个计算层的数量为2N时,确定所述神经网络中第i-2n-1个计算层为所述第一目标计算层Ai的多个第二目标计算层,其中,第i-1个计算层为所述第一目标计算层Ai的前一个计算层,剩余计算层为通过短路边与所述第一目标计算层相连接的计算层,i-2n-1和n均为正整数,且n依次取1至N。
例如,当N为2时(即,如图4所示的网络结构)多个计算层的数量为4。此时,与第三个计算层(即,第一目标计算层A3)相连接的计算层分别为:3-21-1=2,3-22-1=1,也就是说,与第三个计算层(即,第一目标计算层A3)相连接的计算层分别是第一个计算层和第二个计算层,其中,第一个计算层和第二个计算层即为第一目标计算层A3的多个第二目标计算层,第二个计算层为第三个计算层的上一个计算层,第一个计算层为通过短路边与第三个计算层相连接的计算层。
当N为3时,深度神经网络中包含依次连接的多个计算层的数量为8,此时,与第六个计算层(即,第一目标计算层A6)相连接的计算层分别为:6-21-1=5,6-22-1=4,6-23-1=2,其中,i等于6。也就是说,与第六个计算层(即,第一目标计算层A6)相连接的计算层分别是第五个计算层,第四个计算层和第二个计算层,其中,第五个计算层,第四个计算层和第二个计算层即为第一目标计算层A6的多个第二目标计算层,第五个计算层为第六个计算层的上一个计算层,第四个计算层和第二个计算层为通过短路边与第六个计算层相连接的计算层。
也就是说,当个计算层的数量为2N时,与每个第一目标计算层相连接的计算层为从第一目标计算层开始,往前数1(21-1,N=1)层,往前数2(22-1,N=2)层,往前数4(23-1,N=3)层,…,往前数2N-1层之后得到的计算层为第一目标计算层的多个第二目标计算层。
在本发明实施例中,当在FPGA(Field-Programmable Gate Array),DSP(DigitalSignal Processing),ARM(Advanced RISC Machine),ASIC(Application SpecificIntegrated Circuit)等硬件上实现神经网络的算法时,可以在处理器所对应的集成电路中,按照所述第一目标计算层的计算逻辑为所述第一目标计算层分配逻辑计算电路,以使所述逻辑计算电路对所述多个输入数据进行相应的位运算。
具体地,如果处理器为FPGA,则可以在FPGA上为该第一目标计算层分配相应的逻辑计算电路,以使该逻辑计算电路对多个输入数据进行相应的位运算。例如,当第一目标计算层中位操作处理层为加法操作时,则在该FPGA上为第一目标计算层中位操作处理层分配相应的异或逻辑电路,以通过该异或逻辑电路对第一目标计算层的输入数据进行异或操作,从而得到第一目标计算层的多个输入数据的相加结果。
在一个可选的实施例中,所述方法还包括如下步骤:
首先,获取原始深度神经网络;
然后,在所述原始深度神经网络中计算层的数量为2N时,在第i个计算层和第i-2k -1个计算层之间依次构建短路边,其中,i为大于2的正整数,i-2k-1和n均为正整数,且k依次取2至N;
最后,在所述第i个计算层的卷积层之前,构建位操作处理层,并将构建之后的原始深度神经网络作为所述深度神经网络。
在本发明实施例中,在步骤S602之前,还可以构建一个基于短路边和位操作的深度神经网络。具体地,可以首先获取一个原始深度神经网络,例如,如图1所示的神经网络。
可选地,在原始深度神经网络中计算层的数量为2N的情况下,则在第i个计算层和第i-2k-1个计算层之间依次构建短路边。
例如,当N=2时,如果i等于3时,由于第3个计算层与第2个计算层已经连接了,此时,只需要将第3个计算层与3-22-1=1,即第1个计算层之间构建短路边。并在第3个计算层的卷积层之前,构建位操作处理层。此时,该位操作处理层就能够将第2个计算层的输出数据和第1个计算层的输出数据进行位运算。
例如,当N=3时,如果i等于6时,由于第6个计算层与第5个计算层已经连接了,此时,只需要将第6个计算层与6-22-1=4,即第4个计算层,以及6-23-1=2,即第2个计算层之间构建短路边。并在第6个计算层的卷积层之前,构建位操作处理层。此时,该位操作处理层就能够将第5个计算层的输出数据、第4个计算层的输出数据和第2个计算层的输出数据进行位运算。
可选地,在原始深度神经网络中计算层的数量不是2N的情况下,则相关技术人员可以根据实际需要来通过短路边构建第i个计算层与其他计算层之间的连接。其中,其他计算层可以根据实际需要来进行选取。
在本发明实施例中,当第一目标计算层的输入数据为多个时,通过位操作来代替传统的加法运算或者乘法运算来对多个输入数据进行位运算的方式,能够简化运算过程,提高神经网络的运算效率,进而缓解了现有的神经网络在对多个输入进行加法或者乘法等运算时,由于运算过程相对较为复杂导致神经网络的计算效率较低的技术问题。
本发明实施例还提供了一种深度神经网络的处理装置,该深度神经网络的处理装置主要用于执行本发明实施例上述内容所提供的深度神经网络的处理方法,以下对本发明实施例提供的深度神经网络的处理装置做具体介绍。
图7是根据本发明实施例的一种深度神经网络的处理装置的示意图,如图7所示,该深度神经网络的处理装置主要包括获取单元10和位运算单元20,其中:
获取单元10,用于获取神经网络中第一目标计算层的多个输入数据,其中,所述第一目标计算层为上述深度神经网络所包含的依次连接的多个计算层中除前两个计算层之外的其他计算层,所述多个输入数据为所述深度神经网络中位于所述第一目标计算层之前且与所述第一目标计算层相连接的多个计算层的计算结果,所述输入数据的位宽不超过预设位宽;
位运算单元20,用于通过位操作对所述多个输入数据进行位运算,得到位运算结果,并将所述位运算结果作为所述第一目标计算层的输入数据进行处理。
在本发明实施例中,当第一目标计算层的输入数据为多个时,通过位操作来代替传统的加法运算或者乘法运算来对多个输入数据进行位运算的方式,能够简化运算过程,提高神经网络的运算效率,进而缓解了现有的神经网络在对多个输入进行加法或者乘法等运算时,由于运算过程相对较为复杂导致神经网络的计算效率较低的技术问题。
可选地,获取单元10用于:确定多个第二目标计算层,其中,所述第二目标计算层为所述第一目标计算层的前一个计算层和通过短路边与所述第一目标计算层相连接的计算层;确定所述多个第二目标计算层的计算结果为所述第一目标计算层的所述多个输入数据。
可选地,获取单元10还用于:当所述深度神经网络中包含依次连接的多个计算层的数量为2N时,确定所述神经网络中第i-2n-1个计算层为所述第一目标计算层Ai的多个第二目标计算层,其中,第i-1个计算层为所述第一目标计算层Ai的前一个计算层,剩余计算层为通过短路边与所述第一目标计算层相连接的计算层,i-2n-1和n均为正整数,且n依次取1至N。
可选地,位运算单元20用于:通过所述位操作对所述离散定点化处理之后的计算结果进行位运算,得到所述位运算结果。
可选地,该装置还用于:当在处理器中对所述深度神经网络的第一目标计算层进行数据计算时,在所述处理器所对应的集成电路中,按照所述第一目标计算层的计算逻辑为所述第一目标计算层分配逻辑计算电路,以使所述逻辑计算电路对所述多个输入数据进行相应的位运算。
可选地,该装置还用于:获取原始深度神经网络;在所述原始深度神经网络中计算层的数量为2N时,在第i个计算层和第i-2k-1个计算层之间依次构建短路边,其中,i为大于2的正整数,i-2k-1和n均为正整数,且k依次取2至N;在所述第i个计算层的卷积层之前,构建位操作处理层,并将构建之后的原始深度神经网络作为所述深度神经网络。
本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
在本发明又一实施例中,还提供了一种深度神经网络的处理设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法实施例中所,描述的步骤。
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
本发明实施例所提供的一种深度神经网络的处理方法的计算机程序产品,包括存储了处理器可执行的非易失的程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种深度神经网络模型的处理方法,其特征在于,包括:
获取神经网络的第一目标计算层的多个输入数据;其中,所述第一目标计算层为深度神经网络模型所包含的依次连接的多个计算层中除前两个计算层之外的其他计算层,所述多个输入数据为所述深度神经网络模型中位于所述第一目标计算层之前且与所述第一目标计算层直接连接或通过短路边连接的多个计算层的计算结果,所述输入数据的位宽不超过预设位宽,所述短路边表示绕开所述深度神经网络模型的至少一层的网络连接关系;
通过所述第一目标计算层的起始位置的位操作处理层对所述多个输入数据进行位运算,得到位运算结果,并将所述位运算结果作为所述第一目标计算层的输入数据进行处理,所述位运算结果为所述多个输入数据的相加或相乘输出数据。
2.根据权利要求1所述的方法,其特征在于,每个所述计算层包括卷积层和非线性处理层,所述非线性处理层为离散定点化处理层。
3.根据权利要求1所述的方法,其特征在于,获取神经网络的第一目标计算层的多个输入数据包括:
确定多个第二目标计算层,其中,所述第二目标计算层为所述第一目标计算层的前一个计算层和通过短路边与所述第一目标计算层相连接的计算层,所述短路边表示绕开所述深度神经网络模型的至少一层的网络连接关系;
确定所述多个第二目标计算层的计算结果为所述第一目标计算层的所述多个输入数据。
4.根据权利要求3所述的方法,其特征在于,确定多个第二目标计算层包括:
当所述深度神经网络模型中包含依次连接的多个计算层的数量为2N时,确定所述神经网络中第i-2n-1个计算层为所述第一目标计算层Ai的多个第二目标计算层,其中,第i-1个计算层为所述第一目标计算层Ai的前一个计算层,剩余计算层为通过短路边与所述第一目标计算层相连接的计算层,i-2n-1和n均为正整数,且n依次取1至N。
5.根据权利要求1所述的方法,其特征在于,所述计算结果为离散定点化处理之后的计算结果,通过所述第一目标计算层的起始位置的位操作处理层对所述多个输入数据进行位运算,得到位运算结果包括:
通过所述第一目标计算层的起始位置的位操作处理层对所述离散定点化处理之后的计算结果进行位运算,得到所述位运算结果。
6.根据权利要求1所述的方法,其特征在于,当在处理器中对所述深度神经网络模型的第一目标计算层进行数据计算时,所述方法还包括:
在所述处理器所对应的集成电路中,按照所述第一目标计算层的计算逻辑为所述第一目标计算层分配逻辑计算电路,以使所述逻辑计算电路对所述多个输入数据进行相应的位运算。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取原始深度神经网络模型;
在所述原始深度神经网络模型中计算层的数量为2N时,在第i个计算层和第i-2k-1个计算层之间依次构建短路边,其中,i为大于2的正整数,i-2k-1和n均为正整数,且k依次取2至N,所述短路边表示绕开所述原始深度神经网络模型的至少一层的网络连接关系;
在所述第i个计算层的卷积层之前,构建位操作处理层,并将构建之后的原始深度神经网络模型作为所述深度神经网络模型。
8.一种深度神经网络模型的处理装置,其特征在于,包括:
获取单元,用于获取神经网络中第一目标计算层的多个输入数据,其中,所述第一目标计算层为深度神经网络模型所包含的依次连接的多个计算层中除前两个计算层之外的其他计算层,所述多个输入数据为所述深度神经网络模型中位于所述第一目标计算层之前且与所述第一目标计算层直接连接或通过短路边连接的多个计算层的计算结果,所述输入数据的位宽不超过预设位宽,所述短路边表示绕开所述深度神经网络模型的至少一层的网络连接关系;
位运算单元,用于通过所述第一目标计算层的起始位置的位操作处理层对所述多个输入数据进行位运算,得到位运算结果,并将所述位运算结果作为所述第一目标计算层的输入数据进行处理,所述位运算结果为所述多个输入数据的相加或相乘输出数据。
9.一种深度神经网络模型的处理设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1至7中任一项所述的方法的步骤。
10.一种具有处理器可执行的非易失的程序代码的计算机可读介质,其特征在于,所述程序代码使所述处理器执行上述权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810150453.0A CN108334946B (zh) | 2018-02-13 | 2018-02-13 | 深度神经网络模型的处理方法、装置和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810150453.0A CN108334946B (zh) | 2018-02-13 | 2018-02-13 | 深度神经网络模型的处理方法、装置和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108334946A CN108334946A (zh) | 2018-07-27 |
CN108334946B true CN108334946B (zh) | 2022-03-29 |
Family
ID=62929649
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810150453.0A Active CN108334946B (zh) | 2018-02-13 | 2018-02-13 | 深度神经网络模型的处理方法、装置和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108334946B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109359269A (zh) * | 2018-08-27 | 2019-02-19 | 北京大学 | 进行矩阵向量乘法运算的系统及进行神经网络运算方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170295439A1 (en) * | 2016-04-06 | 2017-10-12 | Buye Xu | Hearing device with neural network-based microphone signal processing |
CN107247949A (zh) * | 2017-08-02 | 2017-10-13 | 北京智慧眼科技股份有限公司 | 基于深度学习的人脸识别方法、装置和电子设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10262259B2 (en) * | 2015-05-08 | 2019-04-16 | Qualcomm Incorporated | Bit width selection for fixed point neural networks |
CN106611216A (zh) * | 2016-12-29 | 2017-05-03 | 北京旷视科技有限公司 | 基于神经网络的计算方法及装置 |
CN107451659B (zh) * | 2017-07-27 | 2020-04-10 | 清华大学 | 用于位宽分区的神经网络加速器及其实现方法 |
-
2018
- 2018-02-13 CN CN201810150453.0A patent/CN108334946B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170295439A1 (en) * | 2016-04-06 | 2017-10-12 | Buye Xu | Hearing device with neural network-based microphone signal processing |
CN107247949A (zh) * | 2017-08-02 | 2017-10-13 | 北京智慧眼科技股份有限公司 | 基于深度学习的人脸识别方法、装置和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN108334946A (zh) | 2018-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107545889B (zh) | 适用于模式识别的模型的优化方法、装置及终端设备 | |
CN109598250B (zh) | 特征提取方法、装置、电子设备和计算机可读介质 | |
CN111899097B (zh) | 一种受理区块链存证交易的方法及系统 | |
CN110213479B (zh) | 一种视频拍摄防抖方法和装置 | |
CN110991627A (zh) | 信息处理装置、信息处理方法 | |
CN108229672B (zh) | 一种深度神经网络模型的处理方法、装置和设备 | |
CN112232506A (zh) | 网络模型训练方法、图像目标识别方法、装置和电子设备 | |
CN110503182A (zh) | 深度神经网络中的网络层运算方法及装置 | |
CN114493988A (zh) | 一种图像虚化方法、图像虚化装置及终端设备 | |
CN112328298A (zh) | 移动端的代码库裁剪方法及装置 | |
CN108334946B (zh) | 深度神经网络模型的处理方法、装置和设备 | |
CN109412865B (zh) | 一种虚拟网络资源分配方法、系统及电子设备 | |
CN110689496A (zh) | 降噪模型的确定方法、装置、电子设备和计算机存储介质 | |
CN109844774A (zh) | 一种并行反卷积计算方法、单引擎计算方法及相关产品 | |
CN110399881B (zh) | 一种端到端的基于双目立体图像的质量增强方法及装置 | |
WO2024045665A1 (zh) | 多点乘运算系统、方法、图形处理器、电子装置及设备 | |
CN111382831B (zh) | 加速卷积神经网络模型前向推理的方法及装置 | |
CN111694768B (zh) | 运算方法、装置及相关产品 | |
CN112651753B (zh) | 基于区块链的智能合约生成方法、系统及电子设备 | |
CN114254563A (zh) | 数据处理方法及装置、电子设备、存储介质 | |
CN110852202A (zh) | 一种视频分割方法及装置、计算设备、存储介质 | |
CN113128673A (zh) | 数据处理方法、存储介质、神经网络处理器及电子设备 | |
CN109325134A (zh) | 一种缩略图管理方法、缩略图管理装置及移动终端 | |
CN110347333A (zh) | 提高克隆镜像性能的方法、装置、计算机设备及存储介质 | |
CN111027683A (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 |