CN112215329B - 基于神经网络的卷积计算方法及装置 - Google Patents
基于神经网络的卷积计算方法及装置 Download PDFInfo
- Publication number
- CN112215329B CN112215329B CN201910613642.1A CN201910613642A CN112215329B CN 112215329 B CN112215329 B CN 112215329B CN 201910613642 A CN201910613642 A CN 201910613642A CN 112215329 B CN112215329 B CN 112215329B
- Authority
- CN
- China
- Prior art keywords
- convolution kernel
- convolution
- type
- coefficient
- neural network
- 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
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
-
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Abstract
本发明提供一种基于神经网络的卷积计算方法及装置。本发明实施例通过将PnD型n维网络结构中每一n维卷积核的n维卷积核系数分解为第一类卷积核系数和第二类卷积核系数;将第二类卷积核系数中每一个卷积核系数进行转换得到目标卷积核系数,将第一类卷积核系数中的各参考卷积核系数、以及第二类卷积核系数中各目标卷积核系数分别与n维特征图进行卷积运算得到目标卷积结果,使得在支持维度较低的神经网络芯片能够部署维度较高的PnD型n维网络结构,不需要改变神经网络芯片硬件结构,既能够具有较快的处理速度,又获得了较高的算法性能,并且成本低。
Description
技术领域
本发明涉及机器学习技术领域,尤其涉及一种基于神经网络的卷积计算方法及装置。
背景技术
卷积神经网络(Convolutional Neural Networks,CNN)是一种重要的深度学习方法,应用广泛。卷积神经网络的算法性能与卷积神经网络的维度相关。多维卷积神经网络(本文中指大于二维的卷积神经网络)的算法性能高于二维卷积神经网络的算法性能。
当前,卷积神经网络的实现方式有两种,一种是软件方式,另一种是硬件方式。相比于利用软件方式实现的卷积神经网络,利用硬件方式实现的神经网络芯片具有更快的处理速度。相关技术中,一些神经网络芯片仅仅支持某类网络结构,比如二维(2D)网络结构,不支持多维网络结构,这限制了卷积神经网络的应用。
发明内容
为克服相关技术中存在的问题,本发明提供了一种基于神经网络的卷积计算方法及装置。
根据本发明实施例的第一方面,提供一种基于神经网络的卷积计算方法,所述方法包括:
将PnD型n维网络结构中每一n维卷积核(k1*k2*……kn-1*kn)的n维卷积核系数分解为第一类卷积核系数和第二类卷积核系数;所述n为大于2的正整数,所述第一类卷积核系数包括神经网络芯片支持的至少一个参考卷积核系数,所述神经网络芯片用于执行所述n维卷积核的卷积运算,所述第二类卷积核系数包括所述神经网络芯片不支持的卷积核系数;
将所述第二类卷积核系数中每一个卷积核系数进行转换得到所述神经网络芯片支持的目标卷积核系数;
将所述第一类卷积核系数中的各参考卷积核系数、以及所述第二类卷积核系数中各目标卷积核系数分别与n维特征图进行卷积运算得到目标卷积结果。
根据本发明实施例的第一方面,提供一种基于神经网络的卷积计算装置,所述装置包括:
分解模块,用于将PnD型n维网络结构中每一n维卷积核(k1*k2*……kn-1*kn)的n维卷积核系数分解为第一类卷积核系数和第二类卷积核系数;所述n为大于2的正整数,所述第一类卷积核系数包括所述神经网络芯片支持的至少一个参考卷积核系数,所述第二类卷积核系数包括所述神经网络芯片不支持的卷积核系数;
转换模块,用于将所述第二类卷积核系数中每一个卷积核系数进行转换得到所述神经网络芯片支持的目标卷积核系数;
运算模块,用于将所述第一类卷积核系数中的各参考卷积核系数、以及所述第二类卷积核系数中各目标卷积核系数分别与n维特征图进行卷积运算得到目标卷积结果。
本发明的实施例提供的技术方案可以包括以下有益效果:
本发明实施例中,通过将PnD型n维网络结构中每一n维卷积核的n维卷积核系数分解为第一类卷积核系数和第二类卷积核系数;将第二类卷积核系数中每一个卷积核系数进行转换得到神经网络芯片支持的目标卷积核系数,将第一类卷积核系数中的各参考卷积核系数、以及第二类卷积核系数中各目标卷积核系数分别与n维特征图进行卷积运算得到目标卷积结果,使得在支持维度较低的神经网络芯片能够部署维度较高的PnD型n维网络结构,不需要改变神经网络芯片硬件结构,既能够具有较快的处理速度,又获得了较高的算法性能,并且成本低。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本发明的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是本发明实施例提供的基于神经网络的卷积计算方法的应用场景示例图。
图2是本发明实施例提供的基于神经网络的卷积计算方法的流程示例图。
图3为P3D卷积的分解示例图。
图4为Element-wise add过程示意图。
图5是本发明实施例提供的基于神经网络的卷积计算装置的功能方块图。
图6是本发明实施例提供的基于神经网络的卷积计算设备的一个硬件结构图。
图7是PnD卷积核系数的分解示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
在卷积神经网络应用中,神经网络芯片由于具有更快的处理速度,因此成为应用中的首选,特别是在一些对实时性要求较高的应用场景中,更倾向于采用神经网络芯片来实现卷积神经网络。
然而,由于神经网络芯片的硬件结构是固定的,在设计时没有考虑扩展,因此一种神经网络芯片往往只支持某类网络结构,而不能支持该类网络结构以外的其他网络结构。例如,二维(2D)神经网络处理器仅支持二维网络结构,不支持三维及以上的多维网络结构。这样,如果采用神经网络芯片来实现卷积神经网络,就只能将卷积神经网络所采用的网络结构限制在其支持的网络结构范围内。
通常,多维卷积神经网络相比2D卷积神经网络具有更好的算法性能。但由于2D神经网络芯片不支持多维卷积神经网络,因此无法将多维卷积神经网络部署在2D神经网络芯片上,只能通过软件方式实现多维卷积神经网络,但软件方式又存在处理速度不够快的缺陷。
可见,相关技术不能做到同时兼顾处理速度和算法性能。本发明实施例提供的基于神经网络的卷积计算方法可以使神经网络芯片能够部署其不支持的多维网络结构,解决处理速度与算法性能之间的矛盾,兼顾处理速度和算法性能。
本发明实施例提供的基于神经网络的卷积计算方法可以应用于智能监控领域中的行为分析及其相关产品中,例如图1所示的应用设备。
图1是本发明实施例提供的基于神经网络的卷积计算方法的应用场景示例图。图1中,应用设备上具有部署多维卷积神经网络模型的二维神经网络芯片。视频采集设备采集视频数据后,将视频数据发送给应用设备。应用设备中的二维神经网络芯片,利用部署的多维卷积神经网络模型对视频数据进行分析,得到分析结果。
其中,应用设备可以是监控设备。
在其他实施例中,上述的视频采集设备也可以集成在应用设备中。
接下来对本发明实施例提供的基于神经网络的卷积计算方法进行详细说明。
图2是本发明实施例提供的基于神经网络的卷积计算方法的流程示例图。如图2所示,该方法可以包括以下步骤:
S201,将PnD型n维网络结构中每一n维卷积核(k1*k2*……kn-1*kn)的n维卷积核系数分解为第一类卷积核系数和第二类卷积核系数;n为大于2的正整数,第一类卷积核系数包括神经网络芯片支持的至少一个参考卷积核系数,神经网络芯片用于执行n维卷积核的卷积运算,第二类卷积核系数包括神经网络芯片不支持的卷积核系数。
S202,将第二类卷积核系数中每一个卷积核系数进行转换得到神经网络芯片支持的目标卷积核系数。
例如,n为3时,目标卷积核系数可以为二维卷积核系数。
S203,将第一类卷积核系数中的各参考卷积核系数、以及第二类卷积核系数中各目标卷积核系数分别与n维特征图(f1*f2*……fn-1*fn)进行卷积运算得到目标卷积结果。
卷积运算的输入有两个,一个输入是特征图(feature map),另一个输入是卷积核(kernel)。
PnD卷积是相对CnD卷积而言的,PnD卷积是将卷积核k1*k2…*kn的卷积分解为卷积核1*k2*k3……*kn的卷积和卷积核k1*1*…*1的卷积组合。例如,在P3D卷积中,若feature_map(维度为(t,h,w))要做kt*kh*kw的P3D卷积,卷积被分解为1*kh*kw和kt*1*1两个步骤的卷积。
请参见图3。图3为P3D卷积的分解示例图。在P3D卷积中,特征图的维度为(t,n,c,h,w),卷积核的维度为(Kt,Km,c,Kh,Kw)。
图3中,特征图t0-t3的维度为(4,1,100,5,5)(对应(t,n,c,h,w)),卷积核(kernel)为3x3x3(对应(Kt,Kh,Kw)),pad_t=pad_w=pad_h=0(pad即填充参数PAD,表示在输入特征图的每一边增加的像素数量),stride_t=stride_h=stride_w=1(stride即加窗参数STRIDE,表示卷积核移动的步长,)。图3中,特征图与卷积核的P3D卷积运算过程如下:
首先,将t0-t3这四个特征图(1,100,5,5)分别与卷积核(1,100,3,3)进行卷积,得到卷积结果activation1(1,1,3,3);
然后,将卷积结果activation1(1,1,3,3)分为2组,每一组与时间维度的卷积核3x1x1进行卷积,得到卷积结果activation2,activation2维度为(2,1,1,3,3)。
可见,图3的三维卷积运算被转换为两个步骤的二维卷积运算,并且,第一个步骤卷积运算的输出activation1是第二个步骤卷积运算的输入数据。
在步骤S201中,(k1*k2*……kn-1*kn)用于表示卷积核系数。kn表示卷积核的第n个维度上的数值。(k1*k2*……kn-1*kn)也可以表示为(k1,k2,……kn-1,kn)。相应地,本文中,特征图可以表示为(f1*f2*……fn-1*fn)或(f1,f2,……fn-1,fn)。
以P3D型三维网络结构为例。P3D型三维网络结构中,卷积核系数为(Kt*Km*c*Kh*Kw),Kt表示时间维度,Km表示输出卷积核数量,c表示通道数,Kh表示卷积核高度,Kw表示卷积核宽度。例如,n维数据(k1*k2*……kn-1*kn)为(2*1*2*3*4)的卷积核系数为:时间维度Kt=2,输出卷积核数量Km=1,通道数c=2,卷积核高度Kh=3,卷积核宽度Kw=4。
将PnD型n维网络结构中每一n维卷积核的n维卷积核系数(k1*k2*……kn-1*kn)分解为第一类卷积核系数和第二类卷积核系数后,第一类卷积核系数是能够被神经网络芯片支持的二维卷积核系数,第二类卷积核系数可以被转换为神经网络芯片支持的二维卷积核系数。
举例说明。图7是PnD卷积核系数的分解示意图。请参见图7,对PnD卷积核系数(k1*k2*……kn-1*kn)的分解过程如下:
第1次,将k1*k2*……kn-1*kn分解为1*k2*……kn-1*kn和k1*1*……*1*1两个卷积核系数;
第2次,在第1次分解的基础上,将1*k2*……kn-1*kn又分解为1*1*k3*……kn-1*kn和1*k2*…*1*1两个卷积核系数;
第3次,在第2次分解的基础上,将1*1*k3*……kn-1*kn分解为1*1*1*……kn-1*kn和1*1*k3…*1*1两个卷积核系数;
……
依次类推。经过n-2次分解后,分解结束。
分解后的卷积核系数有1*1*……kn-1*kn、1*1*……kn-2*1*1、1*1*……kn-3*1*1*1……1*k2*…*1*1、k1*1*……*1*1。
分解后的多个卷积核系数中,1*1*……kn-1*kn和k1*1*……*1*1为第一类卷积核系数,1*1*……kn-2*1*1、1*1*……kn-3*1*1*1……1*k2*…*1*1为第二类卷积核系数。
例如,当n=3时,k1*k2*k3被分解为1*k2*k3和k1*1*1两个卷积核系数,该两个卷积核系数是第一类卷积核系数。
当n=4时,k1*k2*k3*k4被分解为1*1*k3*k4、1*k2*1*1和k1*1*1*1三个卷积核系数,其中,1*1*k3*k4和k1*1*1*1这两个卷积核系数是第一类卷积核系数,1*k2*1*1为第二类卷积核系数。
在步骤S202中,通过将第二类卷积核系数中每一个卷积核系数进行转换得到目标卷积核系数,使得PnD型n维网络结构中每一n维卷积核的n维卷积核系数(k1*k2*……kn-1*kn)被转换为神经网络芯片支持的多个卷积核系数,从而使得在支持维度较低的神经网络芯片能够部署维度较高的PnD型n维网络结构,在不需要改变神经网络芯片硬件结构的基础上获得更好的算法性能。
在步骤S203中,第一类卷积核系数和目标卷积核系数都是神经网络芯片支持的卷积核系数,因而在神经网络芯片上可以运行第一类卷积核系数和目标卷积核系数对应的卷积运算,如此,就实现了PnD型n维网络结构在处理速度快的神经网络芯片上的部署,拓展了卷积神经网络的应用。由于第一类卷积核系数和目标卷积核系数都是由PnD型n维网络结构中的卷积核转换而来,因此第一类卷积核系数和目标卷积核系数对应的卷积运算的组合与PnD型n维网络结构具有相同的算法性能,因此既能够具有较快的处理速度,又获得了较高的算法性能。
在一个示例性的实现过程中,神经网络芯片支持的目标卷积核系数包括:
卷积核的n个维度上的数值只有第一位不为指定值、或者,n个维度上的数值只有最后两位或者最后一位不为指定值,或者,n个维度上的数值均为指定值,指定值为1。
例如,1*1*1……*kn-1*kn和k1*1*……1*1均为神经网络芯片支持的卷积核系数。
在一个示例性的实现过程中,步骤S202中,将第二类卷积核系数中每一个卷积核系数进行转换得到神经网络芯片支持的目标卷积核系数,包括:
对第二类卷积核系数中每一卷积核系数进行数据重排转换得到目标卷积核系数,目标卷积核系数中的不为1的维度值的排序与所述第一类卷积核系数中不为1的维度值的排序相同。
例如,以第x个维度上的数值为kx、其他维度上的数值为1的卷积核系数(1*1*…*kx*……1*1)为例。将(1*1*…*kx*……1*1)中的第1个维度的数值1与第x个维度的数值kx互相调换位置,转换为(kx*1*…*1*……1*1),则(kx*1*…*1*……1*1)为(1*1*…*kx*……1*1)的目标卷积核系数。或者,也可以将(1*1*…*kx*……1*1)中的第2个维度的数值1与第x个维度的数值kx互相调换位置,转换为(1*kx*…*1*……1*1),则(1*kx*…*1*……1*1)也是(1*1*…*kx*……1*1)的目标卷积核系数。
在上述基础上,在一个示例性的实现过程中,还包括:按照所述第二类卷积核系数中卷积核系数进行数据重排转换的方式,对特征图(f1*f2*……fn-1*fn)进行数据重排转换,得到与目标卷积核系数对应的目标特征图;步骤S203可以包括:
将每一参考卷积核系数与对应的n维特征图(f1*f2*……fn-1*fn)进行卷积运算得到参考卷积结果;
将每一目标卷积核系数与其对应的目标特征图进行卷积运算得到候选卷积结果;
依据参考卷积结果和候选卷积结果确定最终的目标卷积结果。
对特征图(f1*f2*……fn-1*fn)的数据重排转换说明如下。
例如,当将卷积核系数(1*1*…*kx*……1*1)中的第1个维度的数值1与第x个维度的数值kx互相调换位置,转换为(kx*1*…*1*……1*1)时,对特征图(f1*f2*…fx…fn-1*fn)进行维度转换和数据重排转换的方式是:将特征图(f1*f2*…fx…fn-1*fn)的第1个维度的数值f1与第x个维度的数值fx互相调换位置,转换为(fx*f2*…f1…fn-1*fn)。(fx*f2*…f1…fn-1*fn)为与卷积核系数(kx*1*…*1*……1*1)对应的特征图。
再比如,当将卷积核系数(1*1*…*kx*……1*1)中的第2个维度的数值1与第x个维度的数值kx互相调换位置,转换为(1*kx*…*1*……1*1)时,对特征图(f1*f2*…fx…fn-1*fn)进行维度转换和数据重排转换的方式是:将特征图(f1*f2*…fx…fn-1*fn)的第2个维度的数值f2与第x个维度的数值fx互相调换位置,转换为(f1*fx*…f2…fn-1*fn)。(f1*fx*…f2…fn-1*fn)为与卷积核系数(kx*1*…*1*……1*1)对应的特征图。
对参考卷积核系数与(f1*f2*……fn-1*fn)的卷积运算说明如下。
以参考卷积核系数(1*1*1……*kn-1*kn)为例。(f1*f2*……fn-1*fn)与(1*1*1……*kn-1*kn)的卷积运算可直接被分解为(f1*f2*……fn-2)个特征图维度为(Cin,fn-1*fn)和卷积核维度为(Cout,Cin,kn-1,kn)的2D卷积。
对目标卷积核系数与其对应的特征图进行卷积运算的卷积运算说明如下。
举例说明。本示例中,特征图维度为(5,1,100,5,5)(对应维度(t,n,c,h,w)),特征图包括5个数据块:t0、t1、t2、t3、t4,数据块t0、t1、t2、t3、t4的维度为(100,5,5);卷积核系数为(3,1,100,3,3)(对应维度(Kt,Km,c,Kh,Kw)),该卷积核系数对应3个数据块:p0、p1、p2,数据块p0、p1、p2的维度为(100,3,3)。则特征图与卷积核系数的卷积运算过程如下:
步骤一,将特征图(5,1,100,5,5)在维度t转换为5个二维特征图:t0、t1、t2、t3、t4;将卷积核系数(3,1,100,3,3)在维度Kt转换为3个二维卷积系数:p0、p1、p2;
步骤二,二维特征图t0、t1、t2、t3、t4分别与二维卷积系数p0进行二维卷积,结果分别为a00、a01、a02、a03、a04;二维特征图t0、t1、t2、t3、t4分别与二维卷积系数p1进行二维卷积,结果分别为a10、a11、a12、a13、a14;二维特征图t0、t1、t2、t3、t4分别与二维卷积系数p2进行二维卷积,结果分别为a20、a21、a22、a23、a24;则在维度t,得到了15个卷积结果:a00、a01、a02、a03、a04、a10、a11、a12、a13、a14、a20、a21、a22、a23、a24;
步骤三,对该15个二维卷积结果进行分组。假设组数为X,则X的计算公式如公式(1)所示:
X=((fn-2+PADn-2*2–(kn-2+1)/2)/STRIDEn-2) (1)
本示例中,fn-2的维度值为5,kn-2的维度值为3,PADn-2为在维度t上的填充参数,STRIDEn-2为在维度t上的加窗参数。
假设PADn-2=0,STRIDEn-2=1,则根据公式(1),可以得到X=((5+0*2-(3+1)/2)/1)=3。
将上述15个二维卷积结果分为3组。分组结果为:a00、a11、a22为一组;a01、a12、a23为一组;a02、a13、a24为一组。
步骤四,对于各分组内的数据块,执行elemenet-wise加操作,即对a00、a11、a22这3个结果执行elemenet-wise加操作,得到r0;对a01、a12、a23这3个结果执行elemenet-wise加操作,得到r1;对a02、a13、a24这3个结果执行elemenet-wise加操作,得到r2;则该维度为(5,1,100,5,5)的特征图与维度为(3,1,100,3,3)的卷积核系数的卷积结果为:r0、r1、r2。
Element-wise层是卷积神经网络中很常见的一层,可以选择add(加)、max(求最大)两个操作中的一个。具体操作如下:输入两个数据块,如果进行Element-wise add,会把两个数据块的对应点加在一起得到的和作为输出数据块中对应点的值。Element-wise max是把两个数据块对应点中的大值作为输出数据块中对应点的值。
二维卷积神经网络中,数据块由四个维度组成(n,c,h,w),其中w表示数据块的宽度,h表示数据块的高度,c表示数据块的通道数,n表示数据块的数量(即batch数)。
图4为Element-wise add过程示意图。图4中A、B是两个维度相同的数据块,对应维度是(5,100,5,5),对应Element-wise add操作是将A、B两个相同维度的数据块中相同位置的点相加,得到维度相同的C数据块。
在一个示例性的实现过程中,依据参考卷积结果和候选卷积结果确定最终的目标卷积结果,包括:
依据每一维度卷积系数参与卷积运算时的配置参数对各候选卷积结果进行分组;配置参数至少包括:加窗参数STRIDE、填充参数PAD;
对每一组中的卷积结果进行多次对应点相加得到每组的运算结果;
依据参考卷积结果、各组的运算结果确定最终的目标卷积结果。
本发明实施例提供的基于神经网络的卷积计算方法,通过将PnD型n维网络结构中每一n维卷积核(k1*k2*……kn-1*kn)的n维卷积核系数分解为第一类卷积核系数和第二类卷积核系数;将第二类卷积核系数中每一个卷积核系数进行转换得到神经网络芯片支持的目标卷积核系数,将第一类卷积核系数中的各参考卷积核系数、以及第二类卷积核系数中各目标卷积核系数分别与n维特征图进行卷积运算得到目标卷积结果,使得在支持维度较低的神经网络芯片能够部署维度较高的PnD型n维网络结构,不需要改变神经网络芯片硬件结构,既能够具有较快的处理速度,又获得了较高的算法性能,并且成本低。
基于上述的基于神经网络的卷积计算方法实施例,本发明实施例还提供了相应的装置、设备及存储介质实施例。
图5是本发明实施例提供的基于神经网络的卷积计算装置的功能方块图。如图5所示,本实施例中,基于神经网络的卷积计算装置可以包括:
分解模块510,用于将PnD型n维网络结构中每一n维卷积核(k1*k2*……kn-1*kn)的n维卷积核系数分解为第一类卷积核系数和第二类卷积核系数;所述n为大于2的正整数,所述第一类卷积核系数包括所述神经网络芯片支持的至少一个参考卷积核系数,所述神经网络芯片用于执行所述n维卷积核的卷积运算,所述第二类卷积核系数包括所述神经网络芯片不支持的卷积核系数;
转换模块520,用于将所述第二类卷积核系数中每一个卷积核系数进行转换得到所述神经网络芯片支持的目标卷积核系数;
运算模块530,用于将第一类卷积核系数中的各参考卷积核系数、以及第二类卷积核系数中各目标卷积核系数分别与n维特征图(f1*f2*……fn-1*fn)进行卷积运算得到目标卷积结果。
在一个示例性的实现过程中,神经网络芯片支持的目标卷积核系数包括:
卷积核的n个维度上的数值只有第一位不为指定值、或者,n个维度上的数值只有最后两位或者最后一位不为指定值,或者,n个维度上的数值均为指定值,指定值为1。
在一个示例性的实现过程中,转换模块520具体用于:
对所述第二类卷积核系数中每一卷积核系数进行数据重排转换得到目标卷积核系数,所述目标卷积核系数中的不为1的维度值的排序与所述第一类卷积核系数中不为1的维度值的排序相同。
在一个示例性的实现过程中,转换模块520还用于:按照所述第二类卷积核系数中卷积核系数进行数据重排转换的方式对特征图(f1*f2*……fn-1*fn)进行数据重排转换,得到与所述目标卷积核系数对应的目标特征图;
所述运算模块530具体用于:
将每一参考卷积核系数与对应的n维特征图(f1*f2*……fn-1*fn)进行卷积运算得到参考卷积结果;
将每一目标卷积核系数与其对应的目标特征图进行卷积运算得到候选卷积结果;
依据所述参考卷积结果和候选卷积结果确定所述最终的目标卷积结果。
在一个示例性的实现过程中,运算模块530在用于依据所述参考卷积结果和候选卷积结果确定所述最终的目标卷积结果时,具体用于:
依据每一维度卷积系数参与卷积运算时的配置参数对各候选卷积结果进行分组;所述配置参数至少包括:加窗参数STRIDE、填充参数PAD;
对每一组中的卷积结果进行多次对应点相加得到每组的运算结果;
依据参考卷积结果、各组的运算结果确定所述最终的目标卷积结果。
本发明实施例还提供了一种基于神经网络的卷积计算设备。图6是本发明实施例提供的基于神经网络的卷积计算设备的一个硬件结构图。如图6所示基于神经网络的卷积计算设备包括:内部总线601,以及通过内部总线连接的存储器602,处理器603和外部接口604,其中,
所述处理器603,用于读取存储器602上的机器可读指令,并执行所述指令以实现如下操作:
将PnD型n维网络结构中每一n维卷积核(k1*k2*……kn-1*kn)的n维卷积核系数分解为第一类卷积核系数和第二类卷积核系数;所述n为大于2的正整数,所述第一类卷积核系数包括所述神经网络芯片支持的至少一个参考卷积核系数,所述神经网络芯片用于执行所述n维卷积核的卷积运算,所述第二类卷积核系数包括所述神经网络芯片不支持的卷积核系数;
将所述第二类卷积核系数中每一个卷积核系数进行转换得到所述神经网络芯片支持的目标卷积核系数;
将所述第一类卷积核系数中的各参考卷积核系数、以及所述第二类卷积核系数中各目标卷积核系数分别与n维特征图进行卷积运算得到目标卷积结果。
在一个示例性的实现过程中,所述神经网络芯片支持的目标卷积核系数包括:
卷积核的n个维度上的数值只有第一位不为指定值、或者,n个维度上的数值只有最后两位或者最后一位不为指定值,或者,n个维度上的数值均为指定值,指定值为1。
在一个示例性的实现过程中,所述处理器603还可以执行所述指令以实现如下操作:
对所述第二类卷积核系数中每一卷积核系数进行数据重排转换得到目标卷积核系数,所述目标卷积核系数中的不为1的维度值的排序与所述第一类卷积核系数中不为1的维度值的排序相同。
在一个示例性的实现过程中,所述处理器603还可以执行所述指令以实现如下操作:
按照所述第二类卷积核系数中卷积核系数进行数据重排转换的方式对特征图(f1*f2*……fn-1*fn)进行数据重排转换,得到与所述目标卷积核系数对应的目标特征图;
所述将所述第一类卷积核系数中的各参考卷积核系数、以及所述第二类卷积核系数中各目标卷积核系数分别与n维特征图进行卷积运算得到卷积结果包括:
将每一参考卷积核系数与对应的n维特征图(f1*f2*……fn-1*fn)进行卷积运算得到参考卷积结果;
将每一目标卷积核系数与其对应的目标特征图进行卷积运算得到候选卷积结果;
依据所述参考卷积结果和候选卷积结果确定所述最终的目标卷积结果。
在一个示例性的实现过程中,所述处理器603还可以执行所述指令以实现如下操作:
依据每一维度卷积系数参与卷积运算时的配置参数对各候选卷积结果进行分组;所述配置参数至少包括:加窗参数STRIDE、填充参数PAD;
对每一组中的卷积结果进行多次对应点相加得到每组的运算结果;
依据参考卷积结果、各组的运算结果确定所述最终的目标卷积结果。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有若干计算机指令,所述计算机指令被执行时进行如下处理:
将PnD型n维网络结构中每一n维卷积核(k1*k2*……kn-1*kn)的n维卷积核系数分解为第一类卷积核系数和第二类卷积核系数;所述n为大于2的正整数,所述第一类卷积核系数包括所述神经网络芯片支持的至少一个参考卷积核系数,所述神经网络芯片用于执行所述n维卷积核的卷积运算,所述第二类卷积核系数包括所述神经网络芯片不支持的卷积核系数;
将所述第二类卷积核系数中每一个卷积核系数进行转换得到所述神经网络芯片支持的目标卷积核系数,所述目标卷积核系数为二维卷积核系数;
将所述第一类卷积核系数中的各参考卷积核系数、以及所述第二类卷积核系数中各目标卷积核系数分别与n维特征图进行卷积运算得到目标卷积结果。
在一个示例性的实现过程中,所述神经网络芯片支持的目标卷积核系数包括:
卷积核的n个维度上的数值只有第一位不为指定值、或者,n个维度上的数值只有最后两位或者最后一位不为指定值,或者,n个维度上的数值均为指定值,指定值为1。
在一个示例性的实现过程中,所述计算机指令被执行时还可以进行如下处理:
对所述第二类卷积核系数中每一卷积核系数进行数据重排转换得到目标卷积核系数,所述目标卷积核系数中的不为1的维度值的排序与所述第一类卷积核系数中不为1的维度值的排序相同。
在一个示例性的实现过程中,所述计算机指令被执行时还可以进行如下处理:
按照所述第二类卷积核系数中卷积核系数进行数据重排转换的方式对特征图(f1*f2*……fn-1*fn)进行数据重排转换,得到与所述目标卷积核系数对应的目标特征图;
所述将所述第一类卷积核系数中的各参考卷积核系数、以及所述第二类卷积核系数中各目标卷积核系数分别与n维特征图进行卷积运算得到卷积结果包括:
将每一参考卷积核系数与对应的n维特征图(f1*f2*……fn-1*fn)进行卷积运算得到参考卷积结果;
将每一目标卷积核系数与其对应的目标特征图进行卷积运算得到候选卷积结果;
依据所述参考卷积结果和候选卷积结果确定所述最终的目标卷积结果。
在一个示例性的实现过程中,所述计算机指令被执行时还可以进行如下处理:
依据每一维度卷积系数参与卷积运算时的配置参数对各候选卷积结果进行分组;所述配置参数至少包括:加窗参数STRIDE、填充参数PAD;
对每一组中的卷积结果进行多次对应点相加得到每组的运算结果;
依据参考卷积结果、各组的运算结果确定所述最终的目标卷积结果。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述对本发明特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (6)
1.一种基于神经网络的卷积计算方法,其特征在于,所述方法包括:
将PnD型n维网络结构中每一n维卷积核的n维卷积核系数分解为第一类卷积核系数和第二类卷积核系数;所述n为大于2的正整数,所述第一类卷积核系数为神经网络芯片支持的至少一个参考卷积核系数,所述神经网络芯片用于执行所述n维卷积核的卷积运算,所述第二类卷积核系数为所述神经网络芯片不支持的卷积核系数;所述神经网络芯片的支持维度低于n维;
将所述第二类卷积核系数中每一个卷积核系数进行转换得到所述神经网络芯片支持的目标卷积核系数,包括:对所述第二类卷积核系数中每一卷积核系数进行数据重排转换得到目标卷积核系数,所述目标卷积核系数中的不为1的维度值的排序与所述第一类卷积核系数中不为1的维度值的排序相同;
按照所述第二类卷积核系数中卷积核系数进行数据重排转换的方式对n维特征图进行数据重排转换,得到与所述目标卷积核系数对应的目标特征图;
将每一参考卷积核系数与对应的n维特征图进行卷积运算得到参考卷积结果;
将每一目标卷积核系数与其对应的目标特征图进行卷积运算得到候选卷积结果;
依据所述参考卷积结果和候选卷积结果确定最终的目标卷积结果。
2.根据权利要求1所述的方法,其特征在于,所述神经网络芯片支持的目标卷积核系数包括:
卷积核的n个维度上的数值只有第一位不为指定值、或者,n个维度上的数值只有最后两位或者最后一位不为指定值,或者,n个维度上的数值均为指定值,所述指定值为1。
3.根据权利要求1所述的方法,其特征在于,依据所述参考卷积结果和候选卷积结果确定所述最终的目标卷积结果,包括:
依据每一维度卷积系数参与卷积运算时的配置参数对各候选卷积结果进行分组;所述配置参数至少包括:加窗参数STRIDE、填充参数PAD;
对每一组中的卷积结果进行多次对应点相加得到每组的运算结果;
依据参考卷积结果、各组的运算结果确定所述最终的目标卷积结果。
4.一种基于神经网络的卷积计算装置,其特征在于,所述装置包括:
分解模块,用于将PnD型n维网络结构中每一n维卷积核的n维卷积核系数分解为第一类卷积核系数和第二类卷积核系数;所述n为大于2的正整数,所述第一类卷积核系数为神经网络芯片支持的至少一个参考卷积核系数,所述神经网络芯片用于执行所述n维卷积核的卷积运算,所述第二类卷积核系数为所述神经网络芯片不支持的卷积核系数;所述神经网络芯片的支持维度低于n维;
转换模块,用于将所述第二类卷积核系数中每一个卷积核系数进行转换得到所述神经网络芯片支持的目标卷积核系数,包括:对所述第二类卷积核系数中每一卷积核系数进行数据重排转换得到目标卷积核系数,所述目标卷积核系数中的不为1的维度值的排序与所述第一类卷积核系数中不为1的维度值的排序相同;
述转换模块还用于:按照所述第二类卷积核系数中卷积核系数进行数据重排转换的方式对n维特征图进行数据重排转换,得到与所述目标卷积核系数对应的目标特征图;
运算模块,用于将每一参考卷积核系数与对应的n维特征图进行卷积运算得到参考卷积结果;将每一目标卷积核系数与其对应的目标特征图进行卷积运算得到候选卷积结果;依据所述参考卷积结果和候选卷积结果确定最终的目标卷积结果。
5.根据权利要求4所述的装置,其特征在于,所述神经网络芯片支持的目标卷积核系数包括:
卷积核的n个维度上的数值只有第一位不为指定值、或者,n个维度上的数值只有最后两位或者最后一位不为指定值,或者,n个维度上的数值均为指定值,所述指定值为1。
6.根据权利要求4所述的装置,其特征在于,所述运算模块在用于依据所述参考卷积结果和候选卷积结果确定所述最终的目标卷积结果时,具体用于:
依据每一维度卷积系数参与卷积运算时的配置参数对各候选卷积结果进行分组;所述配置参数至少包括:加窗参数STRIDE、填充参数PAD;
对每一组中的卷积结果进行多次对应点相加得到每组的运算结果;
依据参考卷积结果、各组的运算结果确定所述最终的目标卷积结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910613642.1A CN112215329B (zh) | 2019-07-09 | 2019-07-09 | 基于神经网络的卷积计算方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910613642.1A CN112215329B (zh) | 2019-07-09 | 2019-07-09 | 基于神经网络的卷积计算方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112215329A CN112215329A (zh) | 2021-01-12 |
CN112215329B true CN112215329B (zh) | 2023-09-29 |
Family
ID=74048111
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910613642.1A Active CN112215329B (zh) | 2019-07-09 | 2019-07-09 | 基于神经网络的卷积计算方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112215329B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117063182A (zh) * | 2021-12-27 | 2023-11-14 | 华为技术有限公司 | 一种数据处理方法和装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107844827A (zh) * | 2017-11-28 | 2018-03-27 | 北京地平线信息技术有限公司 | 执行卷积神经网络中的卷积层的运算的方法和装置 |
CN107967459A (zh) * | 2017-12-07 | 2018-04-27 | 北京小米移动软件有限公司 | 卷积处理方法、装置及存储介质 |
CN107997778A (zh) * | 2016-10-31 | 2018-05-08 | 西门子保健有限责任公司 | 在计算机断层扫描血管造影术中基于深度学习的骨移除 |
CN109214375A (zh) * | 2018-11-07 | 2019-01-15 | 浙江大学 | 一种基于分段采样视频特征的胚胎妊娠结果预测装置 |
CN109389055A (zh) * | 2018-09-21 | 2019-02-26 | 西安电子科技大学 | 基于混合卷积和注意力机制的视频分类方法 |
CN109670529A (zh) * | 2018-11-14 | 2019-04-23 | 天津大学 | 一种用于快速语义分割的可分离分解残差模块设计方法 |
CN109754361A (zh) * | 2017-11-02 | 2019-05-14 | 西门子保健有限责任公司 | 3d各向异性的混合网络:将来自2d图像的卷积特征传递到3d各向异性体积 |
CN109766949A (zh) * | 2019-01-17 | 2019-05-17 | 北京海印博识智能科技有限公司 | 卷积神经网络轻量化方法、装置及电子设备 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR3015035B1 (fr) * | 2013-12-13 | 2016-01-22 | Safran | Mesure non intrusive de la densite volumique d'une phase dans une piece |
US10360497B2 (en) * | 2014-07-16 | 2019-07-23 | Qualcomm Incorporated | Decomposing convolution operation in neural networks |
US10157279B2 (en) * | 2015-07-15 | 2018-12-18 | Cylance Inc. | Malware detection |
WO2017031088A1 (en) * | 2015-08-15 | 2017-02-23 | Salesforce.Com, Inc | Three-dimensional (3d) convolution with 3d batch normalization |
FR3050846B1 (fr) * | 2016-04-27 | 2019-05-03 | Commissariat A L'energie Atomique Et Aux Energies Alternatives | Dispositif et procede de distribution de donnees de convolution d'un reseau de neurones convolutionnel |
CN108073977A (zh) * | 2016-11-14 | 2018-05-25 | 耐能股份有限公司 | 卷积运算装置及卷积运算方法 |
US11106974B2 (en) * | 2017-07-05 | 2021-08-31 | International Business Machines Corporation | Pre-training of neural network by parameter decomposition |
US10699160B2 (en) * | 2017-08-23 | 2020-06-30 | Samsung Electronics Co., Ltd. | Neural network method and apparatus |
-
2019
- 2019-07-09 CN CN201910613642.1A patent/CN112215329B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107997778A (zh) * | 2016-10-31 | 2018-05-08 | 西门子保健有限责任公司 | 在计算机断层扫描血管造影术中基于深度学习的骨移除 |
CN109754361A (zh) * | 2017-11-02 | 2019-05-14 | 西门子保健有限责任公司 | 3d各向异性的混合网络:将来自2d图像的卷积特征传递到3d各向异性体积 |
CN107844827A (zh) * | 2017-11-28 | 2018-03-27 | 北京地平线信息技术有限公司 | 执行卷积神经网络中的卷积层的运算的方法和装置 |
CN107967459A (zh) * | 2017-12-07 | 2018-04-27 | 北京小米移动软件有限公司 | 卷积处理方法、装置及存储介质 |
CN109389055A (zh) * | 2018-09-21 | 2019-02-26 | 西安电子科技大学 | 基于混合卷积和注意力机制的视频分类方法 |
CN109214375A (zh) * | 2018-11-07 | 2019-01-15 | 浙江大学 | 一种基于分段采样视频特征的胚胎妊娠结果预测装置 |
CN109670529A (zh) * | 2018-11-14 | 2019-04-23 | 天津大学 | 一种用于快速语义分割的可分离分解残差模块设计方法 |
CN109766949A (zh) * | 2019-01-17 | 2019-05-17 | 北京海印博识智能科技有限公司 | 卷积神经网络轻量化方法、装置及电子设备 |
Non-Patent Citations (2)
Title |
---|
Learning Spatio-Temporal Representation with Pseudo-3D Residual Networks;Zhaofan Qiu 等;《arxiv.org》;第1-9页 * |
深度学习基础(1)—卷积神经网络Inception系列 - 知乎 (zhihu.com);休;《知乎》;第1-14页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112215329A (zh) | 2021-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3496008B1 (en) | Method and apparatus for processing convolution operation in neural network | |
KR20190051697A (ko) | 뉴럴 네트워크의 디컨벌루션 연산을 수행하는 장치 및 방법 | |
CN111476360A (zh) | 用于神经网络的Winograd变换卷积操作的装置和方法 | |
CN111709415B (zh) | 目标检测方法、装置、计算机设备和存储介质 | |
US20210173895A1 (en) | Apparatus and method of performing matrix multiplication operation of neural network | |
WO2021088569A1 (en) | Convolution method and device, electronic device | |
US11822900B2 (en) | Filter processing device and method of performing convolution operation at filter processing device | |
CN112215329B (zh) | 基于神经网络的卷积计算方法及装置 | |
CN115331109A (zh) | 基于旋转等变卷积通道注意力增强和多尺度特征融合的遥感图像目标检测方法 | |
CN111310115A (zh) | 数据处理方法、装置及芯片、电子设备、存储介质 | |
WO2017095439A1 (en) | Incremental clustering of a data stream via an orthogonal transform based indexing | |
CN106599234A (zh) | 基于多维标识的数据可视化处理方法和系统 | |
Chetverikov | Fast neighborhood search in planar point sets | |
CN116805393A (zh) | 一种基于3DUnet光谱-空间信息融合的高光谱图像分类方法和系统 | |
CN114239858B (zh) | 一种用于分布式图模型的图学习方法及设备 | |
CN112215330B (zh) | 基于神经网络的卷积方法及装置 | |
KR101946692B1 (ko) | 그래프 랭킹 수행 방법 및 장치 | |
CN113393368B (zh) | 基于神经网络模型的图像处理方法、介质和电子设备 | |
CN111160517A (zh) | 一种深度神经网络的卷积层量化方法及装置 | |
CN114819051A (zh) | 用于执行神经网络计算的模拟电路的校准方法及装置 | |
CN116997911A (zh) | 加速卷积神经网络执行卷积操作 | |
Fan et al. | Hardware and Algorithm Co-Optimization for pointwise convolution and channel shuffle in ShuffleNet V2 | |
CN110930290B (zh) | 一种数据处理方法及装置 | |
CN114663720A (zh) | 基于孪生神经网络的目标跟踪方法、装置、介质及设备 | |
JP2022520912A (ja) | データ処理方法、装置及びチップ、電子機器、記憶媒体 |
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 |