CN112215330B - 基于神经网络的卷积方法及装置 - Google Patents

基于神经网络的卷积方法及装置 Download PDF

Info

Publication number
CN112215330B
CN112215330B CN201910613647.4A CN201910613647A CN112215330B CN 112215330 B CN112215330 B CN 112215330B CN 201910613647 A CN201910613647 A CN 201910613647A CN 112215330 B CN112215330 B CN 112215330B
Authority
CN
China
Prior art keywords
convolution
dimensional
dimensional feature
neural network
feature map
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
Application number
CN201910613647.4A
Other languages
English (en)
Other versions
CN112215330A (zh
Inventor
刘锦胜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital Technology Co Ltd
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 Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN201910613647.4A priority Critical patent/CN112215330B/zh
Publication of CN112215330A publication Critical patent/CN112215330A/zh
Application granted granted Critical
Publication of CN112215330B publication Critical patent/CN112215330B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Complex Calculations (AREA)

Abstract

本发明提供一种基于神经网络的卷积方法及装置。本发明实施例通过将CnD卷积神经网络中的n维卷积核、输入CnD卷积神经网络与所述n维卷积核执行卷积运算的n维特征图分别转换为多个不同的二维卷积系数、多个不同的二维特征图,将每个二维卷积系数与其对应的二维特征图进行二维卷积计算得到参考卷积结果,依据各个参考卷积结果确定n维卷积核与n维特征图进行卷积的目标卷积结果,能够将CnD卷积转换为二维神经网络芯片支持的二维卷积,从而使得能够在二维神经网络芯片上部署比二维神经网络算法性能高的CnD卷积神经网络,在保持较快处理速度的基础上提高了算法性能,并且成本低。

Description

基于神经网络的卷积方法及装置
技术领域
本发明涉及机器学习技术领域,尤其涉及一种基于神经网络的卷积方法及装置。
背景技术
卷积神经网络(Convolutional Neural Networks,CNN)是一种重要的深度学习方法,应用广泛。卷积神经网络的算法性能与卷积神经网络的维度相关。多维卷积神经网络(本文中指大于二维的卷积神经网络)的算法性能高于二维卷积神经网络的算法性能。
当前,卷积神经网络的实现方式有两种,一种是软件方式,另一种是硬件方式。相比于利用软件方式实现的卷积神经网络,利用硬件方式实现的神经网络芯片具有更快的处理速度。相关技术中,一些神经网络芯片仅仅支持二维(2D)卷积运算,不支持多维卷积。
发明内容
为克服相关技术中存在的问题,本发明提供了一种基于神经网络的卷积方法及装置。
根据本发明实施例的第一方面,提供一种基于神经网络的卷积方法,所述方法包括:
将CnD卷积神经网络中的n维卷积核(k1*k2*……kn-1*kn)、输入所述CnD卷积神经网络与所述n维卷积核执行卷积运算的n维特征图(f1*f2*……fn-1*fn)分别转换为多个不同的二维卷积系数、多个不同的二维特征图,其中所述n维卷积核的n个维度与所述n维特征图的n个维度一一对应;所述二维卷积系数、所述二维特征图中,其中一个维度表示宽度,另一个维度表示高度;
针对每个二维卷积系数,将该二维卷积系数与该二维卷积系数对应的二维特征图进行二维卷积计算得到参考卷积结果;
依据所述各个参考卷积结果确定所述n维卷积核(k1*k2*……kn-1*kn)与所述n维特征图(f1*f2*……fn-1*fn)进行卷积的目标卷积结果。
根据本发明实施例的第二方面,提供一种基于神经网络的卷积装置,所述装置包括:
转换模块,用于将CnD卷积神经网络中的n维卷积核(k1*k2*……kn-1*kn)、输入所述CnD卷积神经网络与所述n维卷积核执行卷积运算的n维特征图(f1*f2*……fn-1*fn)分别转换为多个不同的二维卷积系数、多个不同的二维特征图,其中所述n维卷积核的n个维度与所述n维特征图的n个维度一一对应;所述二维卷积系数、所述二维特征图中,其中一个维度表示宽度,另一个维度表示高度;
二维卷积模块,用于针对每个二维卷积系数,将该二维卷积系数与该二维卷积系数对应的二维特征图进行二维卷积计算得到参考卷积结果;
确定模块,用于依据所述各个参考卷积结果,确定所述n维卷积核(k1*k2*……kn-1*kn)与所述n维特征图(f1*f2*……fn-1*fn)进行卷积的目标卷积结果。
本发明的实施例提供的技术方案可以包括以下有益效果:
本发明实施例,通过将CnD卷积神经网络中的n维卷积核、输入CnD卷积神经网络与所述n维卷积核执行卷积运算的n维特征图分别转换为多个不同的二维卷积系数、多个不同的二维特征图,将每个二维卷积系数与其对应的二维特征图进行二维卷积计算得到参考卷积结果,依据各个参考卷积结果确定n维卷积核与n维特征图进行卷积的目标卷积结果,能够将CnD卷积转换为二维神经网络芯片支持的二维卷积,从而使得能够在二维神经网络芯片上部署CnD卷积神经网络,在保持较快处理速度的基础上提高了算法性能,并且成本低。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本发明的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是利用本发明实施例提供的基于神经网络的卷积方法的应用场景示例图。
图2是本发明实施例提供的基于神经网络的卷积方法的流程示例图。
图3是C3D卷积神经网络对应的卷积运算过程示例图。
图4为图3所示的C3D卷积的映射过程示例图。
图5是本发明实施例提供的基于神经网络的卷积装置的功能方块图。
图6是本发明实施例提供的基于神经网络的卷积设备的一个硬件结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
二维神经网络芯片是当前应用广泛的神经网络芯片,相比于通过软件计算卷积的方式,通过二维神经网络芯片计算卷积具有处理速度快的优点。但是,相关技术中,二维神经网络芯片只支持二维卷积神经网络,不支持多维卷积神经网络,而由于多维卷积神经网络相比于二维卷积神经网络具有更好的算法性能,在应用中又需要采用多维卷积神经网络,如果要采用多维卷积神经网络,就只能采用软件方式实现,但软件方式的处理速度又低于硬件方式。
因此,相关技术中面临两难的选择:采用硬件方式,在算法上只能选择二维卷积神经网络,算法性能低;采用软件方式,在算法上能选择多维卷积神经网络,算法性能高,但处理速度又不如硬件方式。
利用本发明实施例提供的基于神经网络的卷积方法,可以将CnD卷积神经网络部署在二维神经网络芯片上。这样,既能够在算法上采用多维卷积神经网络,获得高算法性能,又能够以硬件方式实现多维卷积神经网络,获得较快的处理速度。
利用本发明实施例提供的基于神经网络的卷积方法,可以在各应用场景中使用多维卷积神经网络实现更优的业务处理性能。
例如,使用部署C3D卷积神经网络的二维神经网络芯片,可以对视频数据进行行为分析,实现智能监控。
图1是利用本发明实施例提供的基于神经网络的卷积方法的应用场景示例图。图1中,应用设备上具有部署CnD卷积神经网络的二维神经网络芯片。视频采集设备采集视频数据后,将视频数据发送给应用设备。应用设备中的二维神经网络芯片,利用部署的CnD卷积神经网络对视频数据进行分析,得到分析结果。
其中,应用设备可以是监控设备。
在其他实施例中,视频采集设备可以集成在应用设备中。
需要说明的是,图1为本发明实施例提供的基于神经网络的卷积方法的应用场景的一个示例,并不用于对本发明实施例提供的基于神经网络的卷积方法的应用场景进行限制。
接下来对本发明实施例进行详细说明。
图2是本发明实施例提供的基于神经网络的卷积方法的流程示例图。如图2所示,该方法可以包括以下步骤:
S201,将CnD卷积神经网络中的n维卷积核(k1*k2*……kn-1*kn)、输入CnD卷积神经网络与所述n维卷积核执行卷积运算的n维特征图(f1*f2*……fn-1*fn)分别转换为多个不同的二维卷积系数、多个不同的二维特征图,其中n维卷积核的n个维度与n维特征图的n个维度一一对应;二维卷积系数、二维特征图中,其中一个维度表示宽度,另一个维度表示高度。S202,针对每个二维卷积系数,将该二维卷积系数与该二维卷积系数对应的二维特征图进行二维卷积计算得到参考卷积结果。其中,n为大于2的正整数,比如n为3时,对应的C3D卷积神经网络包括多个3维卷积核。
S203,依据各个参考卷积结果确定n维卷积核(k1*k2*……kn-1*kn)与n维特征图(f1*f2*……fn-1*fn)进行卷积的目标卷积结果。
在步骤S201中,CnD卷积神经网络的卷积维度为n,即CnD中的n表示卷积维度。
例如,C3D卷积神经网络的卷积维度为3,C4D卷积神经网络的卷积维度为4。
CnD卷积神经网络对应的多维卷积运算的输入有两个,一个输入是特征图(feature map),本文中用(f1*f2*……fn-1*fn)表示,也可以表示为(f1,f2,……fn-1,fn);另一个输入是卷积核(kernel),卷积核在本文中用(k1*k2*……kn-1*kn)表示,也可以表示为(k1,k2,……kn-1,kn)。
这里通过示例来说明CnD卷积的运算过程。图3是C3D卷积神经网络对应的卷积运算过程示例图。C3D卷积中特征图的参数是(t,n,c,h,w),其中t表示时间维度,n表示batch数量,c表示通道数,h表示高度维度,w表示宽度维度,相应地,卷积核的参数是(Kt,Km,c,Kh,Kw)。
图3中,以(t,n,c,h,w)为(5,1,100,5,5),(Kt,Km,c,Kh,Kw)是(3,1,100,3,3)为例进行说明。t0、t1、t2、t3、t4为特征图的5(对应特征图维度t)个数据块(blob),p0、p1、p2为卷积核的3(对应卷积核尺寸的维度Kt)个数据块。
图3中,C3D卷积的运算过程是,t0、t1、t2这3个数据块(blob)分别与卷积核的3个数据块p0、p1、p2做二维卷积,即t0与p0做二维卷积,t1与p1做二维卷积,t2与p2做二维卷积,这3个二维卷积的卷积结果再进行多次对应点相加(Element-wise加)操作得到y0;同理,t1、t2、t3这3个数据块分别与卷积核的3个数据块p0、p1、p2做二维卷积,结果为y1;t2、t3、t4这3个数据块分别与卷积核的3个数据块p0、p1、p2做二维卷积,结果为y2。
在步骤S201中,通过对卷积核系数的转换和对n维特征图的转换,将CnD卷积映射为了二维卷积。
通过步骤S201,CnD卷积神经网络中的每一卷积核的运算复杂的卷积核(k1*k2*……kn-1*kn)被转换为多个运算简单的二维卷积系数,并且,输入CnD卷积神经网络的复杂的n维特征图(f1*f2*……fn-1*fn)也被转换为多个简单的二维特征图。
由于二维卷积系数和二维特征图都符合二维神经网络芯片对于输入数据的要求,因此转换后的各二维卷积系数和各二维特征图之间的卷积运算能够得到二维神经网络芯片的支持。而利用转换后的各二维卷积系数和各二维特征图之间的卷积运算,能够得到卷积核(k1*k2*……kn-1*kn)与n维特征图(f1*f2*……fn-1*fn)的卷积结果,因此能够在二维神经网络芯片上实现CnD卷积神经网络的多维卷积运算,从而使得CnD卷积神经网络模型能够部署在二维神经网络芯片上。
这样,一方面,CnD卷积神经网络对应的多维卷积比二维卷积具有更高的算法性能,因此能够在应用中通过采用CnD卷积神经网络提高算法性能。
另一方面,采用硬件方式实现CnD卷积神经网络,通过本申请的CnD到2D网络的转换,可在较为低端的神经网络处理器上拥有较高的算法效果,从产品角度看,在较低成本的处理器上部署效果更好的算法,有利于提升硬件处理速度。
再一方面,二维神经网络芯片是现有的神经网络芯片,通过本申请的CnD到2D网络的转换,可在较为低端的神经网络处理器上拥有较高的算法效果,从产品角度看,在较低成本的处理器上部署效果更好的算法,不需要针对多维的CnD卷积神经网络模型重新开发硬件结构复杂的芯片,在提升算力的同时还有利于降低成本。
在一个示例性的实现过程中,步骤S201可以包括:
针对每一个维度,进行卷积核系数kx的二维转换,得到多个不同的二维卷积系数;
针对每一个维度,进行n维特征图fx的二维转换,得到多个不同的二维特征图。
例如,在一个示例中,可以通过如下方式进行卷积核系数的二维转换以及n维特征图的二维转换:
将f1、f2……fn-2中首个维度值f1作为当前维度值;
将n维特征图(f1*f2*……fn-1*fn)转换为当前维度值对应的各不同二维特征图;当前维度值对应的二维特征图的数量为:当前维度值的下一个维度值与fn-2之间的各维度值、以及fn-2相乘的结果;
将卷积核(k1*k2*……kn-1*kn)转换为当前维度值对应的各不同二维卷积系数,当前维度值对应的二维卷积系数的数量为:当前维度值的下一个维度值与kn-2之间的各维度值、以及kn-2相乘的结果;
检查当前维度值是否为f1、f2……fn-2中最后一个维度值,如果是,记录当前维度值对应的二维特征图和二维卷积系数,如果否,将下一个维度值确定为当前维度值。
以图3中的特征图和卷积核为例说明。图4为图3所示的C3D卷积的映射过程示例图。C3D卷积中,维度kn-2对应维度t。图3中的特征图在维度t的维度值为5,则在维度t,将特征图(5,1,100,5,5)转换为5个二维特征图:即图4中的t0、t1、t2、t3、t4;将卷积核(3,1,100,3,3)在维度Kt转换为3个二维卷积系数:即图4中的p0、p1、p2。
在上述基础上,在一个示例性的实现过程中,步骤S202可以包括:
针对任意一个n维特征图的维度值,将n维特征图的维度值与对应的n维卷积核的维度值相比较;
如果相同,将当前维度值对应的二维特征图和二维卷积系数进行二维卷积计算,得到当前维度值对应的参考卷积结果;
如果不相同,依据kx将当前维度值对应的各二维特征图和各二维卷积系数进行二维卷积计算,得到当前维度值对应的参考卷积结果。
举例说明。接上例。请参见图4,特征图(5,1,100,5,5)被转换为5个二维特征图t0、t1、t2、t3、t4,卷积核(3,1,100,3,3)被转换为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。
在一个示例性的实现过程中,依据kx将当前维度值对应的各二维特征图和各二维卷积系数进行二维卷积计算,得到当前维度值对应的参考卷积结果包括:
针对每个n维特征图的维度值,沿着kx个卷积窗口将当前维度值对应的各二维特征图和各二维卷积系数进行二维卷积计算得到当前维度值对应的候选卷积结果,将不同卷积窗口下的候选卷积结果分组,每一组包括kx个候选卷积结果;
将每一组中的候选卷积结果进行指定运算,得到当前维度值对应的参考卷积结果。
在一个示例性的实现过程中,将不同卷积窗口下的候选卷积结果分组,包括:
将不同卷积窗口下的候选卷积结果顺序编号;
将不同卷积窗口下编号相同的候选卷积结果划分在同一组。
在一个示例性的实现过程中,步骤S203可以包括:
将每一维度值对应的参考卷积结果确定为所述目标卷积结果。
举例说明。接上例。在维度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)
图4中,fn-2是特征图的维度t,维度值为5,kn-2是卷积核的维度Kt,维度值为3,PADn-2为在维度t上的填充,STRIDEn-2为在维度t上的跨距。
图4中,当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为一组。
当PADn-2=1,STRIDEn-2=1时,按照公式(1),分组的组数为X=((5+1*2-(3+1)/2)/1)=5,即分为5个组,每个组中包含kn-2(在本示例中为Kt)=3个二维卷积结果。由于pad不为零,故需填充一些全零的blob0。此时,分组结果是:blob0、a00、a11分为一组;a00、a11、a22分为一组;a01、a12、a23分为一组;a02、a13、a24分为一组;a03、a14、blob0分为一组。其中blob0为与a00维度相同、数据全部填充为0的数据块。
对于各分组内的数据块,执行elemenet-wise加操作,得到最终的C3D卷积结果。
假设在图3的基础上,增加一组特征图t0’-t4’,并增加一组卷积核的数据块p0’-p2’,即变成了C4D卷积,此时特征图的维度为(2,5,1,100,5,5),卷积核的尺寸是(2,3,1,100,3,3),此时特征图有t0-t4和t0’-t4’共10个数据块,卷积核有p0-p2和p0’-p2’共6个数据块。
此时,除了进行上述特征图t0-t4与卷积核p0-p2的卷积外,特征图t0-t4与卷积核p0’-p2’、t0’-t4’与卷积核p0-p2、t0’-t4’与卷积核p0’-p2’,分别按照上述特征图t0-t4与卷积核p0-p2的卷积运算过程进行卷积,获得卷积结果。假设t0-t4与p0-p2的卷积结果为m0、t0-t4与p0’-p2’的卷积结果为m1、t0’-t4’与p0-p2的卷积结果为m2、t0’-t4’与p0’-p2’的卷积结果为m3,则在(2,5,1,100,5,5)的维度值为2的维度上继续对m0–m3进行分组,并对分组后的各组内的数据进行elemenet-wise add操作。
同样,对于C5D卷积,在各C4D卷积结果的基础上依次进行分组操作、elemenet-wise add操作。
需要说明的是,在一个示例中,分组操作和elemenet-wise add操作的顺序可以与前述的示例相反,即先进行elemenet-wise add操作、再进行分组操作。举例说明。以C4D卷积为例,上述t0-t4与p0-p2的卷积过程中,当PADn-2=0,STRIDEn-2=1时,一个分组结果为:a00、a11、a22,此处用(a00,a11,a22)表示。假设与该分组对应的另一个分组是t0’-t4’与p0’-p2’的卷积结果中的(a00’,a11’,a22’),在(2,5,1,100,5,5)的维度值为2的维度上处理时,可以先进行分组操作,将分组(a00,a11,a22)和分组(a00’,a11’,a22’)分为一组,然后对(a00,a11,a22)和(a00’,a11’,a22’)中的6个卷积结果进行elemenet-wise add操作;也可以先对(a00,a11,a22)中的3个卷积结果进行elemenet-wise add操作,得到结果r0,对(a00’,a11’,a22’)中的3个卷积结果进行elemenet-wise add操作,得到结果r1,然后进行分组操作,将r0和r1分为一组,再对r0和r1进行elemenet-wise add操作。并且,这种先进行elemenet-wise add操作、再进行分组操作的方式得到的计算结果,与前述先进行分组操作、再进行elemenet-wise add操作的方式得到的计算结果是相同的。
本发明实施例,通过将CnD卷积神经网络中的n维卷积核(k1*k2*……kn-1*kn)、输入CnD卷积神经网络与所述n维卷积核执行卷积运算的n维特征图分别转换为多个不同的二维卷积系数、多个不同的二维特征图,其中所述n维卷积核的n个维度与所述n维特征图的n个维度一一对应,将每个二维卷积系数与其对应的二维特征图进行二维卷积计算得到参考卷积结果,依据各个参考卷积结果确定n维卷积核与n维特征图进行卷积的目标卷积结果,能够将CnD卷积转换为二维神经网络芯片支持的二维卷积,从而使得能够在二维神经网络芯片上部署CnD卷积神经网络,在保持较快处理速度的基础上提高了算法性能,并且成本低。
基于上述的数据聚类方法实施例,本申请实施例还提供了相应的装置、设备及存储介质实施例。
图5是本发明实施例提供的基于神经网络的卷积装置的功能方块图。如图5所示,本实施例中,基于神经网络的卷积装置可以包括:
转换模块510,用于将CnD卷积神经网络中的n维卷积核(k1*k2*……kn-1*kn)、输入所述CnD卷积神经网络与所述n维卷积核执行卷积运算的n维特征图(f1*f2*……fn-1*fn)分别转换为多个不同的二维卷积系数、多个不同的二维特征图,其中所述n维卷积核的n个维度与所述n维特征图的n个维度一一对应;所述二维卷积系数、所述二维特征图中,其中一个维度表示宽度,另一个维度表示高度;
二维卷积模块520,用于针对每个二维卷积系数,将该二维卷积系数与该二维卷积系数对应的二维特征图进行二维卷积计算得到参考卷积结果;
确定模块530,用于依据所述各个参考卷积结果,确定所述n维卷积核(k1*k2*……kn-1*kn)与所述n维特征图(f1*f2*……fn-1*fn)进行卷积的目标卷积结果。
在一个示例性的实现过程中,转换模块510具体用于:
针对每一个维度,进行卷积核系数kx的二维转换,得到多个不同的二维卷积系数;
针对每一个维度,进行n维特征图fx的二维转换,得到多个不同的二维特征图。
在一个示例性的实现过程中,二维卷积模块520可以具体用于:
针对任意一个n维特征图的维度值,将n维特征图的维度值与对应的n维卷积核的维度值相比较;
如果相同,将当前维度值对应的二维特征图和二维卷积系数进行二维卷积计算得到当前维度值对应的参考卷积结果;
如果不相同,依据kx将当前维度值对应的各二维特征图和各二维卷积系数进行二维卷积计算得到当前维度值对应的参考卷积结果。
在一个示例性的实现过程中,二维卷积模块520在用于依据kx将当前维度值对应的各二维特征图和各二维卷积系数进行二维卷积计算得到当前维度值对应的参考卷积结果时,可以具体用于:
针对每个n维特征图的维度值,沿着kx个卷积窗口将当前维度值对应的各二维特征图和各二维卷积系数进行二维卷积计算得到当前维度值对应的候选卷积结果,将不同卷积窗口下的候选卷积结果分组,每一组包括kx个候选卷积结果;
将每一组中的候选卷积结果进行指定运算得到当前维度值对应的参考卷积结果。
在一个示例性的实现过程中,二维卷积模块520在用于将不同卷积窗口下的候选卷积结果分组时,可以具体用于:
将不同卷积窗口下的候选卷积结果顺序编号;
将不同卷积窗口下编号相同的候选卷积结果划分在同一组。
在一个示例性的实现过程中,确定模块530具体用于:
将每一维度值对应的参考卷积结果确定为所述目标卷积结果。
本发明实施例还提供了一种基于神经网络的卷积设备。图6是本发明实施例提供的基于神经网络的卷积设备的一个硬件结构图。如图6所示,基于神经网络的卷积设备包括:内部总线601,以及通过内部总线连接的存储器602,处理器603和外部接口604,其中,
所述处理器603,用于读取存储器602上的机器可读指令,并执行所述指令以实现如下操作:
将CnD卷积神经网络中的n维卷积核(k1*k2*……kn-1*kn)、输入所述CnD卷积神经网络与所述n维卷积核执行卷积运算的n维特征图(f1*f2*……fn-1*fn)分别转换为多个不同的二维卷积系数、多个不同的二维特征图,其中所述n维卷积核的n个维度与所述n维特征图的n个维度一一对应;所述二维卷积系数、所述二维特征图中,其中一个维度表示宽度,另一个维度表示高度;
针对每个二维卷积系数,将该二维卷积系数与该二维卷积系数对应的二维特征图进行二维卷积计算得到参考卷积结果;
依据所述各个参考卷积结果确定所述n维卷积核(k1*k2*……kn-1*kn)与所述n维特征图(f1*f2*……fn-1*fn)进行卷积的目标卷积结果。
在一个示例性的实现过程中,所述将CnD卷积神经网络中的n维卷积核(k1*k2*……kn-1*kn)、输入所述CnD卷积神经网络与所述n维卷积核执行卷积运算的n维特征图(f1*f2*……fn-1*fn)分别转换为多个不同的二维卷积系数、多个不同的二维特征图,包括:
针对每一个维度,进行卷积核系数kx的二维转换,得到多个不同的二维卷积系数;
针对每一个维度,进行n维特征图fx的二维转换,得到多个不同的二维特征图。
在一个示例性的实现过程中,所述针对每个二维卷积系数,将该二维卷积系数与该二维卷积系数对应的二维特征图进行二维卷积计算得到参考卷积结果,包括:
针对任意一个n维特征图的维度值,将n维特征图的维度值与对应的n维卷积核的维度值相比较;
如果相同,将当前维度值对应的二维特征图和二维卷积系数进行二维卷积计算得到当前维度值对应的参考卷积结果;
如果不相同,依据kx将当前维度值对应的各二维特征图和各二维卷积系数进行二维卷积计算得到当前维度值对应的参考卷积结果。
在一个示例性的实现过程中,
依据kx将当前维度值对应的各二维特征图和各二维卷积系数进行二维卷积计算得到当前维度值对应的参考卷积结果,包括:
针对每个n维特征图的维度值,沿着kx个卷积窗口将当前维度值对应的各二维特征图和各二维卷积系数进行二维卷积计算得到当前维度值对应的候选卷积结果,将不同卷积窗口下的候选卷积结果分组,每一组包括kx个候选卷积结果;
将每一组中的候选卷积结果进行指定运算得到当前维度值对应的参考卷积结果。
在一个示例性的实现过程中,将不同卷积窗口下的候选卷积结果分组,包括:
将不同卷积窗口下的候选卷积结果顺序编号;
将不同卷积窗口下编号相同的候选卷积结果划分在同一组。
在一个示例性的实现过程中,
所述依据各个参考卷积结果确定所述n维卷积核(k1*k2*……kn-1*kn)与所述n维特征图(f1*f2*……fn-1*fn)进行卷积的目标卷积结果,包括:
将每一维度值对应的参考卷积结果确定为所述目标卷积结果。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有若干计算机指令,所述计算机指令被执行时进行如下处理:
将CnD卷积神经网络中的n维卷积核(k1*k2*……kn-1*kn)、输入所述CnD卷积神经网络与所述n维卷积核执行卷积运算的n维特征图(f1*f2*……fn-1*fn)分别转换为多个不同的二维卷积系数、多个不同的二维特征图,其中所述n维卷积核的n个维度与所述n维特征图的n个维度一一对应;所述二维卷积系数、所述二维特征图中,其中一个维度表示宽度,另一个维度表示高度;
针对每个二维卷积系数,将该二维卷积系数与该二维卷积系数对应的二维特征图进行二维卷积计算得到参考卷积结果;
依据所述各个参考卷积结果确定所述n维卷积核(k1*k2*……kn-1*kn)与所述n维特征图(f1*f2*……fn-1*fn)进行卷积的目标卷积结果。
在一个示例性的实现过程中,所述将CnD卷积神经网络中的n维卷积核(k1*k2*……kn-1*kn)、输入所述CnD卷积神经网络与所述n维卷积核执行卷积运算的n维特征图(f1*f2*……fn-1*fn)分别转换为多个不同的二维卷积系数、多个不同的二维特征图,包括:
针对每一个维度,进行卷积核系数kx的二维转换,得到多个不同的二维卷积系数;
针对每一个维度,进行n维特征图fx的二维转换,得到多个不同的二维特征图。
在一个示例性的实现过程中,所述针对每个二维卷积系数,将该二维卷积系数与该二维卷积系数对应的二维特征图进行二维卷积计算得到参考卷积结果,包括:
针对任意一个n维特征图的维度值,将n维特征图的维度值与对应的n维卷积核的维度值相比较;
如果相同,将当前维度值对应的二维特征图和二维卷积系数进行二维卷积计算得到当前维度值对应的参考卷积结果;
如果不相同,依据kx将当前维度值对应的各二维特征图和各二维卷积系数进行二维卷积计算得到当前维度值对应的参考卷积结果。
在一个示例性的实现过程中,依据kx将当前维度值对应的各二维特征图和各二维卷积系数进行二维卷积计算得到当前维度值对应的参考卷积结果,包括:
针对每个n维特征图的维度值,沿着kx个卷积窗口将当前维度值对应的各二维特征图和各二维卷积系数进行二维卷积计算得到当前维度值对应的候选卷积结果,将不同卷积窗口下的候选卷积结果分组,每一组包括kx个候选卷积结果;
将每一组中的候选卷积结果进行指定运算得到当前维度值对应的参考卷积结果。
在一个示例性的实现过程中,将不同卷积窗口下的候选卷积结果分组,包括:
将不同卷积窗口下的候选卷积结果顺序编号;
将不同卷积窗口下编号相同的候选卷积结果划分在同一组。
在一个示例性的实现过程中,所述依据各个参考卷积结果确定所述n维卷积核(k1*k2*……kn-1*kn)与所述n维特征图(f1*f2*……fn-1*fn)进行卷积的目标卷积结果,包括:
将每一维度值对应的参考卷积结果确定为所述目标卷积结果。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述对本发明特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (12)

1.一种基于神经网络的卷积方法,其特征在于,应用于部署有二维神经网络芯片的设备,所述方法包括:
将CnD卷积神经网络中的n维卷积核k1*k2*……kn-1*kn、输入所述CnD卷积神经网络与所述n维卷积核执行卷积运算的n维特征图f1*f2*……fn-1*fn分别转换为多个不同的二维卷积系数、多个不同的二维特征图,其中所述n维卷积核的n个维度与所述n维特征图的n个维度一一对应;所述n维特征图是根据视频数据得到的;所述二维卷积系数、所述二维特征图中,其中一个维度表示宽度,另一个维度表示高度;转换得到的二维特征图与所述n维特征图之间,高度维度值相同且宽度维度值相同;转换得到的二维卷积系数与所述n维卷积核之间,高度维度值相同且宽度维度值相同;其中,n为大于2的正整数;
利用二维神经网络芯片,针对每个二维卷积系数,将该二维卷积系数与该二维卷积系数对应的二维特征图进行二维卷积计算得到参考卷积结果;
依据各个参考卷积结果确定所述n维卷积核k1*k2*……kn-1*kn与所述n维特征图f1*f2*……fn-1*fn进行卷积的目标卷积结果,所述目标卷积结果用于视频数据的行为分析。
2.根据权利要求1所述的方法,其特征在于,所述将CnD卷积神经网络中的n维卷积核k1*k2*……kn-1*kn、输入所述CnD卷积神经网络与所述n维卷积核执行卷积运算的n维特征图f1*f2*……fn-1*fn分别转换为多个不同的二维卷积系数、多个不同的二维特征图,包括:
针对每一个维度,进行卷积核系数的二维转换,得到多个不同的二维卷积系数;
针对每一个维度,进行n维特征图的二维转换,得到多个不同的二维特征图。
3.根据权利要求2所述的方法,其特征在于,所述针对每个二维卷积系数,将该二维卷积系数与该二维卷积系数对应的二维特征图进行二维卷积计算得到参考卷积结果,包括:
针对任意一个n维特征图的维度值,将n维特征图的维度值与对应的n维卷积核的维度值相比较;
如果相同,将当前维度值对应的二维特征图和二维卷积系数进行二维卷积计算得到当前维度值对应的参考卷积结果;
如果不相同,依据卷积核系数将当前维度值对应的各二维特征图和各二维卷积系数进行二维卷积计算得到当前维度值对应的参考卷积结果。
4.根据权利要求3所述的方法,其特征在于,参考卷积结果的确定方式,包括:
针对每个n维特征图的维度值,沿着对应卷积核维度值个卷积窗口将当前维度值对应的各二维特征图和各二维卷积系数进行二维卷积计算得到当前维度值对应的候选卷积结果,将不同卷积窗口下的候选卷积结果分组,每一组包括对应卷积核维度值个候选卷积结果;
将每一组中的候选卷积结果进行指定运算得到当前维度值对应的参考卷积结果;所述指定运算包括elemenet-wise加操作。
5.根据权利要求4所述的方法,其特征在于,将不同卷积窗口下的候选卷积结果分组,包括:
将不同卷积窗口下的候选卷积结果顺序编号;
将不同卷积窗口下编号相同的候选卷积结果划分在同一组。
6.根据权利要求4所述的方法,其特征在于,所述依据各个参考卷积结果确定所述n维卷积核k1*k2*……kn-1*kn与所述n维特征图f1*f2*……fn-1*fn进行卷积的目标卷积结果,包括:
将每一维度值对应的参考卷积结果确定为所述目标卷积结果。
7.一种基于神经网络的卷积装置,其特征在于,应用于部署有二维神经网络芯片的设备,所述装置包括:
转换模块,用于将CnD卷积神经网络中的n维卷积核k1*k2*……kn-1*kn、输入所述CnD卷积神经网络与所述n维卷积核执行卷积运算的n维特征图f1*f2*……fn-1*fn分别转换为多个不同的二维卷积系数、多个不同的二维特征图,其中所述n维卷积核的n个维度与所述n维特征图的n个维度一一对应;所述n维特征图是根据视频数据得到的;所述二维卷积系数、所述二维特征图中,其中一个维度表示宽度,另一个维度表示高度;转换得到的二维特征图与所述n维特征图之间,高度维度值相同且宽度维度值相同;转换得到的二维卷积系数与所述n维卷积核之间,高度维度值相同且宽度维度值相同;其中,n为大于2的正整数;
二维卷积模块,用于利用二维神经网络芯片,针对每个二维卷积系数,将该二维卷积系数与该二维卷积系数对应的二维特征图进行二维卷积计算得到参考卷积结果;
确定模块,用于依据各个参考卷积结果,确定所述n维卷积核k1*k2*……kn-1*kn与所述n维特征图f1*f2*……fn-1*fn进行卷积的目标卷积结果,所述目标卷积结果用于视频数据的行为分析。
8.根据权利要求7所述的装置,其特征在于,所述转换模块具体用于:
针对每一个维度,进行卷积核系数的二维转换,得到多个不同的二维卷积系数;
针对每一个维度,进行n维特征图的二维转换,得到多个不同的二维特征图。
9.根据权利要求8所述的装置,其特征在于,所述二维卷积模块具体用于:
针对任意一个n维特征图的维度值,将n维特征图的维度值与对应的n维卷积核的维度值相比较;
如果相同,将当前维度值对应的二维特征图和二维卷积系数进行二维卷积计算得到当前维度值对应的参考卷积结果;
如果不相同,依据卷积核系数将当前维度值对应的各二维特征图和各二维卷积系数进行二维卷积计算得到当前维度值对应的参考卷积结果。
10.根据权利要求9所述的装置,其特征在于,所述二维卷积模块在确定参考卷积结果时具体用于:
针对每个n维特征图的维度值,沿着对应卷积核维度值个卷积窗口将当前维度值对应的各二维特征图和各二维卷积系数进行二维卷积计算得到当前维度值对应的候选卷积结果,将不同卷积窗口下的候选卷积结果分组,每一组包括对应卷积核维度值个候选卷积结果;
将每一组中的候选卷积结果进行指定运算得到当前维度值对应的参考卷积结果;所述指定运算包括elemenet-wise加操作。
11.根据权利要求10所述的装置,其特征在于,所述二维卷积模块在用于将不同卷积窗口下的候选卷积结果分组时,具体用于:
将不同卷积窗口下的候选卷积结果顺序编号;
将不同卷积窗口下编号相同的候选卷积结果划分在同一组。
12.根据权利要求10所述的装置,其特征在于,所述确定模块具体用于:
将每一维度值对应的参考卷积结果确定为所述目标卷积结果。
CN201910613647.4A 2019-07-09 2019-07-09 基于神经网络的卷积方法及装置 Active CN112215330B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910613647.4A CN112215330B (zh) 2019-07-09 2019-07-09 基于神经网络的卷积方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910613647.4A CN112215330B (zh) 2019-07-09 2019-07-09 基于神经网络的卷积方法及装置

Publications (2)

Publication Number Publication Date
CN112215330A CN112215330A (zh) 2021-01-12
CN112215330B true CN112215330B (zh) 2024-04-26

Family

ID=74047313

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910613647.4A Active CN112215330B (zh) 2019-07-09 2019-07-09 基于神经网络的卷积方法及装置

Country Status (1)

Country Link
CN (1) CN112215330B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61248645A (ja) * 1985-04-25 1986-11-05 コーデツクス・コーポレーシヨン 多次元回旋コード化通信システム
CN108629405A (zh) * 2017-03-22 2018-10-09 杭州海康威视数字技术股份有限公司 提高卷积神经网络计算效率的方法和装置
CN108764287A (zh) * 2018-04-24 2018-11-06 东南大学 基于深度学习和分组卷积的目标检测方法及系统
CN109117187A (zh) * 2018-08-27 2019-01-01 郑州云海信息技术有限公司 卷积神经网络加速方法及相关设备
CN109741366A (zh) * 2018-11-27 2019-05-10 昆明理工大学 一种融合多层卷积特征的相关滤波目标跟踪方法
CN109740754A (zh) * 2018-12-29 2019-05-10 北京中科寒武纪科技有限公司 神经网络计算装置、神经网络计算方法及相关产品
CN109766949A (zh) * 2019-01-17 2019-05-17 北京海印博识智能科技有限公司 卷积神经网络轻量化方法、装置及电子设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11645835B2 (en) * 2017-08-30 2023-05-09 Board Of Regents, The University Of Texas System Hypercomplex deep learning methods, architectures, and apparatus for multimodal small, medium, and large-scale data representation, analysis, and applications

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61248645A (ja) * 1985-04-25 1986-11-05 コーデツクス・コーポレーシヨン 多次元回旋コード化通信システム
CN108629405A (zh) * 2017-03-22 2018-10-09 杭州海康威视数字技术股份有限公司 提高卷积神经网络计算效率的方法和装置
CN108764287A (zh) * 2018-04-24 2018-11-06 东南大学 基于深度学习和分组卷积的目标检测方法及系统
CN109117187A (zh) * 2018-08-27 2019-01-01 郑州云海信息技术有限公司 卷积神经网络加速方法及相关设备
CN109741366A (zh) * 2018-11-27 2019-05-10 昆明理工大学 一种融合多层卷积特征的相关滤波目标跟踪方法
CN109740754A (zh) * 2018-12-29 2019-05-10 北京中科寒武纪科技有限公司 神经网络计算装置、神经网络计算方法及相关产品
CN109766949A (zh) * 2019-01-17 2019-05-17 北京海印博识智能科技有限公司 卷积神经网络轻量化方法、装置及电子设备

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Siqi Liu,et al..3D Anisotropic Hybrid Network:Transferring Convolutional Features from 2D Images to 3D Anisotropic Volumes.arXiv:1711.08580.2017,1-17. *
二维矩阵卷积在向量处理器中的设计与实现;张军阳;郭阳;;国防科技大学学报(03);72-78 *
光照不均匀的结构光图像的条纹快速提取方法;郑红波;石豪;杜轶诚;张美玉;秦绪佳;;计算机科学(05);279-285 *

Also Published As

Publication number Publication date
CN112215330A (zh) 2021-01-12

Similar Documents

Publication Publication Date Title
JP7007488B2 (ja) ハードウェアベースのプーリングのシステムおよび方法
US10013628B2 (en) Information processing apparatus and information processing method
CN109754359B (zh) 一种应用于卷积神经网络的池化处理的方法及系统
US20200394516A1 (en) Filter processing device and method of performing convolution operation at filter processing device
JP2018508887A (ja) データ処理システム、計算ノードおよびデータ処理方法
CN109859314B (zh) 三维重建方法、装置、电子设备和存储介质
CN111860276B (zh) 人体关键点检测方法、装置、网络设备及存储介质
CN112232889A (zh) 一种用户兴趣画像扩展方法、装置、设备及存储介质
US9232154B2 (en) Object selection in an image
US10521918B2 (en) Method and device for filtering texture, using patch shift
WO2021088569A1 (en) Convolution method and device, electronic device
CN114138231B (zh) 执行矩阵乘法运算的方法、电路及soc
CN111310115B (zh) 数据处理方法、装置及芯片、电子设备、存储介质
KR102305575B1 (ko) 이미지 간 유사도를 이용한 유사 영역 강조 방법 및 시스템
CN112990157B (zh) 一种基于fpga的图像目标识别加速系统
CN112215330B (zh) 基于神经网络的卷积方法及装置
CN112215329B (zh) 基于神经网络的卷积计算方法及装置
CN110245706B (zh) 一种针对嵌入式应用的轻量化目标检测方法
CN112966729A (zh) 一种数据处理方法、装置、计算机设备及存储介质
US11467973B1 (en) Fine-grained access memory controller
CN111523533B (zh) 一种从图像中确定物体所在区域的方法及装置
WO2021179117A1 (zh) 神经网络通道数搜索方法和装置
CN109542837B (zh) 运算方法、装置及相关产品
CN115759212A (zh) 卷积运算电路及方法、神经网络加速器和电子设备
CN109189773B (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