卷积神经网络的实现方法、装置、电子设备及存储介质与流程

专利2022-06-29  80


本申请涉及图像处理技术领域,尤其涉及一种卷积神经网络的实现方法、装置、电子设备及存储介质。



背景技术:

随着人工智能这门新兴科学技术的发展,越来越多相关产品被研发出来并投入使用。早期的人工智能通过深度学习建立具有阶层结构的人工神经网络在计算系统中实现,当前阶段,人工智能多依靠深度学习代表算法之一的卷积神经网络(convolutionalneuralnetworks,cnn)实现,为了提高卷积神经网络的处理效率,部分企业致力于开发人工智能芯片来加速实现卷积神经网络中的运算,例如:矩阵乘法和加法计算,相应的芯片我们称之为神经网络处理器(neuralnetworkprocessor,nnp),但是,卷积神经网络中还包含许多不适合神经网络处理器实现的运算,卷积神经网络的处理效率仍然不高。



技术实现要素:

针对以上问题,本申请实施例提出一种卷积神经网络的实现方法、装置、电子设备及存储介质,有利于提高卷积神经网络的处理效率。

本申请实施例第一方面,提供了一种卷积神经网络的实现方法,该方法包括:

在待处理图像输入预训练卷积神经网络时,获取卷积神经网络的网络结构图,基于所述网络结构图得到卷积神经网络各节点的深度和属性;

根据所述各节点的深度和属性对卷积神经网络进行切割,得到卷积神经网络的目标切割网络;

若所述目标切割网络中存在不相关联的网络块,则对所述目标切割网络进行切割,得到卷积神经网络相互独立的网络块,所述相互独立的网络块的属性由网络块中的节点的属性定义;

根据所述网络块的属性将所述网络块输入相应的处理单元,使得所述处理单元对所述网络块中的节点的输入特征值进行处理,其中,所述输入特征值为所述待处理图像的特征值。

结合第一方面,在一种可能的实施方式中,根据所述各节点的深度和属性对卷积神经网络进行切割,得到卷积神经网络的目标切割网络,包括:

a1:根据所述各节点的深度和属性获取卷积神经网络的第一子网络;

b1:采用第一预设方法获取卷积神经网络的第一输出集合;

c1:根据所述第一子网络和所述第一输出集合获取所述目标切割网络。

结合第一方面,在一些可能的实施方式中,所述对所述目标切割网络进行切割,得到卷积神经网络相互独立的网络块,包括:

a2:采用所述第一预设方法获取所述目标切割网络的第二输出集合;

b2:获取所述第二输出集合中的节点的依赖图,基于所述第二输出集合中的节点的依赖图得到目标依赖图;

c2:从所述目标切割网络中切割出所述目标依赖图,定义为第一网络块;

d2:判断所述目标切割网络中除所述第一网络块以外的网络是否为空集,若是则完成对所述目标切割网络的切割,得到卷积神经网络的所述网络块;

e2:若否则针对所述目标切割网络中除所述第一网络块以外的网络,重复执行a2至d2的操作,得到卷积神经网络的所述网络块。

本申请实施例第二方面提供了一种卷积神经网络的实现装置,该装置包括:

网络获取模块,用于在待处理图像输入预训练卷积神经网络时,获取卷积神经网络的网络结构图,基于所述网络结构图得到卷积神经网络各节点的深度和属性;

网络切割模块,用于根据所述各节点的深度和属性对卷积神经网络进行切割,得到卷积神经网络的目标切割网络;

块切割模块,用于若所述目标切割网络中存在不相关联的网络块,则对所述目标切割网络进行切割,得到卷积神经网络相互独立的网络块,所述相互独立的网络块的属性由网络块中的节点的属性定义;

网络处理模块,用于根据所述网络块的属性将所述网络块块输入相应的处理单元,使得所述处理单元对所述网络块中的节点的输入特征值进行处理,其中,所述输入特征值为所述待处理图像的特征值。

本申请实施例第三方面提供了一种电子设备,所述电子设备包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的卷积神经网络的实现方法中的步骤。

本申请实施例第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的卷积神经网络的实现方法中的步骤。

本申请的上述方案至少包括以下有益效果:在待处理图像输入预训练卷积神经网络时,通过获取卷积神经网络的网络结构图,基于所述网络结构图得到卷积神经网络各节点的深度和属性;根据所述各节点的深度和属性对卷积神经网络进行切割,得到卷积神经网络的目标切割网络;若所述目标切割网络中存在不相关联的网络块,则对所述目标切割网络进行切割,得到卷积神经网络相互独立的网络块;根据所述网络块的属性将所述网络块输入相应的处理单元,使得所述处理单元对所述网络块中的节点的输入特征值进行处理。从而在卷积神经网络中包含不适合神经网络处理器实现的运算的情况下,通过数字信号处理器辅助实现,这就需要基于卷积神经网络的网络结构图及图中的节点对卷积神经网络进行切割,然后再将得到的目标切割网络切割为相互独立的网络块,根据网络块的属性将相互独立的网络块送入神经网络处理器或者数字信号处理器中处理,进而提高卷积神经网络的处理效率。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的一种应用示例图;

图2位本申请实施例提供的一种卷积神经网络的实现方法的流程示意图;

图3为本申请实施例提供的一种卷积神经网络的网络结构图;

图4为本申请实施例提供的一种子网络中存在不相关联的网络块的示例图;

图5为本申请实施例提供的另一种卷积神经网络的实现方法的流程示意图;

图6为本申请实施例提供的一种建立第一子网络的示例图;

图7为本申请实施例提供的一种建立第二子网络的示例图;

图8为本申请实施例提供的一种切割出的网络块的示例图;

图9为本申请实施例提供的一种卷积神经网络的实现装置的结构示意图;

图10为本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

本申请说明书、权利要求书和附图中出现的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。此外,术语“第一”、“第二”和“第三”等是用于区别不同的对象,而并非用于描述特定的顺序。

首先结合相关附图来举例介绍下本申请实施例的方案可能应用到的网络系统架构。请参见图1,图1为本申请实施例提供的一种应用示例图,如图1所示,提供一服务器,服务器包括输入单元、由网络切割单元和块切割单元构成的切割单元、神经网络处理器nnp以及数字信号处理器dsp(digitalsignalprocessor),各个单元通过电连接进行通信。其中,服务器的输入单元用于获取卷积神经网络的网络结构图,并进行网络切割前的准备工作,例如:网络中节点属性的配置、网络节点依赖图的获取等等,之后将卷积神经网络的网络结构图传输至切割单元的网络切割单元,根据预设条件将卷积神经网络切割为多个子网络,例如:第一子网络、第二子网络、第三子网络等,得到多个子网络后,对每个子网络进行条件判定,以确定某个子网络中是否存在不相关的网络块,例如:若第一子网络存在多个不相关的网络块,则将第一子网络传输至块切割单元,将多个不相关的网络块切割出来得到第一网络块、第二网络块、第三网络块等,根据每个网络块的可执行性将其分别传输至神经网络处理器nnp或数字信号处理器dsp处理,例如:第一网络块的属性为nnp,则其只能由神经网络处理器处理,第二网络块的属性为dsp,则其只能由数字信号处理器处理。

可以看出,在上述场景中,整个处理流程由服务器执行,在服务器内不仅存在神经网络处理器,还增加了数字信号处理器,将整个神经网络切割为只能由神经网络处理器或数字信号处理器处理的网络块,神经网络处理器不适合处理的运算,由数字信号处理器辅助处理,在图片、视频等诸多场景中,有效提高了卷积神经网络的运算处理效率。

基于图1所示的应用示例,以下结合其他附图对本申请实施例提供的卷积神经网络的实现方法、装置、电子设备及存储介质进行详细阐述。请参见图2,图2为本申请实施例提供的一种卷积神经网络的实现方法的流程示意图,如图2所示,包括步骤s21-s24:

s21,在待处理图像输入预训练卷积神经网络时,获取卷积神经网络的网络结构图,基于所述网络结构图得到卷积神经网络各节点的深度和属性。

本申请具体实施例中,待处理图像即指摄像头、摄像机、相机等图像采集设备采集的图像,该图像可以是图片或视频,图像采集设备可以是处于任意场景下的设备,例如:闸机通道、道路口、园区内等等,且图像采集设备可将采集的待处理图像实时发送至服务器,也可将采集的待处理图像存储至本地,在预设上传时间点到达时再上传至服务器,服务器接收到待处理图像时,将其输入上述卷积神经网络,该卷积神经网络是通过预训练的卷积神经网络模型,具体可以是残差网络(residualnetwork,resnet)、视觉几何组网络(visualgeometrygroupnetwork,vggnet)等等,此处不作限定。

对于进行图像处理的卷积神经网络,首先会获取到如图3所示的网络结构图,网络结构图给出了构成卷积神经网络的层,例如:卷积神经网络中的输入层、隐藏层、输出层,每一网络层都可称之为节点,从网络结构图中还可以获得每一节点的输入节点和输出节点。节点的深度即指节点到根节点的距离,依赖关系可以理解为节点之间的输入输出关系,基于获取到的网络结构图,从根节点开始遍历,按照网络结构图中各节点的依赖关系得到各节点的深度,再按照预设类型的属性定义所述各节点的属性。如图3中最上面一个nnp层为根节点,其深度记为0,按照其输出,接下来一个nnp层为根节点的输出节点,其深度记为1,深度为1的nnp层的两个输出节点为两个dsp层,其与根节点的距离为2,那么其深度记为2,每个作为输出的节点的深度为其输入节点加1;本申请中可以预设三种类型的属性,分别为第一属性、第二属性和第三属性,第一属性表示神经网络处理器或数字信号处理器都满足其执行效率且都可执行,第二属性表示神经网络处理器满足其执行效率且只能由神经网络处理器执行,第三属性表示数字信号处理器满足其执行效率且只能由数字信号处理器执行,以预设的第一属性、第二属性和第三属性定义卷积神经网络各节点的属性,如图3中,表示为nnp层的节点的属性即为第二属性,表示为dsp层的节点的属性即为第三属性,第一属性的节点未在图3中示出。

s22,根据所述各节点的深度和属性对卷积神经网络进行切割,得到卷积神经网络的目标切割网络。

本申请具体实施例中,目标切割网络即指对卷积神经网络切割后得到的子网络,在特定条件下,目标切割网络可以是卷积神经网络本身。从网络结构图中深度最小的节点开始,按照深度递增的方式读取神经网络各节点的属性,以从卷积神经网络中切割出一个初始网络(或者可以称作卷积神经网络的初始集合),初始网络为卷积神经网络的一个子集,之后获取卷积神经网络的所有输出节点,对其进行分析,若卷积神经网络的所有输出节点均在初始网络中,则初始网络与卷积神经网络重叠,初始网络就是卷积神经网络的目标切割网络。若卷积神经网络的输出节点中存在不在初始网络中的节点,则遍历卷积神经网络中的节点,将卷积神经网络不在初始网络中的节点组成新的网络。再次根据新的网络中节点的深度和属性切割出新的网络的初始网络,获取新的网络的所有输出节点,对其进行分析,若新的网络的所有输出节点中存在不在该新的网络的初始网络中的节点,则遍历新的网络中的节点,将不在新的网络的初始网络中的节点再次组成新的网络,重复上述步骤,直至得到的网络的所有输出节点均在该网络的初始网络中,例如:上述第一个新的网络的所有输出节点均在该网络的初始网络中,则不再对上述第一个新的网络执行网络切割的操作,上述初始网络和第一个新的网络均是卷积神经网络的目标切割网络。

s23,若所述目标切割网络中存在不相关联的网络块,则对所述目标切割网络进行切割,得到卷积神经网络相互独立的网络块,所述网络块的属性由所述网络块中的节点的属性定义。

s24,根据所述网络块的属性将所述网络块输入相应的处理单元,使得所述处理单元对所述网络块中的节点的输入特征值进行处理,其中,所述输入特征值为所述待处理图像的特征值。

本申请具体实施例中,在步骤s22获取到卷积神经网络的目标切割网络后,再获取目标切割网络的输出节点,基于目标切割网络的网络结构图,获取每个输出节点的依赖图(dependency_map),以卷积神经网络的一个目标切割网络为例,遍历该目标切割网络中的节点,当遍历到节点a时,将节点a的输入节点b和c作为节点a的初始依赖图,然后将节点b和c的依赖图加入到节点a的初始依赖图中构成节点a的依赖图,由此可知,深度越大的节点,其依赖图越大。根据获取到的输出节点的依赖图判断卷积神经网络的目标切割网络中是否存在不相关联,即没有输入输出关系的依赖图,将该依赖图从卷积神经网络的子网络中切割出来,定义为一个网络块,即可得到卷积神经网络相互独立的网络块。举例说明,若卷积神经网络的一个目标切割网络切割出来如图4所示,图4所示的网络中,变量0、变量2和变量4分别为节点a、b、c的输入变量,即节点a、b、c的输入特征值,变量1、变量3和变量5分别表示节点a、b、c的输出变量,即节点a、b、c的输出特征值,显而易见的,节点a、b、c的输入变量和输出变量均不同,三个节点属于三个独立的分支,没有任何输入输出关系,此时就需要将三个节点分别切割为三个网络块,每个网络块中节点的属性相同,每个网络块的属性由网络块的节点的属性决定,即节点属性均为第二属性的网络块,其属性同样为第二属性,节点属性均为第三属性的网络块,其属性同样为第三属性。其中,网络块中每个节点的输入特征值为该每个节点的输入节点的输出特征值,例如:若节点c的输入节点为节点b,那么,节点c的输入特征值为节点b的输出特征值,若网络块中包括有根节点,则可知根节点的输入特征值为待处理图像未经过任何节点的原始特征值。目标切割网络中的所有不相关联的网络块被切割出来便完成了对整个卷积神经网络的切割,得到卷积神经网络相互独立的网络块(例如:block0,block1....),依据每个网络块的属性将其输入相应的处理单元,由相应的处理单元对网络块中的节点的输入特征值(即输入变量)进行处理,例如:属性为第二属性的网络块输入神经网络处理器,由神经网络处理器对其节点的输入特征值进行处理,得到网络块的输出特征值(即输出变量),属性为第三属性的网络块输入数字信号处理器处理,由数字信号处理器对其节点的输入特征值进行处理,得到网络块的输出特征值。当然,若目标切割网络中不存在独立的网络块,则不需要执行对目标切割网络进行切割的操作。

可以看出,本申请实施例在待处理图像输入预训练卷积神经网络时,通过获取卷积神经网络的网络结构图,基于所述网络结构图得到卷积神经网络各节点的深度和属性;根据所述各节点的深度和属性对卷积神经网络进行切割,得到卷积神经网络的目标切割网络;若所述目标切割网络中存在不相关联的网络块,则对所述目标切割网络进行切割,得到卷积神经网络相互独立的网络块;根据所述网络块的属性将所述网络块输入相应的处理单元,使得所述处理单元对所述网络块中的节点的输入特征值进行处理。从而在卷积神经网络中包含不适合神经网络处理器实现的运算的情况下,通过数字信号处理器辅助实现,这就需要基于卷积神经网络的网络结构图及图中的节点对卷积神经网络进行切割,然后再将得到的目标切割网络切割为相互独立的网络块,根据网络块的属性将相互独立的网络块送入神经网络处理器或者数字信号处理器中处理,进而提高卷积神经网络的处理效率。

基于上述描述,请参见图5,图5为本申请实施例提供的另一种卷积神经网络的实现方法的流程示意图,如图5所示,包括步骤s51-s56:

s51,在待处理图像输入预训练卷积神经网络时,获取卷积神经网络的网络结构图,基于所述网络结构图得到卷积神经网络各节点的深度和属性。

s52,根据所述各节点的深度和属性获取卷积神经网络的第一子网络。

本申请具体实施例中,上述根据所述各节点的深度和属性获取卷积神经网络的第一子网络,包括:

从深度最小的节点开始,按照深度递增的方式读取所述各节点的属性;

若读取到当前节点的属性不为第一属性,则停止读取,由属性为第一属性的节点及所述当前节点构成第一初始子网络,以所述当前节点的属性定义所述第一初始子网络的属性;

遍历卷积神经网络中未在所述第一初始子网络中的节点,若存在与所述第一初始子网络的属性相同,且输入节点都在所述第一初始子网络中,且输入节点的属性与所述第一初始子网络的属性也相同的节点,则将该节点加入到第一初始子网络中,以得到所述第一子网络。

如图6所示的网络结构图,其中的变量0和变量1表示节点a的输入变量(即输入特征值)和输出变量(即输出特征值),变量1和变量2表示节点b的输入变量和输出变量,变量2和变量3表示节点c的输入变量和输出变量。假设节点a是根节点,那么变量0即表示待处理图像在r、g、b三个通道上的特征值,其深度为0,从节点a开始读取节点a的属性,确定是第一属性,则继续按照深度递增继续读取节点b的属性,确定为第一属性,节点a和b的属性均为第一属性,即神经网络处理器和数字信号处理器均可执行,继续读取节点c,其属性为第二属性,表示智能由神经网络处理器处理,则停止读取深度比节点c大的后续节点,将节点a、节点b和节点c作为卷积神经网络的第一初始子网络,第一初始子网络的属性由节点c的属性决定,即第二属性。之后,再遍历卷积神经网络中未在第一初始子网络中的节点,即节点a、b、c以外的节点,将属性与第一初始子网络的属性相同,且输入节点都在第一初始子网络中,且输入节点的属性与第一初始子网络的属性也相同的节点加入第一初始子网络,以完善第一初始子网络,得到卷积神经网络的第一子网络。

s53,采用第一预设方法获取卷积神经网络的第一输出集合。

本申请具体实施例中,预先设定了两种方法:获取网络输入的方法和获取网络输出的方法,获取网络输入的方法可以是遍历卷积神经网络的所有节点,如果一个节点的输入不是网络中任一节点的输出,则该节点的输入就是整个网络的输入,该节点就是网络的输入节点。第一预设方法即获取网络输出的方法,具体可以是遍历卷积神经网络的所有节点,如果一个节点不为网络中任一个节点的输入,那么此节点的输出即为网络的输出,该节点即为卷积神经网络的输出节点,所有的输出节点构成第一输出集合,如图6中的节点c,其输出变量3不为网络中任一节点的输入,变量3就是整个网络的输出,节点c就是网络的输出节点。

s54,根据所述第一子网络和所述第一输出集合获取卷积神经网络的目标切割网络。

在一种可能的实施方式中,在获取到卷积神经网络的第一子网络和第一输出集合后,上述根据所述第一子网络和所述第一输出集合获取卷积神经网络的目标切割网络,包括:

判断所述第一输出集合中的所有节点是否均在所述第一子网络中,若是则将所述第一子网络确定为所述目标切割网络;

若否则将所述第一子网络确定为所述目标切割网络,并遍历卷积神经网络中的节点,由不在所述第一子网络中的节点构成卷积神经网络的第二子网络;

针对所述第二子网络,重复执行s52至s54的操作,直至得到符合预设条件的所述目标切割网络,符合预设条件的所述目标切割网络与该目标切割网络的第一子网络重叠。

本申请具体实施例中,对第一输出集合中节点进行分析,若第一输出集合中的所有节点均在第一子网络中,表明第一子网络与卷积神经网络重叠,无需对卷积神经网络进行切割,此时,第一子网络为唯一的目标切割网络。若第一输出集合中有节点不在第一子网络中,则再遍历卷积神经网络的所有节点,将不在第一子网络中的节点组成第二子网络,如图7所示,若卷积神经网络中还存在节点d和节点e不在第一子网络中,则由节点d和节点e构成卷积神经网络的第二子网络,针对第二子网络,再执行获取第二子网络的第一子网络、获取第二子网络的输出集合、判断第二子网络的输出集合中的节点是否均在第二子网络的第一子网络中的步骤,若是则表示第二子网络的第一子网络与第二子网络重叠,不再对第二子网络进行切割,此时,第一子网络和第二子网络均为目标切割网络。若第二子网络的输出集合中有不在第二子网络的第一子网络中的节点,则将第二子网络的第一子网络从第二子网络中切割出来,此时,第二子网络的第一子网络同样是一个目标切割网络,继续遍历卷积神经网络的节点,将不在卷积神经网络的第一子网络和第二子网络的第一子网络中的节点组成新的网络,直至得到一个新的网络,它的第一子网络与它重叠,该新的网络也是一个目标切割网络。

s55,若所述目标切割网络中存在不相关联的网络块,则对所述目标切割网络进行切割,得到卷积神经网络相互独立的网络块,所述网络块的属性由所述网络块中的节点的属性定义。

本申请具体实施例中,针对步骤s54中切割出的卷积神经网络的至少一个目标切割网络,若目标切割网络中存在不相关联的网络块,则对目标切割网络执行以下操作:

a2:采用所述第一预设方法获取所述目标切割网络的第二输出集合;

b2:获取所述第二输出集合中的节点的依赖图,基于所述第二输出集合中的节点的依赖图得到目标依赖图;

c2:从所述目标切割网络中切割出所述目标依赖图,定义为第一网络块;

d2:判断所述目标切割网络中除所述第一网络块以外的网络是否为空集,若是则完成对所述目标切割网络的切割,得到卷积神经网络的所述网络块;

e2:若否则针对所述目标切割网络中除所述第一网络块以外的网络,重复执行a2至d2的操作,得到卷积神经网络的所述网络块。

本申请具体实施例中,采用第一预设方法,即获取网络输出的方法,获取目标切割网络的第二输出集合,具体为:遍历目标切割网络的所有节点,如果一个节点不为目标切割网络中任一节点的输入,那么此节点的输出即为目标切割网络的输出,该节点即为目标切割网络的输出节点,所有的输出节点构成第二输出集合。

分析第二输出集合中的节点:

若第二输出集合中只存在第一节点,则获取第一节点的第一依赖图,将第一依赖图确定为目标依赖图。获取第一节点的第一依赖图具体为遍历该第二输出集合中的节点,当遍历到第一节点时,将第一节点的输入节点作为第一节点的初始依赖图,然后将第一节点的输入节点的依赖图加入到第一节点的初始依赖图中构成第一节点的第一依赖图。

若第二输出集合中存在多个节点,则判断多个节点中的第二节点是否在第一依赖图中,若是则继续判断多个节点中剩余的节点,若否则获取第二节点的第二依赖图;

遍历第一依赖图和第二依赖图的所有节点,判断第一依赖图和第二依赖图中是否存在相同的节点,若是则将第一依赖图和第二依赖图合并,得到更新的第一依赖图,并继续判断所述多个节点中剩余的节点是否在更新的第一依赖图中;若第一依赖图和第二依赖图中不存在相同的节点,则继续判断所述多个节点中剩余的节点是否在所述第一依赖图或所述第二依赖图中。

遍历完所述第二输出集合中所有节点以确定出所述目标依赖图。

举例说明,若第二输出集合中存在三个节点,分别为:node_o1、node_o2和node_o3,首先获取node_o1的依赖图,定义为o1_dmap,然后判断node_o2是否在o1_dmap中,若是则继续判断node_o3是否在o1_dmap中,若否则获取node_o2的依赖图,定义为o2_dmap,遍历o1_dmap和o2_dmap,若o1_dmap和o2_dmap中有相同的节点,则将o1_dmap和o2_dmap合并,得到新的o1_dmap,继续判断node_o3是否在新的o1_dmap中,有则新的o1_dmap为目标依赖图,没有则获取node_o3的依赖图,定义为o3_dmap,判断o3_dmap与新的o1_dmap是否有相同的节点,若有则将o3_dmap与新的o1_dmap继续合并,再次得到一个新的o1_dmap,此时,再次得到的新的o1_dmap为目标依赖图;若o3_dmap与新的o1_dmap没有相同的节点,则新的o1_dmap与o3_dmap为相互独立的依赖图,将新的o1_dmap确定为目标依赖图。若o1_dmap和o2_dmap中没有相同的节点,则判断node_o3是否在o1_dmap或o2_dmap中,若在则o1_dmap和o2_dmap为两个相互独立的依赖图,将o1_dmap确定为目标依赖图,若不在则获取node_o3的依赖图,分别判断o3_dmap与o1_dmap、o3_dmap与o2_dmap有没有相同节点,有则将o3_dmap与o1_dmap或与o2_dmap合并得到新的o1_dmap或新的o2_dmap,在得到新的o1_dmap的情况下将新的o1_dmap确定为目标依赖图,在得到新的o2_dmap的情况下,将原o1_dmap确定为目标依赖图;若o3_dmap与o1_dmap、o3_dmap与o2_dmap均没有相同节点没有则将原o1_dmap确定为目标依赖图。

在确定出目标依赖图后,将目标依赖图(例如:原o1_dmap)从其所在的目标切割网络中切割出来,将切割出来的目标依赖图定义为第一网络块(block0)。同时,得到所述目标切割网络中除所述第一网络块以外的网络,即该目标切割网络剩下的网络。针对该目标切割网络剩下的网络,先判断剩下的网络是否为空集,若是则完成对该目标切割网络的切割,若否则对该目标切割网络剩下的网络再次执行获取输出集合、确定目标依赖图、切割目标依赖图的步骤,直至完成对该目标切割网络剩下的网络的切割,最终得到卷积神经网络相互独立的网络块,如图3所示的卷积神经网络的网络结构图被切割成如图8所示的第一网络块、第二网络块、第三网络块和第四网络块,每个网络块中只有一种属性的节点,每个网络块的属性即网络块中节点的属性,例如:第一网络块的属性为第二属性、第二网络块的属性为第三属性。

s56,根据所述网络块的属性将所述网络块输入相应的处理单元,使得所述处理单元对所述网络块中的节点的输入特征值进行处理,其中,所述输入特征值为所述待处理图像的特征值。

上述步骤s51、s56在图2所示的实施例中已有相关描述,为避免重复本实施例不再赘述,且能达到相同或相似的有益效果。

基于上述卷积神经网络的实现方法实施例的描述,本申请还提供一种卷积神经网络的实现装置,所述卷积神经网络的实现装置可以是运行于终端中的一个计算机程序(包括程序代码)。该卷积神经网络的实现装置可以执行图2或图5所示的方法。请参见图9,该装置包括:

网络获取模块91,用于在待处理图像输入预训练卷积神经网络时,获取卷积神经网络的网络结构图,基于所述网络结构图得到卷积神经网络各节点的深度和属性;

网络切割模块92,用于根据所述各节点的深度和属性对卷积神经网络进行切割,得到卷积神经网络的目标切割网络;

块切割模块93,用于若所述目标切割网络中存在不相关联的网络块,则对所述目标切割网络进行切割,得到卷积神经网络相互独立的网络块,所述网络块的属性由所述网络块中的节点的属性定义;

网络处理模块94,用于根据所述网络块的属性将所述网络块块输入相应的处理单元,使得所述处理单元对所述网络块中的节点的输入特征值进行处理,其中,所述输入特征值为所述待处理图像的特征值。

可选的,网络切割模块92在根据所述各节点的深度和属性对卷积神经网络进行切割,得到卷积神经网络的目标切割网络方面,具体用于:

a1:根据所述各节点的深度和属性获取卷积神经网络的第一子网络;

b1:采用第一预设方法获取卷积神经网络的第一输出集合;

c1:根据所述第一子网络和所述第一输出集合获取所述目标切割网络。

可选的,网络切割模块92在根据所述各节点的深度和属性获取卷积神经网络的第一子网络方面,具体用于:

从深度最小的节点开始,按照深度递增的方式读取所述各节点的属性;

若读取到当前节点的属性不为第一属性,则停止读取,由属性为第一属性的节点及所述当前节点构成第一初始子网络,以所述当前节点的属性定义所述第一初始子网络的属性;

遍历卷积神经网络中未在所述第一初始子网络中的节点,若存在与所述第一初始子网络的属性相同,且输入节点都在所述第一初始子网络中,且输入节点的属性与所述第一初始子网络的属性也相同的节点,则将该节点加入到第一初始子网络中,以得到所述第一子网络。

可选的,网络切割模块92在根据所述第一子网络和所述第一输出集合获取所述目标切割网络方面,具体用于:

判断所述第一输出集合中的所有节点是否均在所述第一子网络中,若是则将所述第一子网络确定为所述目标切割网络;

若否则将所述第一子网络确定为所述目标切割网络,并遍历卷积神经网络中的节点,由不在所述第一子网络中的节点构成卷积神经网络的第二子网络;

针对所述第二子网络,重复执行a1至c1的操作,直至得到符合预设条件的所述目标切割网络,符合预设条件的所述目标切割网络与该目标切割网络的第一子网络重叠。

可选的,块切割模块93在对所述目标切割网络进行切割,得到卷积神经网络相互独立的网络块方面,具体用于:

a2:采用所述第一预设方法获取所述目标切割网络的第二输出集合;

b2:获取所述第二输出集合中的节点的依赖图,基于所述第二输出集合中的节点的依赖图得到目标依赖图;

c2:从所述目标切割网络中切割出所述目标依赖图,定义为第一网络块;

d2:判断所述目标切割网络中除所述第一网络块以外的网络是否为空集,若是则完成对所述目标切割网络的切割,得到卷积神经网络的所述网络块;

e2:若否则针对所述目标切割网络中除所述第一网络块以外的网络,重复执行a2至d2的操作,得到卷积神经网络的所述网络块。

可选的,块切割模块93在获取所述第二输出集合中的节点的依赖图,基于所述第二输出集合中的节点的依赖图得到目标依赖图方面,具体用于:

若所述第二输出集合中只存在第一节点,则获取所述第一节点的第一依赖图,将所述第一依赖图确定为所述目标依赖图;

若所述第二输出集合中存在多个节点,则判断所述多个节点中的第二节点是否在所述第一依赖图中,若是则继续判断所述多个节点中剩余的节点,若否则获取所述第二节点的第二依赖图;

遍历所述第一依赖图和所述第二依赖图的所有节点,判断所述第一依赖图和所述第二依赖图中是否存在相同的节点,若是则将所述第一依赖图和所述第二依赖图合并,得到更新的第一依赖图,并继续判断所述多个节点中剩余的节点是否在更新的第一依赖图中;若所述第一依赖图和所述第二依赖图中不存在相同的节点,则继续判断所述多个节点中剩余的节点是否在所述第一依赖图或所述第二依赖图中;

遍历完所述第二输出集合中所有节点以确定出所述目标依赖图。

可选的,网络获取模块91在基于所述网络结构图得到卷积神经网络各节点的深度和属性方面,具体用于:

从根节点开始遍历所述网络结构图,按照所述网络结构图中所述各节点的依赖关系得到所述各节点的深度;

按照预设类型的属性定义所述各节点的属性。

根据本申请的一个实施例,图9所示的卷积神经网络的实现装置的各个模块可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)模块还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本发明的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本发明的其它实施例中,卷积神经网络的实现装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。

请参见图10,图10为本申请实施例提供的一种电子设备的结构示意图,如图10所示,包括:存储器1001,用于存储计算机程序;处理器1002,用于调用存储器1001存储的计算机程序实现上述卷积神经网络的实现方法的实施例中的步骤;输入输出接口1003,用于进行输入输出,该输入输出接口1003可以为一个或多个;可以理解的,电子设备中各部分分别与总线相连。

其中,处理器1002具体用于调用计算机程序执行如下步骤:

在待处理图像输入预训练卷积神经网络时,获取卷积神经网络的网络结构图,基于所述网络结构图得到卷积神经网络各节点的深度和属性;

根据所述各节点的深度和属性对卷积神经网络进行切割,得到卷积神经网络的目标切割网络;

若所述目标切割网络中存在不相关联的网络块,则对所述目标切割网络进行切割,得到卷积神经网络相互独立的网络块,所述网络块的属性由所述网络块中的节点的属性定义;

根据所述网络块的属性将所述网络块输入相应的处理单元,使得所述处理单元对所述网络块中的节点的输入特征值进行处理,其中,所述输入特征值为所述待处理图像的特征值。

可选的,处理器1002执行所述根据所述各节点的深度和属性对卷积神经网络进行切割,得到卷积神经网络的目标切割网络,包括:

a1:根据所述各节点的深度和属性获取卷积神经网络的第一子网络;

b1:采用第一预设方法获取卷积神经网络的第一输出集合;

c1:根据所述第一子网络和所述第一输出集合获取所述目标切割网络。

可选的,处理器1002执行所述根据所述各节点的深度和属性获取卷积神经网络的第一子网络,包括:

从深度最小的节点开始,按照深度递增的方式读取所述各节点的属性;

若读取到当前节点的属性不为第一属性,则停止读取,由属性为第一属性的节点及所述当前节点构成第一初始子网络,以所述当前节点的属性定义所述第一初始子网络的属性;

遍历卷积神经网络中未在所述第一初始子网络中的节点,若存在与所述第一初始子网络的属性相同,且输入节点都在所述第一初始子网络中,且输入节点的属性与所述第一初始子网络的属性也相同的节点,则将该节点加入到第一初始子网络中,以得到所述第一子网络。

可选的,处理器1002执行所述根据所述第一子网络和所述第一输出集合获取所述目标切割网络,包括:

判断所述第一输出集合中的所有节点是否均在所述第一子网络中,若是则将所述第一子网络确定为所述目标切割网络;

若否则将所述第一子网络确定为所述目标切割网络,并遍历卷积神经网络中的节点,由不在所述第一子网络中的节点构成卷积神经网络的第二子网络;

针对所述第二子网络,重复执行a1至c1的操作,直至得到符合预设条件的所述目标切割网络,符合预设条件的所述目标切割网络与该目标切割网络的第一子网络重叠。

可选的,处理器1002执行所述对所述目标切割网络进行切割,得到卷积神经网络相互独立的网络块,包括:

a2:采用所述第一预设方法获取所述目标切割网络的第二输出集合;

b2:获取所述第二输出集合中的节点的依赖图,基于所述第二输出集合中的节点的依赖图得到目标依赖图;

c2:从所述目标切割网络中切割出所述目标依赖图,定义为第一网络块;

d2:判断所述目标切割网络中除所述第一网络块以外的网络是否为空集,若是则完成对所述目标切割网络的切割,得到卷积神经网络的所述网络块;

e2:若否则针对所述目标切割网络中除所述第一网络块以外的网络,重复执行a2至d2的操作,得到卷积神经网络的所述网络块。

可选的,处理器1002执行所述获取所述第二输出集合中的节点的依赖图,基于所述第二输出集合中的节点的依赖图得到目标依赖图,包括:

若所述第二输出集合中只存在第一节点,则获取所述第一节点的第一依赖图,将所述第一依赖图确定为所述目标依赖图;

若所述第二输出集合中存在多个节点,则判断所述多个节点中的第二节点是否在所述第一依赖图中,若是则继续判断所述多个节点中剩余的节点,若否则获取所述第二节点的第二依赖图;

遍历所述第一依赖图和所述第二依赖图的所有节点,判断所述第一依赖图和所述第二依赖图中是否存在相同的节点,若是则将所述第一依赖图和所述第二依赖图合并,得到更新的第一依赖图,并继续判断所述多个节点中剩余的节点是否在更新的第一依赖图中;若所述第一依赖图和所述第二依赖图中不存在相同的节点,则继续判断所述多个节点中剩余的节点是否在所述第一依赖图或所述第二依赖图中;

遍历完所述第二输出集合中所有节点以确定出所述目标依赖图。

可选的,处理器1002执行所述基于所述网络结构图得到卷积神经网络各节点的深度和属性,包括:

从根节点开始遍历所述网络结构图,按照所述网络结构图中所述各节点的依赖关系得到所述各节点的深度;

按照预设类型的属性定义所述各节点的属性。

示例性的,上述电子设备可以是计算机、笔记本电脑、平板电脑、掌上电脑、服务器等设备。电子设备可包括但不仅限于处理器1002、存储器1001、输入输出接口1003。本领域技术人员可以理解,所述示意图仅仅是电子设备的示例,并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件。

需要说明的是,由于电子设备的处理器1002执行计算机程序时实现上述的卷积神经网络的实现方法中的步骤,因此上述卷积神经网络的实现方法的实施例均适用于该电子设备,且均能达到相同或相似的有益效果。

本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述的卷积神经网络的实现方法中的步骤。

示例性的,计算机可读存储介质的计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。

需要说明的是,由于计算机可读存储介质的计算机程序被处理器执行时实现上述的卷积神经网络的实现方法中的步骤,因此上述卷积神经网络的实现方法的所有实施例均适用于该计算机可读存储介质,且均能达到相同或相似的有益效果。

以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。


技术特征:

1.一种卷积神经网络的实现方法,其特征在于,所述方法包括:

在待处理图像输入预训练卷积神经网络时,获取卷积神经网络的网络结构图,基于所述网络结构图得到卷积神经网络各节点的深度和属性;

根据所述各节点的深度和属性对卷积神经网络进行切割,得到卷积神经网络的目标切割网络;

若所述目标切割网络中存在不相关联的网络块,则对所述目标切割网络进行切割,得到卷积神经网络相互独立的网络块,所述网络块的属性由所述网络块中的节点的属性定义;

根据所述网络块的属性将所述网络块输入相应的处理单元,使得所述处理单元对所述网络块中的节点的输入特征值进行处理,其中,所述输入特征值为所述待处理图像的特征值。

2.根据权利要求1所述的方法,其特征在于,所述根据所述各节点的深度和属性对卷积神经网络进行切割,得到卷积神经网络的目标切割网络,包括:

a1:根据所述各节点的深度和属性获取卷积神经网络的第一子网络;

b1:采用第一预设方法获取卷积神经网络的第一输出集合;

c1:根据所述第一子网络和所述第一输出集合获取所述目标切割网络。

3.根据权利要求2所述的方法,其特征在于,所述根据所述各节点的深度和属性获取卷积神经网络的第一子网络,包括:

从深度最小的节点开始,按照深度递增的方式读取所述各节点的属性;

若读取到当前节点的属性不为第一属性,则停止读取,由属性为第一属性的节点及所述当前节点构成第一初始子网络,以所述当前节点的属性定义所述第一初始子网络的属性;

遍历卷积神经网络中未在所述第一初始子网络中的节点,若存在与所述第一初始子网络的属性相同,且输入节点都在所述第一初始子网络中,且输入节点的属性与所述第一初始子网络的属性也相同的节点,则将该节点加入到第一初始子网络中,以得到所述第一子网络。

4.根据权利要求2所述的方法,其特征在于,所述根据所述第一子网络和所述第一输出集合获取所述目标切割网络,包括:

判断所述第一输出集合中的所有节点是否均在所述第一子网络中,若是则将所述第一子网络确定为所述目标切割网络;

若否则将所述第一子网络确定为所述目标切割网络,并遍历卷积神经网络中的节点,由不在所述第一子网络中的节点构成卷积神经网络的第二子网络;

针对所述第二子网络,重复执行a1至c1的操作,直至得到符合预设条件的所述目标切割网络,符合预设条件的所述目标切割网络与该目标切割网络的第一子网络重叠。

5.根据权利要求2所述的方法,其特征在于,所述对所述目标切割网络进行切割,得到卷积神经网络相互独立的网络块,包括:

a2:采用所述第一预设方法获取所述目标切割网络的第二输出集合;

b2:获取所述第二输出集合中的节点的依赖图,基于所述第二输出集合中的节点的依赖图得到目标依赖图;

c2:从所述目标切割网络中切割出所述目标依赖图,定义为第一网络块;

d2:判断所述目标切割网络中除所述第一网络块以外的网络是否为空集,若是则完成对所述目标切割网络的切割,得到卷积神经网络的所述网络块;

e2:若否则针对所述目标切割网络中除所述第一网络块以外的网络,重复执行a2至d2的操作,得到卷积神经网络的所述网络块。

6.根据权利要求5所述的方法,其特征在于,所述获取所述第二输出集合中的节点的依赖图,基于所述第二输出集合中的节点的依赖图得到目标依赖图,包括:

若所述第二输出集合中只存在第一节点,则获取所述第一节点的第一依赖图,将所述第一依赖图确定为所述目标依赖图;

若所述第二输出集合中存在多个节点,则判断所述多个节点中的第二节点是否在所述第一依赖图中,若是则继续判断所述多个节点中剩余的节点,若否则获取所述第二节点的第二依赖图;

遍历所述第一依赖图和所述第二依赖图的所有节点,判断所述第一依赖图和所述第二依赖图中是否存在相同的节点,若是则将所述第一依赖图和所述第二依赖图合并,得到更新的第一依赖图,并继续判断所述多个节点中剩余的节点是否在更新的第一依赖图中;若所述第一依赖图和所述第二依赖图中不存在相同的节点,则继续判断所述多个节点中剩余的节点是否在所述第一依赖图或所述第二依赖图中;

遍历完所述第二输出集合中所有节点以确定出所述目标依赖图。

7.根据权利要求1所述的方法,其特征在于,所述基于所述网络结构图得到卷积神经网络各节点的深度和属性,包括:

从根节点开始遍历所述网络结构图,按照所述网络结构图中所述各节点的依赖关系得到所述各节点的深度;

按照预设类型的属性定义所述各节点的属性。

8.一种卷积神经网络的实现装置,其特征在于,所述装置包括:

网络获取模块,用于在待处理图像输入预训练卷积神经网络时,获取卷积神经网络的网络结构图,基于所述网络结构图得到卷积神经网络各节点的深度和属性;

网络切割模块,用于根据所述各节点的深度和属性对卷积神经网络进行切割,得到卷积神经网络的目标切割网络;

块切割模块,用于若所述目标切割网络中存在不相关联的网络块,则对所述目标切割网络进行切割,得到卷积神经网络相互独立的网络块,所述网络块的属性由网络块中的节点的属性定义;

网络处理模块,用于根据所述网络块的属性将所述网络块块输入相应的处理单元,使得所述处理单元对所述网络块中的节点的输入特征值进行处理,其中,所述输入特征值为所述待处理图像的特征值。

9.一种电子设备,其特征在于,所述节点设备包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述的卷积神经网络的实现方法中的步骤。

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的卷积神经网络的实现方法中的步骤。

技术总结
本申请提供了一种卷积神经网络的实现方法、装置、电子设备及存储介质,该方法包括:在输入待处理图像时,获取卷积神经网络的网络结构图,基于所述网络结构图得到卷积神经网络各节点的深度和属性;根据所述各节点的深度和属性对卷积神经网络进行切割,得到卷积神经网络的目标切割网络;若所述目标切割网络中存在不相关联的网络块,则对所述目标切割网络进行切割,得到卷积神经网络相互独立的网络块;根据所述网络块的属性将所述网络块块输入相应的处理单元进行特征值的处理。本申请实施例有利于提高卷积神经网络的处理效率。

技术研发人员:杨海辉
受保护的技术使用者:深圳云天励飞技术有限公司
技术研发日:2020.02.11
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-15923.html

最新回复(0)