CN108268937A - 一种神经网络及其计算方法、设备和计算机可读介质 - Google Patents
一种神经网络及其计算方法、设备和计算机可读介质 Download PDFInfo
- Publication number
- CN108268937A CN108268937A CN201810150271.3A CN201810150271A CN108268937A CN 108268937 A CN108268937 A CN 108268937A CN 201810150271 A CN201810150271 A CN 201810150271A CN 108268937 A CN108268937 A CN 108268937A
- Authority
- CN
- China
- Prior art keywords
- network
- layer
- subnet
- layers
- network layers
- 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
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
- G06N3/045—Combinations of networks
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)
- Image Analysis (AREA)
Abstract
本发明提供了一种神经网络及其计算方法、设备和计算机可读介质,涉及人工智能技术领域,该方法包括:在对当前网络层中的第一子网络层进行计算时,在目标网络层中确定与第一子网络层相连接的多个第二子网络层,目标网络层为当前网络层的上一个网络层,第一子网络层为当前网络层所包含的多个子网络层中的任意一个子网络层;获取多个第二子网络层的输出数据;对多个第二子网络层的输出数据进行信道拼接,并将信道拼接结果作为第一子网络层的输入数据。本发明缓解了现有的低位宽神经网络在使用深度可分卷积运算时网络性能较差的技术问题。
Description
技术领域
本发明涉及人工智能技术领域,尤其是涉及一种神经网络及其计算方法、设备和计算机可读介质。
背景技术
随着人工智能技术的快速发展,神经网络在图像、语音以及文字等具有海量数据的领域已经有了广泛而成功的应用。低位宽神经网络是一种计算位宽低于某个数值的神经网络,低位宽神经网络每一层的输出会被离散定点化为多种固定的取值之一,而不再是浮点数。然而,传统的浮点神经网络里为了提升同等计算量下的神经网络性能,经常使用深度可分卷积运算(group convolution),深度可分卷积运算包括逐层卷积运算(depth-wiseconvolution或者channel-wise convolution)等操作。但是,将深度可分卷积运算应用在某些低位宽计算平台下,这样的运算可能没有或者效率不高。
发明内容
有鉴于此,本发明的目的在于提供一种神经网络及其计算方法、设备和计算机可读介质,以缓解了现有的低位宽神经网络在使用深度可分卷积运算时网络性能较差的技术问题。
第一方面,本发明实施例提供了一种神经网络的计算方法,所述神经网络为位宽不超过预设位宽的神经网络,且所述神经网络中包括多个依次连接的网络层,每个网络层中包括多个并列的子网络层,所述计算方法包括:在对当前网络层中的第一子网络层进行计算时,在目标网络层中确定与所述第一子网络层相连接的多个第二子网络层,所述目标网络层为所述当前网络层的上一个网络层,所述第一子网络层为所述当前网络层所包含的多个子网络层中的任意一个子网络层;获取所述多个第二子网络层的输出数据;对所述多个第二子网络层的输出数据进行信道拼接,并将信道拼接结果作为所述第一子网络层的输入数据。
进一步地,所述神经网络中任意两个相邻的网络层中所包含的子网络层的数量相同或者不同,且所述当前网络层中任意两个子网络层所连接的多个第二子网络层部分相同或者完全不同。
进一步地,所述神经网络的第一个网络层中的子网络层包括:卷积层和离散定点化层;所述神经网络中除所述第一个网络层之外的其他网络层中的子网络层包括:信道拼接层,卷积层和离散定点化层。
进一步地,在目标网络层中确定与所述第一子网络层相连接的多个第二子网络层包括:在所述当前网络层中子网络层的数量与所述目标网络层中子网络层数量相同的情况下,确定所述目标网络层中的第i个子网络层和第(i+a)modN+1个子网络层为第一子网络层Ai的多个第二子网络层;其中,所述第一子网络层Ai为所述当前网络层中的第i个子网络层,N为所述当前网络层中子网络层的数量,a为随机数。
进一步地,在目标网络层中确定与所述第一子网络层相连接的多个第二子网络层还包括:在所述当前网络层中子网络层的数量与所述目标网络层中子网络层数量不相同的情况下,则基于预设函数确定所述多个第二子网络层。
进一步地,基于预设函数确定所述多个第二子网络层包括:在所述目标网络层中的第j个子网络层和第一子网络层Ai满足所述预设函数的情况下,则确定所述第j个子网络层为所述第一子网络层Ai的第二子网络层,其中,所述预设函数的表示为f(i,j)=1。
进一步地,当所述目标网络层为所述神经网络的第一个网络层时,所述方法还包括:获取待处理的数据;将所述待处理的数据依次输入至所述目标网络层的每个子网络层中进行卷积处理和离散定点化处理,得到输出数据。
进一步地,当所述当前网络层为所述神经网络的最后一个网络层时,所述方法还包括:获取所述当前网络层中每个子网络层的输出数据;将所述当前网络层中每个子网络层的输出数据进行信道拼接,并将拼接结果作为所述神经网络的计算结果输出。
进一步地,每个所述第二子网络层的输出数据为对相应的输入数据依次进行卷积操作和定点化操作后得到的数据。
进一步地,在所述对所述多个第二子网络层的输出数据进行信道拼接,并将信道拼接结果作为所述第一子网络层的输入数据的步骤之后还包括:对每个所述第一子网络层的输入数据依次进行卷积操作和定点化操作,以得到每个所述子网络层的输出数据。
第二方面,本发明实施例提供了一种神经网络,所述神经网络为位宽不超过预设位宽的神经网络,所述神经网络中包括:多个依次连接的网络层,每个所述网络层中包括多个并列的子网络层,多个网络层中任意两个相连接的网络层中的子网络层通过预设连接方式进行稀疏连接;其中,所述神经网络中的当前网络层为第一个网络层时,所述当前网络层中的每个子网络层包括:卷积层和离散定点化层;所述神经网络中的当前网络层为除所述第一个网络层之外的其他网络层时,所述当前网络层中的每个子网络层包括:信道拼接层,卷积层和离散定点化层;所述信道拼接层用于对输入至与其对应的子网络层中的输入数据进行信道拼接。
进一步地,所述预设连接方式包括:第一方式和/或第二方式;所述第一方式为:当所述当前网络层中子网络层的数量与目标网络层中子网络层数量相同时,确定所述目标网络层中的第i个子网络层和第(i+a)modN+1个子网络层为所述当前网络层中第i个子网络层相连接的子网络层,其中,所述目标网络层为所述当前网络层的上一个网络层;所述第二方式为:当所述当前网络层中子网络层的数量与所述目标网络层中子网络层数量不相同时,则基于预设函数确定所述当前网络层中第i个子网络层相连接的子网络层。
进一步地,所述神经网络中任意两个相邻的网络层中所包含的子网络层的数量相同或者不同,且所述当前网络层中任意两个子网络层所连接的多个第二子网络层部分相同或者完全不同。
第三方面,本发明实施例提供了一种神经网络的计算设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述所述的方法。
第四方面,本发明实施例提供了一种具有处理器可执行的非易失的程序代码的计算机可读介质,所述程序代码使所述处理器执行上述所述方法。
在本发明实施例中,将神经网络中的网络层设置为多个并列的子网络层,从第二个网络层开始每个子网络层中均设置一个信道拼接层,该信道拼接层用于对输入至该子网络层的数据进行信道拼接操作。通过上述设置方式,能够提高低位宽神经网络的网络性能,进而缓解了现有的低位宽神经网络在使用深度可分卷积运算时网络性能较差的技术问题。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的一种神经网络的计算设备的示意图;
图2是根据本发明实施例的一种神经网络的计算方法的流程图;
图3是根据本发明实施例的一种可选的三维张量的结构示意图;
图4是根据本发明实施例的一种可选的两个三维张量进行信道拼接之后的结构示意图;
图5是现有的一种低位宽神经网络的结构示意图;
图6是根据本发明实施例的第一种可选的神经网络的结构示意图;
图7是根据本发明实施例的第二种可选的神经网络的结构示意图;
图8是根据本发明实施例的第三种可选的神经网络的结构示意图;
图9是根据本发明实施例的第四种可选的神经网络的结构示意图;
图10是根据本发明实施例的第五种可选的神经网络的结构示意图;
图11是根据本发明实施例的一种神经网络的计算装置的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
首先,参照图1来描述用于实现本发明实施例的神经网络的计算设备100。
如图1所示,计算设备100包括一个或多个处理器102、一个或多个存储器104、输入装置106、输出装置108以及数据采集器110,这些组件通过总线系统112和/或其它形式的连接机构(未示出)互连。应当注意,图1所示的累加设备100的组件和结构只是示例性的,而非限制性的,根据需要,所述累加设备也可以具有其他组件和结构。
所述处理器102可以采用数字信号处理器(DSP)、现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、ASIC(Application Specific Integrated Circuit)中的至少一种硬件形式来实现,所述处理器102可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元,并且可以控制所述累加设备100中的其它组件以执行期望的功能。
所述存储器104可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器102可以运行所述程序指令,以实现下文所述的本发明实施例中(由处理器实现)的客户端功能以及/或者其它期望的功能。在所述计算机可读存储介质中还可以存储各种应用程序和各种数据,例如所述应用程序使用和/或产生的各种数据等。
所述输入装置106可以是用户用来输入指令的装置,并且可以包括键盘、鼠标、麦克风和触摸屏等中的一个或多个。
所述输出装置108可以向外部(例如,用户)输出各种信息(例如,图像或声音),并且可以包括显示器、扬声器等中的一个或多个。
所述数据采集器110用于进行数据采集,其中,数据采集器所采集的数据用于输入至所述神经网络中进行运算,例如,数据采集器可以拍摄用户期望的图像(例如照片、视频等),然后,将该图像输入至所述神经网络中进行运算,数据采集器还可以将所拍摄的图像存储在所述存储器104中以供其它组件使用。
示例性地,用于实现根据本发明实施例的神经网络的计算方法的计算设备可以被实现为诸如摄像机、抓拍机、智能手机、平板电脑等智能终端。
根据本发明实施例,提供了一种神经网络的计算方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图2是根据本发明实施例的一种神经网络的计算方法的流程图,如图2所示,该方法包括如下步骤:
步骤S202,在对当前网络层中的第一子网络层进行计算时,在目标网络层中确定与所述第一子网络层相连接的多个第二子网络层,所述目标网络层为所述当前网络层的上一个网络层,所述第一子网络层为所述当前网络层所包含的多个子网络层中的任意一个子网络层;
在本实施例中,神经网络为位宽不超过预设位宽的神经网络,且所述神经网络中包括多个依次连接的网络层,每个网络层中包括多个并列的子网络层。
需要说明的是,在本实施例中,定义低于16位宽的数据为低位宽数据,定义高于或者等于16位宽的数据为高位宽数据,其中,16位宽即为上述预设位宽。需要说明的是,预设位宽可以根据实际需要来设定不同的数值,也即,可以根据实际需要设定高位宽数据和低位宽数据的分界值,此处不做具体限定。例如,还可以定义低于32位宽的数据为低位宽数据,定义高于或者等于32位宽的数据为高位宽数据,本发明对此不作具体限定。也即,在本实施例中,当神经网络的计算位宽为8位宽时,则定义该神经网络为低位宽神经网络。当神经网络的计算位宽为16或者32位宽时,则定义该神经网络为低位宽神经网络。
步骤S204,获取所述多个第二子网络层的输出数据;
步骤S206,对所述多个第二子网络层的输出数据进行信道拼接,并将信道拼接结果作为所述第一子网络层的输入数据。
一个典型的神经网络中每一层的输出都是一个三维张量,三维分别为:长,宽和信道,如图3所示。信道拼接是指两个或多个三维张量沿信道这一维进行拼接的操作,拼接之后的结果可以如图4所示。需要说明的是,当对两个三维张量进行信道拼接时,要求两个三维张量的长度相同,宽度相同,信道数量可以相同,还可以不同。
在本发明实施例中,将神经网络中的网络层设置为多个并列的子网络层,从第二个网络层开始每个子网络层中均设置一个信道拼接层,该信道拼接层用于对输入至该子网络层的数据进行信道拼接操作。通过上述设置方式,能够提高低位宽神经网络的网络性能,进而缓解了现有的低位宽神经网络在使用深度可分卷积运算时网络性能较差的技术问题。
在本实施例中,首先结合图5至图10介绍上述实施例中所描述的神经网络。
如图5所示的为一种传统的低位宽神经网络的结构示意图。从图5中可以看出,该低位宽神经网络包括多个依次叠加的网络层,即第一个网络层,第二个网络层,…,第N个网络层。其中,每个网络层中包括卷积层和离散定点化层。由于神经网络中卷积层的输出张量中的每个值可以有很多不同取值,为了减少对这个张量进行存储和计算的花费,可以将每个值限定在一个给定的集合上。例如,可以将任意数值x修改为{-5,0,5}集合中距离该数值x最接近的元素。
本发明实施例中所提出的神经网络为位宽不超过预设位宽的神经网络,所述神经网络中包括:多个依次连接的网络层,每个所述网络层中包括多个并列的子网络层,多个网络层中任意两个相连接的网络层中的子网络层通过预设连接方式进行稀疏连接;
其中,所述神经网络中的当前网络层为第一个网络层时,所述当前网络层中的每个子网络层包括:卷积层和离散定点化层;
所述神经网络中的当前网络层为除所述第一个网络层之外的其他网络层时,所述当前网络层中的每个子网络层包括:信道拼接层,卷积层和离散定点化层;所述信道拼接层用于对输入至与其对应的子网络层中的输入数据进行信道拼接。
本实施例中,该神经网络也包括多个网络层,但是,在每个网络层中包括多个并列子网络层。具体地,如图6所示,卷积层11和离散定点化层11为一个子网络层,卷积层12和离散定点化层12为另一个子网络层,卷积层13和离散定点化层13为又一个子网络层,且上述子网络层均为如图6所示的神经网络中第一个网络层的多个子网络层。
进一步地,如图6所示,卷积层21和离散定点化层21为一个子网络层,卷积层22和离散定点化层22为另一个子网络层,卷积层23和离散定点化层23为又一个子网络层,且上述子网络层均为如图6所示的神经网络中第二个网络层的多个子网络层。从图6中可以看出,在第二个网络层中每个子网络层的卷积层之前,还包括信道拼接层。信道拼接层用于对输入至与其对应的子网络层中的输入数据进行信道拼接。例如,卷积层21之前的信道拼接层用于对离散定点化层11和离散定点化层12的输出数据进行信道拼接。
通过上述描述可知,本实施例中,多个网络层中任意两个相邻的网络层中的子网络层通过预设连接方式进行稀疏连接,其中,预设连接方式包括:第一方式和/或第二方式。
所述第一方式为:当所述当前网络层中子网络层的数量与目标网络层中子网络层数量相同时,确定所述目标网络层中的第i个子网络层和第(i+a)modN+1个子网络层为所述当前网络层中第i个子网络层相连接的子网络层,其中,所述目标网络层为所述当前网络层的上一个网络层。需要说明的是,m mod n表示的是m除以n的余数。
举例而言,假设,当前网络层为神经网络中的第二个网络层,那么目标网络层即为神经网络中的第一个网络层。如果第一个网络层中子网络层的数量与第二个网络层中子网络层的数量相同,则第一个网络层中子网络层与第二个网络层中子网络层之间的稀疏连接方式可以为上述第一方式。
即,针对第二个网络层中的第1个子网络层,可以确定第一个网络层中的第1个子网络层和第一个网络层中的第(1+a)mod3+1个子网络层为与第二个网络层中第1个子网络层相连接的子网络层。针对第二个网络层中的其他子网络层均可以采用上述方式来进行确定,此处不再详细赘述。在确定出第二个网络层中每个子网络层与第一个网络层中每个子网络层之间的连接关系之后,就可以得到一个如图6所示的神经网络的结构图,其中,如图6所示的图为一种可选的实施方式的结构图。
需要说明的是,a为一个随机数,a的取值可以变化。也就是说,在本实施例中,在神经网络中所有网络层均包含相同数量的子网络层的情况下,该神经网络中任意两个相邻的网络层之间所采用的随机数a可以相同,还可以不同。
例如,一个神经网络包括3个网络层,其中,3个网络层分别包括3个子网络层。此时,可以通过第一方式确定第一个网络层中的子网络层和第二个网络层中的子网络层之间的稀疏连接方式。例如,确定第一个网络层中的第i个子网络层和第(i+a)modN+1个子网络层为与第二个网络层中第i个子网络层相连接的子网络层,其中,a的取值可以为3。然后,确定第二个网络层中第i个子网络层和第(i+a)modN+1个子网络层为与第三个网络层中第i个子网络层相连接的子网络层,其中,a的取值可以为7,还可以取值为3。
需要说明的是,第一个网络层和第二网络层,以及第二个网络层和第三个网络层之间选择不同的随机数时,第一个网络层和第二网络层之间的稀疏连接方式与第二个网络层和第三个网络层之间的稀疏连接方式就会发生改变,如图7所示。由于每个网络层中所包含的卷积层都是不同的,因此,网络层中每个子网络层所提取出的特征都是不一样。如果按照相同的随机数来进行设置,假设,如图7中第二个网络层和第三个网络层的设置方式与第一个网络层和第二个网络层的设置方式相同,那么第三个网络层中的第一个子网络层仅能学习到上两层中第一个子网络层和第二个子网络层输出的特征向量。因此,通过如图7所示的设置方式,能够让后一层中的子网络层尽快学习到前一个网络层中各个子网络层输出的特征向量,从而使得该神经网络的学习性能更好。
所述第二方式为:当所述当前网络层中子网络层的数量与所述目标网络层中子网络层数量不相同时,则基于预设函数确定所述当前网络层中第i个子网络层相连接的子网络层。
举例而言,假设,当前网络层为神经网络中的第二个网络层,那么目标网络层即为神经网络中的第一个网络层。如果第一个网络层中子网络层的数量与第二个网络层中子网络层的数量不相同,则第一个网络层中子网络层与第二个网络层中子网络层之间的稀疏连接方式可以为上述第二方式。
即,针对第二个网络层中的第1个子网络层,将第一个网络层中与第二个网络层中的第1个子网络层满足上述预设函数的子网络层确定为与第二个网络层中的第1个子网络层相连接网络层。可选地,预设函数的表达式为f(i,j)=1,该预设函数表示为:当第一个网络层中的第j个子网络层与第二个网络层中的第i个子网络层满足该预设函数时,确定第j个子网络层为与该第i个子网络层相连接的网络层。针对第二个网络层中的其他子网络层,均可以采用上述方式来进行确定,此处不再详细赘述。在确定出第二个网络层中每个子网络层与第一个网络层中每个子网络层之间的连接关系之后,就可以得到一个如图8所示的神经网络的结构图,其中,如图8所示的图为一种可选的实施方式的结构图。
需要说明的是,在本实施例中,预设函数可以为多个。也就是说,在本实施例中,在神经网络中所包含的网络层均包含相同数量的子网络层的情况下,该神经网络中任意两个相邻的网络层之间所采用的预设函数可以相同,还可以不同。
需要说明的是,第一个网络层和第二网络层,以及第二个网络层和第三个网络层之间选择不同的预设函数时,第一个网络层和第二网络层之间的稀疏连接方式与第二个网络层和第三个网络层之间的稀疏连接方式就会发生改变。由于每个网络层中所包含的卷积层都是不同的,因此,网络层中每个子网络层所提取出的特征都是不一样。如果任意两层之间按照相同的预设函数来进行设置,按照图8来说,第三个网络层中的第一个子网络层仅能学习到上两层中第一个子网络层和第二个子网络层输出的特征向量。因此,通过上述设置方式,能够让后一层中的子网络层尽快学习到前一个网络层中各个子网络层输出的特征向量,从而使得该神经网络的学习性能更好。
在本实施例中,神经网络中任意两个相邻的网络层中所包含的子网络层的数量相同或者不同,且所述当前网络层中任意两个子网络层所连接的多个第二子网络层部分相同或者完全不同。
如图8所示,在该神经网络中,第一个网络层中包括3个子网络层,第二个网络层中包括4个子网络层,最后一个网络层中包括3个子网络层。也就是说,神经网络中任意两个相邻的网络层中所包含的子网络层的数量相同或者不同。基于此,在本实施例中,在一个神经网络中,可以通过上述第一方式和/或第二方式来建立任意两个网络层中子网络层之间的连接关系。
例如,如图9所示,一个神经网络包括3个网络层,其中,3个网络层中第一个网络层中包括3个子网络层,3个网络层中第二个网络层中包括3个子网络层,3个网络层中第三个网络层中包括4个子网络层。此时第一个网络层和第二个网络层之间可以通过上述第一方式来进行稀疏连接,然后,第二个网络层和第三个网络层之间通过上述第二方式来进行稀疏连接。
通过上述设置方式,能够满足各种结构的神经网络,从而从整体上提高神经网络的网络性能。
如图10所示的即为另一种可选的神经网络的结构示意图。在本发明实施例中,如果神经网络中包括的神经网络单元(也可简称神经网络)的数量为多个,例如,如图10所示,包括神经网络1,神经网络2,神经网络3,…,神经网络r时。此时,神经网络1,神经网络2,神经网络3,…,神经网络r中的部分或者全部网络可以采用如上述图6至图9中任意一种所述的连接结构。当部分网络可以采用如图10所示的连接结构时,具体哪个神经网络采用如图6至图9中所示的连接结构可以根据实际需要来进行设定,对此不作具体限定。
需要说明的是,上述实施例中所描述的即为本发明实施例所提供的神经网络的结构示意图。当该神经网络按照上述步骤S202至步骤S206来执行数据的处理流程时,结合上述图7,该经网络的具体处理流程描述如下:
首先,获取输入数据,例如,待处理的图像数据。然后,将待处理的图像数据分别输入至卷积层11,卷积层12和卷积层13中进行卷积处理。接下来,将卷积层11,卷积层12和卷积层13的卷积处理结果分别输送离散定点化处理层11,离散定点化处理层12和离散定点化处理层13中进行定点化处理,依次得到输出数据11,输出数据12和输出数据13。
此时,信道拼接层21对输出数据11和输出数据12进行信道拼接,并将信道拼接结果作为卷积层21的输入。信道拼接层22对输出数据13和输出数据12进行信道拼接,并将信道拼接结果作为卷积层22的输入。信道拼接层23对输出数据11和输出数据13进行信道拼接,并将信道拼接结果作为卷积层23的输入。上述信道拼接结果依次经过卷积层21和离散定点化处理层21,卷积层22和离散定点化处理层22,以及卷积层23和离散定点化处理层23处理之后,依次得到输出数据21,输出数据22和输出数据23。
此时,信道拼接层31对输出数据21和输出数据23进行信道拼接,并将信道拼接结果作为卷积层31的输入。信道拼接层32对输出数据21和输出数据22进行信道拼接,并将信道拼接结果作为卷积层33的输入。信道拼接层33对输出数据22和输出数据23进行信道拼接,并将信道拼接结果作为卷积层31的输入。信道拼接结果依次经过卷积层31和离散定点化处理层31,卷积层32和离散定点化处理层32,以及卷积层33和离散定点化处理层33处理之后,依次得到输出数据31,输出数据32和输出数据33。最后,对输出数据31,输出数据32和输出数据33进行信道拼接之后,得到的信道拼接结果作为该神经网络的输出结果。
下面将结合具体实施例和上述图6至图10对上述步骤S202至步骤S206进行具体的描述。
在一个可选的实施例中,步骤S202,在目标网络层中确定与所述第一子网络层相连接的多个第二子网络层包括如下步骤:
在所述当前网络层中子网络层的数量与所述目标网络层中子网络层数量相同的情况下,确定所述目标网络层中的第i个子网络层和第(i+a)modN+1个子网络层为第一子网络层Ai的多个第二子网络层;其中,所述第一子网络层Ai为所述当前网络层中的第i个子网络层,N为所述当前网络层中子网络层的数量,a为随机数。
通过上述描述可知,在当前网络层中子网络层的数量与所述目标网络层中子网络层数量相同的情况下,可以确定目标网络层中的第i个子网络层和第(i+a)modN+1个子网络层为第一子网络层Ai的多个第二子网络层。
假设,目标网络层为第一个网络层,当前网络为第二个网络层。那么确定第一个网络层中的第1个子网络层和第(1+a)modN+1个子网络层为与第二个网络层中第1个子网络层相连接的多个子网络层,其中,第二个网络层中第1个子网络层即为上述第一子网络层Ai,第一个网络层中的第1个子网络层和第(1+a)modN+1个子网络层即为第一子网络层Ai的多个第二子网络层。针对第二个网络层中的其他子网络层,均采用上述方式确定与之相连接的多个第二子网络层,此处不再赘述。
在确定出与第一子网络层Ai相连接的多个第二子网络层之后,就可以获取多个第二子网络层的输出数据,并通过相应的信道拼接层对多个第二子网络层的输出数据进行信道拼接,并将信道拼接结果作为第一子网络层Ai的输入数据。
在本实施例中,每个所述第二子网络层的输出数据为对相应的输入数据依次进行卷积操作和定点化操作后得到的数据。如上述图7所示,如果第二子网络层为卷积层11和离散定点化层11,那么该第二子网络层的输出数据为输入数据经过卷积层11进行卷积操作,以及经过离散定点化层11进行定点化操作后得到的数据。
在一个可选的实施例中,步骤S202,在目标网络层中确定与所述第一子网络层相连接的多个第二子网络层还包括:
在所述当前网络层中子网络层的数量与所述目标网络层中子网络层数量不相同的情况下,则基于预设函数确定所述多个第二子网络层。
其中,基于预设函数确定所述多个第二子网络层包括:
在所述目标网络层中的第j个子网络层和第一子网络层Ai满足所述预设函数的情况下,则确定所述第j个子网络层为所述第一子网络层Ai的第二子网络层,其中,所述预设函数的表示为f(i,j)=1。
通过上述描述可知,在当前网络层中子网络层的数量与所述目标网络层中子网络层数量不相同的情况下,可以基于预设函数f(i,j)=1确定目标网络层中的第j个子网络层为所述第一子网络层Ai的第二子网络层。
假设,目标网络层为第一个网络层,当前网络为第二个网络层。当确定出第一个网络层中的第j个子网络层和第二个网络层中给的第一子网络层Ai满足上述预设函数时,则确定出第j个子网络层为第一子网络层Ai的第二子网络层。针对第二个网络层中的其他子网络层,均采用上述方式确定与之相连接的多个第二子网络层,此处不再赘述。
在确定出与第一子网络层Ai相连接的多个第二子网络层之后,就可以获取多个第二子网络层的输出数据,并通过信道拼接层对多个第二子网络层的输出数据进行信道拼接,并将信道拼接结果作为第一子网络层Ai的输入数据。
在本实施例中,在所述对所述多个第二子网络层的输出数据进行信道拼接,并将信道拼接结果作为所述第一子网络层的输入数据的步骤之后还包括:对每个所述第一子网络层的输入数据依次进行卷积操作和定点化操作,以得到每个所述子网络层的输出数据。
例如,如图7所示,如果第一子网络层为卷积层21和离散定点化层21,那么该第一子网络层的输入数据即为信道拼接层21进行信道拼接之后输出的数据。此时,卷积层21首先对信道拼接层21进行信道拼接之后输出的数据进行卷积操作,得到卷积结果;然后,通过离散定点化层21对该卷积结果进行定点化操作,并输出定点化操作;最后,将离散定点化层21输出的定点化操作作为该第一子网络层的输出数据。
如图6至图10所示,在神经网络的第一个网络层中,每个子网络层的输入为输入数据,其中,该输入数据为输入至该神经网络中的待处理的数据;在神经网络的最后一个网络层中,每个子网络层的输出数据经过信道拼接层进行信道拼接之后,得到信道拼接结果,并将信道拼接结果作为该神经网络的输出数据。
因此,在本实施例中,当所述目标网络层为所述神经网络的第一个网络层时,所述方法还包括如下步骤:
首先,获取待处理的数据;
然后,将所述待处理的数据依次输入至所述目标网络层的每个子网络层中进行卷积处理和离散定点化处理,得到输出数据。
也就是说,当目标网络层为该神经网络的第一个网络层时,将待处理的数据输入至该目标网络层的每个子网络层中分别进行卷积和离散定点化处理,从而得到多个输出数据。该多个输出数据可以按照如图6至图10中任意一种方式输入至下一个子网络层中进行信道拼接操作。
进一步地,在本实施例中,当所述当前网络层为所述神经网络的最后一个网络层时,所述方法还包括如下步骤:
首先,获取所述当前网络层中每个子网络层的输出数据;
然后,将所述当前网络层中每个子网络层的输出数据进行信道拼接,并将拼接结果作为所述神经网络的计算结果输出。
也就是说,在当前网络层为该神经网络的最后一个网络层的情况下,将当前网络层中每个子网络层的输出数据进行信道拼接操作。具体地,可以利用如图6至图10中位于最后位置处的信道拼接层进行信道拼接操作,从而,得到信道拼接结果。最后,将该拼接结果作为神经网络的计算结果(也即,图6至图10中所示的输出数据)输出。
本发明实施例还提供了一种神经网络的计算装置,该神经网络的计算装置主要用于执行本发明实施例上述内容所提供的神经网络的计算方法,以下对本发明实施例提供的神经网络的计算装置做具体介绍。
图11是根据本发明实施例的一种神经网络的计算装置的示意图,如图11所示,该神经网络的计算装置主要包括确定单元10,获取单元20和信道拼接单元30,其中:
确定单元10,用于在对当前网络层中的第一子网络层进行计算时,在目标网络层中确定与所述第一子网络层相连接的多个第二子网络层,所述目标网络层为所述当前网络层的上一个网络层,所述第一子网络层为所述当前网络层所包含的多个子网络层中的任意一个子网络层;
获取单元20,用于获取所述多个第二子网络层的输出数据;
信道拼接单元30,用于对所述多个第二子网络层的输出数据进行信道拼接,并将信道拼接结果作为所述第一子网络层的输入数据。
其中,该神经网络为位宽不超过预设位宽的神经网络,且所述神经网络中包括多个依次连接的网络层,每个网络层中包括多个并列的子网络层。
在本发明实施例中,将神经网络中的网络层设置为多个并列的子网络层,从第二个网络层开始每个子网络层中均设置一个信道拼接层,该信道拼接层用于对输入至该子网络层的数据进行信道拼接操作。通过上述设置方式,能够提高低位宽神经网络的网络性能,进而缓解了现有的低位宽神经网络在使用深度可分卷积运算时网络性能较差的技术问题。
本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
本发明实施例所提供的一种神经网络的计算方法的计算机程序产品,包括存储了处理器可执行的非易失的程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (15)
1.一种神经网络的计算方法,其特征在于,所述神经网络为位宽不超过预设位宽的神经网络,且所述神经网络中包括多个依次连接的网络层,每个网络层中包括多个并列的子网络层,所述计算方法包括:
在对当前网络层中的第一子网络层进行计算时,在目标网络层中确定与所述第一子网络层相连接的多个第二子网络层,所述目标网络层为所述当前网络层的上一个网络层,所述第一子网络层为所述当前网络层所包含的多个子网络层中的任意一个子网络层;
获取所述多个第二子网络层的输出数据;
对所述多个第二子网络层的输出数据进行信道拼接,并将信道拼接结果作为所述第一子网络层的输入数据。
2.根据权利要求1所述的计算方法,其特征在于,所述神经网络中任意两个相邻的网络层中所包含的子网络层的数量相同或者不同,且所述当前网络层中任意两个子网络层所连接的多个第二子网络层部分相同或者完全不同。
3.根据权利要求2所述的计算方法,其特征在于,所述神经网络的第一个网络层中的子网络层包括:卷积层和离散定点化层;所述神经网络中除所述第一个网络层之外的其他网络层中的子网络层包括:信道拼接层,卷积层和离散定点化层。
4.根据权利要求1所述的计算方法,其特征在于,在目标网络层中确定与所述第一子网络层相连接的多个第二子网络层包括:
在所述当前网络层中子网络层的数量与所述目标网络层中子网络层数量相同的情况下,确定所述目标网络层中的第i个子网络层和第(i+a)modN+1个子网络层为第一子网络层Ai的多个第二子网络层;
其中,所述第一子网络层Ai为所述当前网络层中的第i个子网络层,N为所述当前网络层中子网络层的数量,a为随机数。
5.根据权利要求1所述的计算方法,其特征在于,在目标网络层中确定与所述第一子网络层相连接的多个第二子网络层还包括:
在所述当前网络层中子网络层的数量与所述目标网络层中子网络层数量不相同的情况下,则基于预设函数确定所述多个第二子网络层。
6.根据权利要求5所述的计算方法,其特征在于,基于预设函数确定所述多个第二子网络层包括:
在所述目标网络层中的第j个子网络层和第一子网络层Ai满足所述预设函数的情况下,则确定所述第j个子网络层为所述第一子网络层Ai的第二子网络层,其中,所述预设函数的表示为f(i,j)=1。
7.根据权利要求1所述的计算方法,其特征在于,当所述目标网络层为所述神经网络的第一个网络层时,所述方法还包括:
获取待处理的数据;
将所述待处理的数据依次输入至所述目标网络层的每个子网络层中进行卷积处理和离散定点化处理,得到输出数据。
8.根据权利要求1所述的计算方法,其特征在于,当所述当前网络层为所述神经网络的最后一个网络层时,所述方法还包括:
获取所述当前网络层中每个子网络层的输出数据;
将所述当前网络层中每个子网络层的输出数据进行信道拼接,并将拼接结果作为所述神经网络的计算结果输出。
9.根据权利要求1至8任一项所述的计算方法,其特征在于,每个所述第二子网络层的输出数据为对相应的输入数据依次进行卷积操作和定点化操作后得到的数据。
10.根据权利要求1至8任一项所述的计算方法,其特征在于,在所述对所述多个第二子网络层的输出数据进行信道拼接,并将信道拼接结果作为所述第一子网络层的输入数据的步骤之后还包括:
对每个所述第一子网络层的输入数据依次进行卷积操作和定点化操作,以得到每个所述子网络层的输出数据。
11.一种神经网络,其特征在于,所述神经网络为位宽不超过预设位宽的神经网络,所述神经网络中包括:多个依次连接的网络层,每个所述网络层中包括多个并列的子网络层,多个网络层中任意两个相连接的网络层中的子网络层通过预设连接方式进行稀疏连接;
其中,所述神经网络中的当前网络层为第一个网络层时,所述当前网络层中的每个子网络层包括:卷积层和离散定点化层;
所述神经网络中的当前网络层为除所述第一个网络层之外的其他网络层时,所述当前网络层中的每个子网络层包括:信道拼接层,卷积层和离散定点化层;所述信道拼接层用于对输入至与其对应的子网络层中的输入数据进行信道拼接。
12.根据权利要求11所述的神经网络,其特征在于,所述预设连接方式包括:第一方式和/或第二方式;
所述第一方式为:当所述当前网络层中子网络层的数量与目标网络层中子网络层数量相同时,确定所述目标网络层中的第i个子网络层和第(i+a)modN+1个子网络层为所述当前网络层中第i个子网络层相连接的子网络层,其中,所述目标网络层为所述当前网络层的上一个网络层,N为所述当前网络层中子网络层的数量,a为随机数;
所述第二方式为:当所述当前网络层中子网络层的数量与所述目标网络层中子网络层数量不相同时,则基于预设函数确定所述当前网络层中第i个子网络层相连接的子网络层。
13.根据权利要求11所述的神经网络,其特征在于,所述神经网络中任意两个相邻的网络层中所包含的子网络层的数量相同或者不同,且所述当前网络层中任意两个子网络层所连接的多个第二子网络层部分相同或者完全不同。
14.一种神经网络的计算设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1至10中任一项所述的方法。
15.一种具有处理器可执行的非易失的程序代码的计算机可读介质,其特征在于,所述程序代码使所述处理器执行所述权利要求1-10中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810150271.3A CN108268937A (zh) | 2018-02-13 | 2018-02-13 | 一种神经网络及其计算方法、设备和计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810150271.3A CN108268937A (zh) | 2018-02-13 | 2018-02-13 | 一种神经网络及其计算方法、设备和计算机可读介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108268937A true CN108268937A (zh) | 2018-07-10 |
Family
ID=62774205
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810150271.3A Pending CN108268937A (zh) | 2018-02-13 | 2018-02-13 | 一种神经网络及其计算方法、设备和计算机可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108268937A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110928675A (zh) * | 2018-09-20 | 2020-03-27 | 合肥君正科技有限公司 | 一种适应于神经网络处理器协同工作的方法和装置 |
CN111461296A (zh) * | 2018-12-29 | 2020-07-28 | 中科寒武纪科技股份有限公司 | 数据处理方法、电子设备和可读存储介质 |
CN113204010A (zh) * | 2021-03-15 | 2021-08-03 | 锋睿领创(珠海)科技有限公司 | 非视域目标检测方法、装置和存储介质 |
-
2018
- 2018-02-13 CN CN201810150271.3A patent/CN108268937A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110928675A (zh) * | 2018-09-20 | 2020-03-27 | 合肥君正科技有限公司 | 一种适应于神经网络处理器协同工作的方法和装置 |
CN110928675B (zh) * | 2018-09-20 | 2023-08-18 | 合肥君正科技有限公司 | 一种适应于神经网络处理器协同工作的方法和装置 |
CN111461296A (zh) * | 2018-12-29 | 2020-07-28 | 中科寒武纪科技股份有限公司 | 数据处理方法、电子设备和可读存储介质 |
CN111461296B (zh) * | 2018-12-29 | 2023-09-22 | 中科寒武纪科技股份有限公司 | 数据处理方法、电子设备和可读存储介质 |
CN113204010A (zh) * | 2021-03-15 | 2021-08-03 | 锋睿领创(珠海)科技有限公司 | 非视域目标检测方法、装置和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110473141A (zh) | 图像处理方法、装置、存储介质及电子设备 | |
CN106203376A (zh) | 人脸关键点定位方法及装置 | |
CN108108754A (zh) | 重识别网络的训练、重识别方法、装置和系统 | |
CN108875486A (zh) | 目标对象识别方法、装置、系统和计算机可读介质 | |
CN108364061A (zh) | 运算装置、运算执行设备及运算执行方法 | |
CN108268937A (zh) | 一种神经网络及其计算方法、设备和计算机可读介质 | |
CN109034206A (zh) | 图像分类识别方法、装置、电子设备及计算机可读介质 | |
CN109671020A (zh) | 图像处理方法、装置、电子设备和计算机存储介质 | |
CN109871871A (zh) | 基于光学神经网络结构的图像识别方法、装置及电子设备 | |
CN109829506A (zh) | 图像处理方法、装置、电子设备和计算机存储介质 | |
CN104915423B (zh) | 获取目标用户的方法和装置 | |
CN111985597B (zh) | 模型压缩方法及装置 | |
CN111105017B (zh) | 神经网络量化方法、装置及电子设备 | |
CN110458294A (zh) | 模型运行方法、装置、终端及存储介质 | |
CN106855952A (zh) | 基于神经网络的计算方法及装置 | |
CN110751218B (zh) | 图像分类方法、图像分类装置及终端设备 | |
CN106779057A (zh) | 基于gpu的计算二值神经网络卷积的方法及装置 | |
CN109754359A (zh) | 一种应用于卷积神经网络的池化处理的方法及系统 | |
CN111860138A (zh) | 基于全融合网络的三维点云语义分割方法及系统 | |
CN110780921A (zh) | 数据处理方法和装置、存储介质及电子装置 | |
CN106650615A (zh) | 一种图像处理方法及终端 | |
CN110349082A (zh) | 图像区域的裁剪方法和装置、存储介质及电子装置 | |
CN114066718A (zh) | 一种图像风格迁移方法、装置、存储介质及终端 | |
CN112016502B (zh) | 安全带检测方法、装置、计算机设备及存储介质 | |
CN113673701A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180710 |
|
RJ01 | Rejection of invention patent application after publication |