CN111985618B - 3d卷积神经网络在神经网络处理器上的处理方法和装置 - Google Patents

3d卷积神经网络在神经网络处理器上的处理方法和装置 Download PDF

Info

Publication number
CN111985618B
CN111985618B CN202010821325.1A CN202010821325A CN111985618B CN 111985618 B CN111985618 B CN 111985618B CN 202010821325 A CN202010821325 A CN 202010821325A CN 111985618 B CN111985618 B CN 111985618B
Authority
CN
China
Prior art keywords
pooling
spliced
neural network
parameter
dimension
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
CN202010821325.1A
Other languages
English (en)
Other versions
CN111985618A (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 CN202010821325.1A priority Critical patent/CN111985618B/zh
Publication of CN111985618A publication Critical patent/CN111985618A/zh
Application granted granted Critical
Publication of CN111985618B publication Critical patent/CN111985618B/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

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

本申请提供一种3D卷积神经网络在神经网络处理器上的处理方法和装置。本申请中,将图序列在时间维度上的数据拼接到通道维度上,得到多个2D拼接图,同时,将C3D卷积层的3D卷积核在时间维度上的数据也拼接到通道维度上,得到2D拼接卷积核。由此,神经网络处理器可以基于该2D拼接图和2D拼接卷积核进行卷积运算,实现了神经网络处理器支持神经网络的卷积处理。同时,本申请还将C3D池化层进行池化操作步骤的转换,将输入到池化层的数据降低时间维度增加数量维度,进行多次第一池化操作,然后沿高度或宽度对数据进行拼接后进行二次池化操作,实现了神经网络处理器支持卷积神经网络的池化处理。

Description

3D卷积神经网络在神经网络处理器上的处理方法和装置
技术领域
本申请涉及图像处理领域,尤其涉及3D卷积神经网络在神经网络处理器上的处理方法和装置。
背景技术
卷积神经网络(Convolutional Neural Networks,CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(Feedforward Neural Networks),被广泛地应用于图像识别、语音识别、自然语言识别等各个领域。
在卷积神经网络应用中,神经网络处理器由于具有更快的处理速度,因此成为应用中的首选,特别是在一些对实时性要求较高的应用场景中,更倾向于采用神经网络处理器来实现卷积神经网络。
然而,由于神经网络处理器的硬件结构是固定的,一般只支持卷积核为二维的卷积神经网络(简称二维卷积神经网络,也称2D卷积)。在设计神经网络处理器时未考虑扩展,神经网络处理器往往仅支持二维卷积神经网络(也称2D卷积),不支持卷积核为三维的卷积神经网络(简称三维卷积神经网络,也称3D卷积),这导致三维卷积神经网络不能被应用在神经网络处理器,限制了三维卷积神经网络的应用,例如,神经网络处理器无法在智能监控的行为分析领域取得较好的算法效果。
发明内容
有鉴于此,本申请提供一种3D卷积神经网络在神经网络处理器上的处理方法和装置。
根据本申请实施例的第一方面,提供一种3D卷积神经网络在神经网络处理器上的处理方法,所述神经网络处理器支持2D卷积神经网络的运行,不支持所述3D卷积神经网络的运行,所述3D卷积神经网络为C3D网络,所述C3D网络包括C3D卷积层和C3D池化层,所述方法包括:
步骤1:接收时间维度参数为L1的图序列,将所述图序列按照C3D卷积核时间维度参数L2拆分成时间维度参数值降低的L个子序列,每个子序列包括按照时间顺序排列的L2个图;并针对所述L个子序列中每一个,将所述L2个图沿通道维度方向上按顺序进行图拼接,将其转换成时间维度参数为1但通道维度方向上存在拼接的一个2D拼接图,最终得到L个2D拼接图;其中,所述L=(L1-L2+2*Pad_L2)/Stride_L2+1,其中,L2为C3D卷积层时间维度参数,Pad_L2为用于卷积计算的加窗参数,Stride_L2为用于卷积计算的步长参数;
步骤2:将所述步骤1得到的L个2D拼接图输入到C3D卷积层,先将时间维度参数为L2的C3D卷积核转换成时间维度参数为1但通道维度方向存在L2个卷积核拼接的一个2D拼接卷积核;然后执行所述L个2D拼接图与所述2D拼接卷积核分别进行卷积运算,输出L个2D特征图,所述C3D卷积层输出的所述L个2D特征图输入到所述C3D池化层;
步骤3:先将所述C3D池化层进行池化操作的维度转换,其中,所述C3D池化层进行池化操作的时间维度参数由L3转换成1,所述C3D池化层执行池化操作的数量维度参数由1转换为L3;然后将输入到所述C3D池化层的所述L个2D特征图先执行L次时间维度参数为1的第一池化操作,得到L个初步压缩的第一池化特征图,再所述L个第一池化特征图进行二次池化操作,得到再次压缩的K个特征图,其中,K小于L,所述第一池化操作是将输入的每个所述2D特征图滑窗并按设定取值方式进行取值的操作;所述设定取值方式为取平均值或取最大值。
根据本申请实施例的第二方面,提供一种3D卷积神经网络在神经网络处理器上的处理装置,所述神经网络处理器支持2D卷积神经网络的运行,不支持所述3D卷积神经网络的运行,所述3D卷积神经网络为C3D网络,所述C3D网络包括C3D卷积层和C3D池化层,所述装置包括:
图序列处理单元,用于:
接收时间维度参数为L1的图序列,将所述图序列按照C3D卷积核时间维度参数L2拆分成时间维度参数值降低的L个子序列,每个子序列包括按照时间顺序排列的L2个图;并针对所述L个子序列中每一个,将所述L2个图沿通道维度方向上按顺序进行图拼接,将其转换成时间维度参数值为1但通道维度方向上存在拼接的一个2D拼接图,最终得到L个2D拼接图;其中,所述L=(L1-L2+2*Pad_L2)/Stride_L2+1,其中,L2为C3D卷积层时间维度参数,Pad_L2为用于卷积计算的加窗参数,Stride_L2为用于卷积计算的步长参数;
卷积处理单元,用于:
将所述步骤1得到的L个2D拼接图输入到C3D卷积层,先将时间维度参数为L2的C3D卷积核转换成时间维度参数为1但通道维度方向存在L2个卷积核拼接的一个2D拼接卷积核;然后执行所述L个2D拼接图与所述2D拼接卷积核分别进行卷积运算,输出L个2D特征图,所述C3D卷积层输出的所述L个2D特征图输入到所述C3D池化层;
池化处理单元,用于:
先将所述C3D池化层进行池化操作的维度转换,其中,所述C3D池化层进行池化操作的时间维度参数由L3转换成1,所述C3D池化层执行池化操作的数量维度参数由1转换为L3;然后将输入到所述C3D池化层的所述L个2D特征图先执行L次时间维度参数为1的第一池化操作,得到L个初步压缩的第一池化特征图,再将所述L个第一池化特征图进行二次池化操作,得到再次压缩的K个特征图,其中,K小于L,所述第一池化操作是将输入的每个所述2D特征图滑窗并按设定取值方式进行取值的操作;所述设定取值方式为取平均值或取最大值。
根据本申请实施例的第三方面,提供一种神经网络处理器,所述神经网络处理器支持2D卷积神经网络的运行,所述神经网络处理器执行上述第一方面所述的方法。
根据本申请实施例的第四方面,提供一种芯片,所述芯片包括可读存储介质和神经网络处理器;
其中,所述可读存储介质,用于存储机器可执行指令;
所述神经网络处理器,支持2D卷积神经网络的运行,用于读取所述可读存储介质上的所述机器可执行指令,并执行所述指令以实现上述第一方面所述的方法。
本申请中,将图序列在时间维度上的数据拼接到通道维度上,得到多个2D拼接图,同时,将C3D卷积层的3D卷积核在时间维度上的数据也拼接到通道维度上,得到2D拼接卷积核。由此,神经网络处理器可以基于该2D拼接图和2D拼接卷积核进行卷积运算,实现了神经网络处理器支持3D神经网络的卷积处理。同时,本申请还将C3D池化层进行池化操作步骤的转换,将输入到池化层的数据降低时间维度增加数量维度,进行多次第一池化操作,然后沿高度或宽度对数据进行拼接后进行二次池化操作,实现了神经网络处理器支持3D卷积神经网络的池化处理。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1a是本申请一示例性实施例示出的一种C3D卷积神经网络中卷积运算的方法示意图。
图1b是本申请一示例性实施例示出的一种3D卷积神经网络在神经网络处理器上的处理方法的流程示意图。
图2是本申请一示例性实施例示出的另一种3D卷积神经网络在神经网络处理器上的处理方法的流程示意图。
图3是本申请一示例性实施例示出的一种沿通道方向进行图拼接的方法示意图。
图4是本申请一示例性实施例示出的一种将图序列降维成2D拼接图的方法示意图。
图5是本申请一示例性实施例示出的一种将卷积核转换成2D拼接卷积核的方法示意图。
图6是本申请一示例性实施例示出的一种卷积运算的方法示意图。
图7是本申请一示例性实施例示出的一种池化操作的方法示意图。
图8是本申请一示例性实施例示出的另一种池化操作的方法示意图。
图9是本申请一示例性实施例示出的另一种池化操作的方法示意图。
图10是申请一示例性实施例示出的另一种池化操作的方法示意图。
图11是申请一示例性实施例示出的一种芯片的一结构示意图。
图12是本申请一示例性实施例示出的一种3D卷积神经网络在神经网络处理器上的处理装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
在本申请实施例中,会用到一些特定的技术术语,为方便叙述,以下先对这些技术术语进行说明:
1)神经网络处理器:
神经网络处理器为用于处理神经网络的处理器芯片。相比软件神经网络处理器的神经网络处理速度更快。这里,神经网络处理器可为专门针对深度学习网络设计的,其可为ASIC处理器芯片。
2)卷积神经网络:
卷积神经网络通常包括有多个卷积层和多个卷积层连接的池化层。
其中,卷积层用于对输入到该卷积层的输入特征图进行特征提取。卷积层中包括多个卷积核。卷积层被配置对应的卷积层参数,其可包括卷积核系数、步长参数和加窗参数。卷积核系数可以包括权重系数和偏置值。
池化层通常连接于卷积层之后,用于对卷积层输出的特征图进行特征压缩。池化层被配置对应的池化层参数,其可包括池化窗口大小、步长参数和加窗参数。
在卷积神经网络中,可以按照实际需求部署卷积层和池化层。例如,可以在每个卷积层后连接一个池化层;或者,可以在多个连续的卷积层后连接一个池化层等,本实施例并不具体限定。
本文中出现的3D卷积神经网络特指多维度(维度大于2)神经网络,相比传统的二维神经网络,多维度神经网络会在二维神经网络基础上,再加入一个或多个维度,比如在视频处理中引入时间维度,输入多帧视频数据进行卷积。
3)C3D卷积神经网络:
C3D卷积神经网络是一种被广泛应用的三维卷积神经网络模型。C3D(Convolutional 3D)模型在传统的二维卷积神经网路的空间域的基础上,增加了一个时间的维度,能够更好的提取行为的时间特征,而且相对双流法等有较快的速度。在C3D卷积神经网络中的卷积层中,卷积核支持高度、宽度和时间三个维度,可以对包含有卷积核所支持的三个维度的输入特征图进行特征提取。
为方便理解,下面结合图1a来介绍C3D卷积神经网络中的卷积运算过程。
C3D卷积神经网络的卷积层中,输入卷积层的图序列可以表示为W1*H1*C1*L1*N1,其中,W1表示宽度维度参数,H1表示高度维度参数,C1表示通道维度参数,L1表示时间维度参数,N1表示数量维度参数。
C3D卷积核可以表示为W2*H2*C2*L2*N2,其中,W2表示宽度维度参数,H2表示高度维度参数,C2表示通道维度参数,L2表示时间维度参数,N2表示数量维度参数(即卷积核数量)。
针对输入卷积层的每一个图序列(W1*H1*C1*L1),分别与每一个卷积核(W2*H2*C2*L2)进行3D卷积运算,分别在高度维度、宽度维度和时间维度上进行滑窗处理以及对应的点乘运算,从而提取该图序列在高度维度、宽度维度和时间维度上的特征。
为便于描述,这里以图序列在数量维度参数N1、以及C3D卷积核在数量维度参数N2均为1为例。如图1a所示,图序列101可以表示为6*6*100*5(对应于W1*H1*C1*L1),C3D卷积核102可以表示为3*3*100*3(对应于W2*H2*C2*L2)。按照C3D卷积核,在时间维度、宽度维度和高度维度上,分别对图序列101进行滑窗处理。具体的,按照C3D卷积核的时间维度参数3对图序列进行划分,得到3个子序列,分别为包含时间维度索引值t0-t2的子序列1,包含时间维度索引值t1-t3的子序列2,以及包含时间维度索引值t2-t4的子序列2。其中,每个子序列分别与C3D卷积核进行卷积计算,子序列1进行卷积计算得到时间维度索引值为t”0的2D特征图,子序列2进行卷积计算得到时间维度索引值为t”1的2D特征图,子序列3进行卷积计算得到时间维度索引值为t”2的2D特征图。由此,可以得到在时间维度参数为3的2D特征图103,该2D特征图可以表示为4*4*3,表示在高度维度和宽度维度上参数均为4,在时间维度上参数为3。
可以理解的是,这里只是对C3D卷积神经网络中的卷积方法做简要说明,具体可以参照现有技术,这里不再赘述。
C3D卷积神经网络模型被应用于智能监控领域中的行为分析及其相关产品中。本发明的目的是为了在具体深度学习处理器上能够部署相关产品,因此也涉及深度学习专属处理器相关领域。
目前传统的神经网络处理器,尤其是为深度学习网络设计的ASIC处理器芯片,这种处理器由于设计时未考虑扩展,往往不支持多维卷积,往往只支持二维卷积神经网络,不支持C3D卷积神经网络。为了能在现有的神经网络处理器上实现C3D卷积神经网络和多维卷积神经网络的功能,本发明实施例提供了一种3D卷积神经网络在神经网络处理器上的处理方法,可应用在用于智能分析的摄像机设备或与摄像机设备相连接的处理设备中执行智能分析功能。
本申请带来的收益效果如下:
1、从技术角度看,C3D卷积神经网络相比2D卷积神经网络有更好的算法性能,如果不做2D网络转换,在神经网络处理器中无法运行,故在做行为分析等应用中不能取得更好的算法效果。通过本发明的C3D网络的转换,可在较为低端的神经网络处理器上拥有较高的算法效果。
2、从产品角度看,在较低成本的处理器上部署效果更好的算法,并且本文的方法对于内存消耗没有增加,可提升行为分析相关产品的竞争力。
参见图1b图1b本申请一示例性实施例示出的一种3D卷积神经网络在神经网络处理器上的处理方法的流程示意图。其中,神经网络处理器支持2D卷积神经网络的运行,不支持3D卷积神经网络的运行。本实施例中,3D卷积神经网络为C3D网络,该C3D网络包括C3D卷积层和C3D池化层。
如图1b示,该流程可包括以下步骤:
步骤S101:接收时间维度参数为L1的图序列,将所述图序列按照C3D卷积核时间维度参数L2拆分成时间维度参数值降低的L个子序列,每个子序列包括按照时间顺序排列的L2个图;并针对所述L个子序列中每一个,将所述L2个图沿通道维度方向上按顺序进行图拼接,将其转换成时间维度参数为1但通道维度方向上存在拼接的一个2D拼接图,最终得到L个2D拼接图。
其中,所述L=(L1-L2+2*Pad_L2)/Stride_L2+1,其中,L2为C3D卷积层时间维度参数,Pad_L2为用于卷积计算的加窗参数,Stride_L2为用于卷积计算的步长参数。
本实施例中,图序列可以是包括多帧图像的视频流,或者也可以是卷积层或池化层处理后输出的特征图。图序列的参数可以包括宽度维度、高度维度和时间维度。
在一个例子中,图序列可以表示为W1*H1*C1*L1*N1。其中,W1表示宽度维度参数,H1表示高度维度参数,C1表示通道维度参数,L1表示时间维度参数,N1表示数量维度参数。其中,W1*H1可以表示图像在空间维度上的特征,例如6*6的图像可以表示该图像在每个通道上包括36个元素;C1可以表示图像的通道数,例如常见的彩色图像可以由R、G、B三个通道来分别表示红、绿、蓝三个颜色;L1可以表示图序列中时间维度上不同索引的图像的数量,例如一段视频流中可以包括5个不同时刻(例如时间戳分别为t0-t4,即时间维度上索引分别为t0-t4)的视频图像,则该视频流L1=5;N1可以表示图序列的数量。
由于每个图序列的处理方式类似,为方便描述,下文均以N1=1为例进行说明。当然,N1也可以大于1,这里只是示例性说明,并不进行限定。
本实施例中,可以按照如图2所示的流程来实现对图序列的拆分。如图2所示,可以包括以下步骤:
步骤S201:沿着时间维度对接收到的时间维度的参数为L1的图序列进行拆分,得到L1个图。
本实施例中,图序列中包括时间维度上索引值不同、且索引值从小到大排序的L1个图,按照不同的索引值对该图序列进行拆分,可以得到L1个图。其中,每个图可以表示为W1*H1*C1。例如,对于时间维度上索引值分别为t0-t4的图序列,可以按照时间维度上不同的索引值拆分成5个图。
步骤S202:按照C3D卷积核时间维度参数L2对L1个图进行划分,得到L个子序列。其中,每个子序列包括按照时间顺序排列的L2个图。
其中,C3D卷积核时间维度参数L2为卷积核权重系数在时间维度上的参数。
本实施例中,可以按照卷积层中设定的加窗参数Pad_L2、以及步长参数Stride_L2,对步骤S201中得到的L1个图进行划分并得到L个子序列。其中,L的值可以采用公式(1)来计算:
L=(L1 - L2 + 2 * Pad_L2)/ Stride_L2+ 1 (1)
其中,L1为图序列在时间维度上的参数;L2为C3D卷积核在时间维度上的参数;Pad_L2为用于卷积计算的加窗参数;Stride_L2为用于卷积计算的步长参数。需要说明的是,这里的加窗参数Pad_L2和步长参数Stride_L2与是根据C3D卷积核在进行卷积运算时的加窗参数和步长参数确定的。若采用公式(1)计算的结果不为整数,则对计算结果向下取整数作为L的值。
本实施例中,划分子序列的方法可以有多种,例如可以采用滑窗的方式将该L1个图划分成L个子序列。至于滑窗的具体方法,本申请将在下文结合图4进行介绍,在此暂不赘述。
至此,完成了图2所示的流程。通过图2流程,可以将接收到的时间维度参数为L1的图序列拆分成L个子序列,且每个子序列中包括按照时间维度索引值从小到大排列的L2个图。
本实施例中,基于图2所示流程中得到的L个子序列,可以针对L个子序列中的每一个,将该序列中的L2个图沿通道维度方向上按顺序进行图拼接,将其转换成时间维度参数为1,且通道维度方向上存在拼接的一个2D拼接图。对该L个子序列分别进行拼接,可以得到L个2D拼接图。在一个例子中,针对每个子序列中的L2个图,可以将第2个图沿通道方向拼接到第1个图之后,再将第3个图沿通道方向拼接到第2个图之后,以此类推,直到将该第L2个图拼接到第L2-1个图之后。
可以理解的是,在卷积神经网络的卷积层中,一般不在通道维度上进行特征提取,卷积核通道维度参数与输入该卷积层的特征图相同。因此,本实施例通过步骤S101可以将时间维度的数据拆分并拼接到通道维度得到2D拼接图,以使神经网络处理器可以对2D拼接图进行处理。
下面以图3为例对本步骤中沿通道方向按顺序进行图拼接的具体方法进行说明。
如图3所示,假设一个子序列中包括3个图,其中每个图在时间维度上的索引值按顺序分别为t0、t1、t2,且每个图在通道维度上的参数为3(分别为R、G、B三个通道)。
例如在图3中,时间维度上索引值为t0的图,在R通道上的数据块为x0,在G通道上的数据块为y0,在B通道上的数据块为z0;同理,时间维度上索引值为t1的图在R、G、B三个通道上的数据块分别为x1、y1、z1,时间维度上索引值为t2的图在R、G、B三个通道上的数据块分别为x2、y2、z2。
其中,每个图在各通道上的数据块用于表示该图在高度维度和宽度维度上的数据,该数据块可以表示为H*W,其中H表示该图的高度维度参数,W表示该图的宽度维度参数。例如,对于时间维度上索引值为t0、在R通道上的数据块x0,其参数可以为2*2,对应于H*W,表示在高度维度H上参数为2,在宽度维度W上参数为2,该数据块的数据如301所示,分别为a00、a01、a10、a11。
在对图3中的三个图进行拼接时,将t1对应的图中的各数据块,按照R、G、B的通道顺序,叠加到t0对应的图的通道方向上;将t2对应的图也按照R、G、B的通道顺序,叠加到t1对应的图的通道方向上。
由此,可以得到如302所示的2D拼接图。该2D拼接图在通道方向上的维度值为9(t0、t1、t2对应的三个图的通道维度参数之和),依次包括x0、y0、z0、x1、y1、z1、x2、y2、x2这9个数据块。
步骤S102:将所述步骤S102得到的L个2D拼接图输入到C3D卷积层,先将时间维度参数为L2的C3D卷积核转换成时间维度参数为1但通道维度方向存在L2个卷积核拼接的一个2D拼接卷积核;然后执行所述L个2D拼接图与所述2D拼接卷积核分别进行卷积运算,输出L个2D特征图,所述C3D卷积层输出的所述L个2D特征图输入到所述C3D池化层。
本实施例中,C3D网络卷积层中的卷积核可以表示为W2*H2*C2*L2*N2。其中,W2表示宽度维度参数,H2表示高度维度参数,C2表示通道维度参数,L2表示时间维度参数,N2表示数量维度参数(即卷积核数量)。这里参数的具体含义与图序列中各参数的含义类似,这里不再赘述。需要说明的是,通道维度参数C2的数值与图序列中通道维度参数C1数值相同。
由于每个卷积核的处理方式类似,为方便描述,下文均以N2=1为例进行说明。当然,N2也可以大于1,这里只是示例性说明,并不进行限定。
本实施例中,可以按照与步骤S101类似的方法将C3D的卷积核转换为2D拼接卷积核。首先,将C3D卷积核按照在时间维度上索引值不同拆分成L2个2D卷积核,拆分后的每个卷积核在时间维度参数为1;然后,将该L2个卷积核按照顺序在通道维度方向上进行拼接,得到通道维度方向上存在L2个2D卷积核拼接的2D拼接卷积核。
可以理解的是,该2D拼接卷积核在通道维度的参数为L2*C2,在时间维度的参数为1;与步骤1中得到的2D拼接图在通道维度和时间维度的参数相同。
本实施例中,可以将步骤S101中得到的L个2D拼接图分别与2D拼接卷积核进行卷积运算,得到L个2D特征图。
需要说明的是,本申请中的神经网络处理器可以实现上述2D拼接图与2D拼接卷积核的卷积运算,运算时可以参照C3D卷积层中的步长参数和加窗参数进行处理,卷积运算的具体方法可以参照现有技术,这里不再赘述。
本实施例中,可以将上述卷积运算得到的L个2D特征图输入到C3D池化层进行特征压缩。
步骤S103:先将所述C3D池化层进行池化操作的维度转换,其中,所述C3D池化层进行池化操作的时间维度参数由L3转换成1,所述C3D池化层执行池化操作的数量维度参数由1转换为L3;然后将输入到所述C3D池化层的所述L个2D特征图先执行L次时间维度参数为1的第一池化操作,得到L个初步压缩的第一池化特征图,再将所述L个第一池化特征图进行二次池化操作,得到再次压缩的K个特征图,其中,K小于L,所述第一池化操作是将输入的每个所述2D特征图滑窗并按设定取值方式进行取值的操作;所述设定取值方式为取平均值或取最大值。
C3D池化层中可以包括一个池化窗口,可以表示为W3*H3*L3。其中,W3表示宽度维度参数,H3表示高度维度参数,L3表示时间维度参数。
本实施例中,对该池化层中进行池化操作的维度转换,也可以理解为对该池化窗口的时间维度参数和数量维度参数进行转换。首先,将池化操作的时间维度参数由L3转换为1,也就是将该池化窗口时间维度参数L3转换为1,得到第一池化窗口,可以表示为W3*H3。同时,将池化操作的数量维度参数由1转换为L3,也就是将该池化窗口的数量维度参数由1转换为L3,得到二次池化窗口。其中,二次池化窗口在宽度维度、高度维度和通道维度的参数为1。
基于上述第一池化窗口将步骤S102中得到的2D特征图进行第一池化操作,得到L个初步压缩的第一池化特征图;然后基于二次池化窗口,对L个第一池化特征图进行二次池化操作,得到再次压缩的K个特征图。
下面说明进行池化操作的具体方法。
本实施例中,第一池化窗口在数量维度参数为1,也就是说基于第一池化窗口对L个2D特征图中的每一个分别进行第一池化操作。
首先,按照第一池化窗口大小,以及预设的步长参数和填充参数对该2D特征图在高度维度和宽度维度上进行滑窗分组;
然后,将滑窗所处位置中包含的多个数据视为一个分组,将该分组中的多个数据压缩为一个数据,作为本次滑窗分组的压缩结果。在一个例子中,数据压缩的方式可以是取该多个数据的平均值或最大值;
接着,按照设定的步长参数移动滑窗,并将该滑窗所处位置中包含的数据进行压缩,重复这一过程,直到滑窗移动到该2D特征图的另一端,最终完成对该2D特征图的初步压缩,得到一个第一池化特征图。
采用上述方法分别对L个2D特征图分别进行初步压缩,得到L个第一池化特征图。
基于该L个第一池化特征图,本实施例可以采用二次池化窗口对其进行二次池化操作,得到再次压缩的K个特征图。首先将该L个第一池化特征图分成K个分组,例如可以按照滑窗的方式依次选取多个第一池化特征图分为一组等;然后基于K组第一池化特征图,将每个分组中的多个第一池化特征图压缩成1个特征图,针对该K个分组分别进行压缩,可以得到再次压缩的K个特征图。这里,数据压缩的方式与第一池化操作中数据压缩的方法相同,可以是取该多个数据的平均值或最大值。
二次池化操作的具体方法将在将下文结合图8-图10,以及3个具体的实施例进行说明,这里暂不赘述。
经过步骤S103,可以得到K个特征图。本实施例中,可以将该K个特征图视为在时间维度参数为K的图序列。针对该图序列,可以根据C3D卷积神经网络的模型结构继续进行处理,例如可以将该在时间维度参数为K的图序列输入下一个卷积层,并根据图1b示流程对该图序列进行处理。
至此,完成了图1b所示的流程。在图1b所示的流程中,将图序列在时间维度上的数据拼接到通道维度上,得到多个2D拼接图;同时,将C3D卷积层的3D卷积核在时间维度上的数据也拼接到通道维度上,得到2D拼接卷积核。由此,神经网络处理器可以基于该2D拼接图和2D拼接卷积核进行卷积运算,实现了神经网络处理器支持3D神经网络的卷积处理。同时,本申请还将C3D池化层进行池化操作步骤的转换,将输入到池化层的数据降低时间维度增加数量维度,进行多次第一池化操作,然后沿高度或宽度对数据进行拼接后进行二次池化操作,实现了神经网络处理器支持卷积神经网络的池化处理。
下面结合图4-图6,对步骤S101-步骤S102进行具体介绍。
按照步骤S101,将接收到的图序列在时间维度上的数据拼接到通道维度上。包括以下步骤:
步骤A1:针对接收到的图序列,根据在时间维度上索引值不同,将图序列拆分成L1个图,其中每个图在时间维度上参数为1。
如图4所示,图序列401可以表示为6*6*100*5*1,对应于W1*H1*C1*L1*N1,表示该图序列401在高度维度和宽度维度上的参数W1、H1均为6;在通道维度参数C1为100;在时间维度上的参数L1为5;在数量维度上的参数N1为1。本步骤中,将该图序列401拆分成5个图,其中每个图可以表示为6*6*100(对应于W1*H1*C1)。
步骤A2:按照滑窗的方式将该L1个图划分成L个子序列,可以包括如下步骤:
步骤A2a:按照加窗参数Pad_L2在时间维度上对该L1个图进行加窗操作,例如,可以在该L1个图的任意一端增加Pad_L2个各元素数值均为0的图,得到(L1+Pad_L2)个图;
步骤A2b:基于预设的滑窗窗口和步长参数Stride_L2,对步骤A2a中加窗后的L1+Pad_L2个图进行滑窗分组。
其中,滑窗窗口在时间维度上的参数L2与卷积层中卷积核时间维度参数相等,在其他维度上的大小与上述L1个图在对应维度的参数相同。例如,若将该L1个图表示为W1*H1*C1*L1,则滑窗窗口的大小可以为W1*H1*C1*L2。
在滑窗分组时,首先将滑窗窗口置于该L1+Pad_L2个图的一端,该位置下,滑窗窗口可以包含L2个图,则将该位置下滑窗窗口中所包含的L2个图划分成一个子序列。然后,基于步长参数Stride_L2移动该滑窗,并将该移动后的滑窗窗口中所包含的L2个图划分为另一个子序列。重复这一过程,直到滑窗移动到该L1+Pad_L2个图的另一端,最终可以得到L个子序列,且每个子序列中包含按照时间顺序排序的L2个图。
如图4所示,假设卷积核时间维度参数L2为3,卷积层步长参数Stride_L2为1,填充参数Pad_L2为0。对于拆分得到的5个图402,从该5个图的一端开始,以1为步长移动该滑窗,直到滑窗处于另一端,最终得到3个子序列402(包括4021、4022和4023)。
这里,根据公式(1)L=(L1-L2+2*Pad_L2)/Stride_L2+1,可以确定L=3,即得到图4中的3个序列4021、4022、4023。
步骤A3:针对L个子序列中的每一个,将该子序列中的L2个图沿通道维度方向上按顺序进行图拼接,最终得到L个2D拼接图。
以图4中的子序列4021为例,将4021中的第二个图拼接到第一个图通道维度方向之后,再将4021中的第三个图拼接到第二个图通道维度方向之后,得到2D拼接图4031,该2D拼接图在时间维度维度值为1,通道维度方向上存在拼接。采用类似的方法,可以将图序列4022拼接得到2D拼接图4032;将图序列4023拼接得到2D拼接图4033。
按照步骤S102,可以将C3D卷积核时间维度的数据拼接到通道维度上,得到2D拼接卷积核,再将步骤S101中得到的L个2D拼接图与2D拼接卷积核分别进行卷积运算。具体地,可以包括以下步骤:
步骤B1:将C3D卷积核时间维度的数据拼接到通道维度上,得到2D拼接卷积核。
本实施例中,C3D卷积层的卷积核可以表示为W2*H2*C2*L2*N2。其中,W2表示宽度维度参数,H2表示高度维度参数,L2表示时间维度参数,C2表示通道维度参数,L2表示时间维度参数,N2表示数量维度参数。
需要说明的是,在C3D卷积层中,通道维度参数C2与输入该卷积层的图序列的通道维度参数C1数值相等。
以图5为例,C3D卷积核如图5中的501,可以表示为3*3*100*3,对应于W2*H2*C2*L2。需要说明的是,这里的501即为C3D卷积神经网络卷积层中的卷积核,即图1a中的102。
与图4方法类似,首先按照在时间维度上索引值,将该卷积核拆分成3个卷积核502,每个卷积核在时间维度参数为1,可以表示为3*3*100,对应于W2*H2*C2。然后将该3个卷积核在通道维度上进行拼接,例如将502中的第二个卷积核拼接到第一个卷积核通道维度方向之后,再将第三个卷积核拼接到第二个卷积核通道维度方向之后,得到2D拼接卷积核503。可以理解的是,该2D拼接卷积核在通道维度参数数值与C2*L2相等,即100*3。
步骤B2:将L个2D拼接图与2D拼接卷积核分别进行卷积运算。
本实施例中,2D拼接图和2D拼接卷积核时间维度参数均为1,通道维度参数为C1*L2(C1=C2),可以按照2D卷积运算的方法进行卷积运算,得到L个2D特征图。
需要说明的是,本实施例中仅以一个卷积核为例。在实际应用中,C3D卷积层中可以包括多个卷积核,每个卷积核可以转换成一个2D拼接卷积核,这里不再赘述。
如图6所示,403中的3个2D拼接图分别为4031、4032和4033,503为2D拼接卷积核,将该3个2D拼接图分别与2D拼接卷积核进行卷积运算,可以得到如404所示的3个2D特征图(分别为4041、4042、4043)。卷积计算的具体方法可以参照现有技术,这里不再赘述。
下面结合图7-图10,对步骤S103中的池化操作进行具体介绍。
按照步骤S103,将C3D池化层的时间维度参数和数量维度参数进行转换,然后对L个2D特征图分别进行第一池化操作和第二池化操作,具体包括以下步骤:
步骤C1:池化层的池化窗口在时间维度参数为L3,数量维度参数为1。本步骤中,先将池化窗口在时间维度参数L3转换为1,得到第一池化窗口;同时将数量维度参数转换为1,得到二次池化窗口。
举例来说,假设C3D池化层的池化窗口为2*2*2(对应于H3*W3*L3)。其中,H3表示池化窗口在高度维度参数,W3表示池化窗口在宽度维度参数,L3表示池化窗口在时间维度参数。转换后,可以得到第一池化窗口2*2(对应于H3*W3);以及第二池化窗口1*1*2(表示在高度维度和宽度维度参数为1,数量维度参数为2)。
步骤C2:针对L个2D特征图中的每一个,根据第一池化窗口进行第一池化操作,得到L个第一池化特征图。
以第一池化窗口为2*2(对应于H3*W3)为例,第一池化步长参数为0,填充参数为0,可以按照图7的方法进行池化操作。
如图7所示,图7中的404示出了3个2D特征图。以2D特征图4041为例,其参数可以表示为4*4(表示在高度维度和宽度维度参数均为4),该2D特征图中包括16个数据,假设该16个数据表示为aij,其中i表示在高度维度上的索引值,j表示在宽度维度上的索引值,分别为a00、a01、a02、a03、a10、a11、a12、a13、a20、a21、a22、a23、a30、a31、a32、a33。
先将该16个数据进行分组,然后对每组中的数据进行压缩,得到一个压缩后的数据,假设压缩后数据为bmn,其中m表示在高度维度上的索引值,n表示在宽度维度上的索引值。
在一个实施例中,可以根据第一池化窗口进行滑窗分组。先将第一池化窗口置于2D特征图在高度维度和宽度维度的起始端,该滑窗可包含4个数据(例如为a00、a01、a10、a11),将该4个数据作为一组,按照指定方法压缩为一个数据b00;然后根据步长参数移动该第一池化窗口,将该位置下第一池化窗口中包含的4个数据(例如为a01、a02、a11、a1)按照相同的方法压缩为一个数据b01,以此类推,分别沿高度维度和宽度维度移动该第一池化窗口,直到第一池化窗口移动到该2D特征图的另一端。由此,可以得到9个压缩后的数据,分别为b00、b01、b02、b10、b11、b12、b20、b21、b22,该6个数据可以按组成第一池化特征图,如图7中的7021所示。
可选地,上述按照指定方法压缩数据是指对每组中的多个数据取平均值,或者对每组中的多个数据取最大值等,本实施例不进行限定。
采用相同的方法对2D特征图4042、4043进行处理,分别可以得到第一池化特征图4052和4053。
步骤C3:针对步骤C2中得到的L个第一池化特征图,根据二次池化窗口进行二次池化操作,得到K个二次池化特征图。其中,二次池化窗口在数量维度参数为L3。
本步骤中,二次池化操作可以通过多种方式来实现,下面结合图8-10分别介绍3个具体实施例。
实施例1:将所述L个第一池化特征图沿数量维度方向进行第二池化操作,得到再次压缩的所述K个特征图,其中,所述第二池化操作是在所述L个第一池化特征图之间滑窗并按所述设定取值方式进行取值。需要说明的是,这里设定取值方式可以是取平均值或取最大值,本实施例中以取最大值为例进行说明。
本实施例中,可以按照二次池化窗口在时间维度的参数来对该L个第一池化特征图进行分组,得到K个组,每组中包括L3个第一池化特征图。在一个例子中,可以通过滑窗的方式进行分组,分组数量K可以通过公式(2)计算。
K=(L - L3 +2*Pad_L3)/ STRIDE_L3+ 1 (2)
其中,L3为C3D池化层时间维度参数,Pad_L3为C3D池化层加窗参数,STRIDE_L3为C3D池化层步长参数。若采用公式(2)计算的结果不为整数,则对计算结果向下取整数作为K的值。
针对所述K个组中的每一个,将该组中的L3个第一池化特征图在各个对应位置上的L3个数据压缩为1个数据,例如取其中的最大值,或者也可以取其平均值等。其中,对应位置的数据为在各维度上索引值相同的数据,例如在高度维度和宽度维度索引值均为0的两个数据称为对应位置数据。
针对每组中的两个第一池化特征图,假设其数据分别为bmn和b’mn,输出的目标池化结果为cmn,其中,m为在高度维度上的索引值,n为在宽度维度上的索引值。分别获取在高度维度和宽度维度索引值相同的两个点,进行压缩处理,将压缩后的数据作为输出结果中对应点的数据值。
以图8为例,本实施例中可以获取4051中高度维度和宽度维度上索引值均为0的位置的数据b00,再获取4052中高度维度和宽度维度上索引值均为0的位置的数据b’00,输出b00和b’00的最大值,作为二次池化特征图中高度维度和宽度维度上索引值均为0的位置的数据c00。
本实施例中,在实现时,可以在第一池化特征图中根据二次池化窗口(1*1*L3,对应于H3*W3*N3,N3表示数量维度参数)进行滑窗,在该L个第一池化特征图的一端将窗口中包含的L3个数据压缩成一个数据,接着按照步长移动该窗口,并采用同样的方法将进行压缩,直到移动到该L个第一池化特征图的另一端,继而可以得到K个二次池化特征图。
参见图8,图8中的405表示3个第一池化特征图,分别为4051、4052、4053。假设二次池化窗口在数量维度参数为2,C3D池化层加窗参数Pad_L3为0,C3D池化层步长参数STRIDE_L3为1。
按照滑窗取最大值的方式进行压缩,可以将第一池化特征图4051和4052压缩成第二池化特征图4061;将第一池化特征图4052和4053压缩成二次池化特征图4062。
至此,完成了实施例1的流程。
实施例2:将所述L个第一池化特征图先沿W方向进行拼接,得到沿W方向拼接后的池化拼接特征图,然后对所述沿W方向拼接后的池化拼接特征图进行第三池化操作,得到再次压缩的K个特征图;所述第三池化操作是将所述沿W方向拼接后的池化拼接特征图滑窗并按设定取值方式进行取值的操作,所述W方向为宽度维度方向。需要说明的是,这里设定取值方式可以是取平均值或取最大值,本实施例中以取最大值为例进行说明。
本实施例中,先将L个第一池化特征图沿宽度维度方向进行拼接,得到池化拼接特征图。
在实现时,可以按照高度维度索引值从小到大的顺序进行拼接,例如将高度维度索引值为1的若干个数据拼接到高度维度索引值为0的3个数据在宽度维度方向之后;再将高度维度索引值为2的若干个数据拼接到高度维度索引值为1的3个数据在宽度维度方向之后,直到拼接完所有数据。
参见图9,图9中的405表示3个第一池化特征图,分别为4051、4052、4053。以4051为例,可以表示为3*3(表示高度维度参数和宽度维度参数均为3),包括9个数据,将该9个数据在宽度维度方向上进行拼接,也就是将第二排的3个数据拼接到第一排的3个数据之后,再将第三排的3个数据拼接到第2排的3个数据之后,直到将高度维度上的数据均拼接到宽度维度上,得到池化拼接特征图40711,可以表示为1*9(表示高度维度参数为1,宽度维度参数为9)。
采用同样的方法对第一池化特征图4052和4053也沿宽度维度方向进行拼接,分别得到池化拼接特征图40712和40713。
本实施例中,针对沿宽度维度方向拼接后的L个池化拼接特征图进行第三池化操作,得到再次压缩的K个特征图。
在一个例子中,可以根据二次池化窗口,通过滑窗的方式来对该L个第一池化特征图进行分组,得到K个组,每组中包括L3个第一池化特征图。其中,分组数量K可以通过公式(3)计算。
K=(L - L3 +2*Pad_L3)/ STRIDE_L3+ 1 (3)
其中,L3为C3D池化层时间维度参数,Pad_L3为C3D池化层加窗参数,STRIDE_L3为C3D池化层步长参数。若采用公式(3)计算的结果不为整数,则对计算结果向下取整数作为K的值。
针对所述K个组中的每一个,将该组中L3个池化拼接特征图在对应位置上的L3个数据压缩为1个数据,例如取其中的最大值,或者也可以取其平均值等。其中,对应位置的数据为在各维度上索引值相同的数据,例如在高度维度和宽度维度索引值均为0的两个数据称为对应位置数据。具体方法可以参见实施例1,这里不再赘述。
仍以图9为例,针对4071所示的3个池化拼接特征图40711、40712、40713。假设第二池化窗口在数量维度参数为2,C3D池化层加窗参数Pad_L3为0,C3D池化层步长参数STRIDE_L3为1。
按照滑窗取最大值的方式进行压缩,可以将池化拼接特征图40711和40712压缩成特征图40721;将池化拼接特征图40712和40713压缩成特征图40722。
本实施例中,针对第三池化操作后特征图,还可以将其拼接到在宽度维度上的数据转换回高度维度。以40721为例,按照第一池化特征图在宽度维度上的参数3,将40721拆分成3组数据,每组数据中包括3个数据,然后将该3组数据在高度维度上进行拼接,得到转换后的特征图40731。采用同样的方法对40722进行转换,可以得到特征图40732。
至此,完成了实施例2的流程。
实施例3:将所述L个第一池化特征图沿H方向进行拼接,得到沿H方向拼接后的池化拼接特征图,然后对所述沿H方向拼接后的池化拼接特征图进行第四池化操作,得到再次压缩的K个特征图,所述第四池化操作是将所述沿H方向拼接后的池化拼接特征图滑窗并按设定取值方式进行取值的操作,所述H方向为高度维度方向。需要说明的是,这里设定取值方式可以是取平均值或取最大值,本实施例中以取最大值为例进行说明。
本实施例中,先将L个第一池化特征图沿高度维度方向进行拼接,得到池化拼接特征图。
在实现时,可以按照宽度维度索引值从小到大的顺序进行拼接,例如将宽度维度索引值为1的若干个数据拼接到宽度维度索引值为0的3个数据在高度维度方向之后;再将宽度维度索引值为2的若干个数据拼接到宽度维度索引值为1的3个数据在高度维度方向之后,直到拼接完所有数据。
参见图10,图10中的405表示3个第一池化特征图,分别为4051、4052、4053。以4051为例,可以表示为3*3(表示高度维度参数和宽度维度参数均为3),包括9个数据,将该9个数据在高度维度方向上进行拼接,也就是将第二列的3个数据拼接到第一列的3个数据之后,再将第三列的3个数据拼接到第2列的3个数据之后,直到将宽度维度上的数据均拼接到高度维度上,得到池化拼接特征图40811,可以表示为9*1(表示高度维度参数为9,宽度维度参数为1)。
采用同样的方法对第一池化特征图4052和4053也沿宽度维度方向进行拼接,分别得到池化拼接特征图40812和40813。
本实施例中,针对沿高度维度方向拼接后的L个池化拼接特征图进行第四池化操作,得到再次压缩的K个特征图。
在一个例子中,可以根据二次池化窗口,通过滑窗的方式来对该L个第一池化特征图进行分组,得到K个组,每组中包括L3个第一池化特征图。其中,分组数量K可以通过公式(4)计算。
K=(L - L3 +2*Pad_L3)/ STRIDE_L3+ 1 (4)
其中,L3为C3D池化层时间维度参数,Pad_L3为C3D池化层加窗参数,STRIDE_L3为C3D池化层步长参数。若采用公式(4)计算的结果不为整数,则对计算结果向下取整数作为K的值。
针对所述K个组中的每一个,将该组中L3个池化拼接特征图在对应位置上的L3个数据压缩为1个数据,例如取其中的最大值,或者也可以取其平均值等。其中,对应位置的数据为在各维度上索引值相同的数据,例如在高度维度和宽度维度索引值均为0的两个数据称为对应位置数据。具体方法可以参见实施例1,这里不再赘述。
仍以图10为例,针对4081所示的3个池化拼接特征图40811、40812、40813。假设二次池化窗口在数量维度参数为2,C3D池化层加窗参数Pad_L3为0,C3D池化层步长参数STRIDE_L3为1。
按照滑窗取最大值的方式进行压缩,可以将池化拼接特征图40811和40812压缩成特征图40821;将第一池化特征图40812和40813压缩成特征图40822。
本实施例中,针对第四池化操作后特征图4082,还可以将其拼接到在高度维度上的数据转换回宽度维度,得到特征图4083。以40821为例,按照第一池化特征图在宽度维度上的参数3,将40821拆分成3组数据,每组数据中包括3个数据,然后将该3组数据在宽度维度上进行拼接,得到转换后的特征图40831。采用同样的方法对40822进行转换,可以得到特征图40832。
至此,完成实施例3所示的流程。需要说明的是,上述实施例示出的3种方法得到的再次压缩后的K个特征图是相同的,只是处理方法不同。上述实施例中,在进行第一池化操作和二次池化操作时,滑窗压缩数据仅以取最大值为例,在实际应用中也可以取平均值,本实施例不进行限定。当然,还可以采用其他方式来进行池化处理,本实施例并不进行限定。
与前述3D卷积神经网络在神经网络处理器上的处理方法的实施例相对应,本申请还提供了3D卷积神经网络在神经网络处理器上的处理装置的实施例。
本申请3D卷积神经网络在神经网络处理器上的处理装置的实施例可以应用在芯片上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在芯片的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图11所示,为本申请卷积神经网络处理装置所在芯片的一种硬件结构图,除了图11所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的11通常根据该芯片的实际功能,还可以包括其他硬件,对此不再赘述。
图12是本申请一示例性实施例示出的一种3D卷积神经网络在神经网络处理器上的处理装置的框图。
请参考图12,所述3D卷积神经网络在神经网络处理器上的处理装置1200可以应用在前述图11所示的芯片中,所述神经网络处理器支持2D卷积神经网络的运行,不支持所述3D卷积神经网络的运行,所述3D卷积神经网络为C3D网络,所述C3D网络包括C3D卷积层和C3D池化层,该装置包括有:
图序列处理单元1201,用于:
接收时间维度参数为L1的图序列,将所述图序列按照C3D卷积核时间维度参数L2拆分成时间维度参数值降低的L个子序列,每个子序列包括按照时间顺序排列的L2个图;并针对所述L个子序列中每一个,将所述L2个图沿通道维度方向上按顺序进行图拼接,将其转换成时间维度参数值为1但通道维度方向上存在拼接的一个2D拼接图,最终得到L个2D拼接图;其中,所述L=(L1-L2+2*Pad_L2)/Stride_L2+1,其中,L2为C3D卷积层时间维度参数,Pad_L2为用于卷积计算的加窗参数,Stride_L2为用于卷积计算的步长参数;
卷积处理单元1202,用于:
将所述步骤1得到的L个2D拼接图输入到C3D卷积层,先将时间维度参数为L2的C3D卷积核转换成时间维度参数为1但通道维度方向存在L2个卷积核拼接的一个2D拼接卷积核;然后执行所述L个2D拼接图与所述2D拼接卷积核分别进行卷积运算,输出L个2D特征图,所述C3D卷积层输出的所述L个2D特征图输入到所述C3D池化层;
池化处理单元1203,用于:
先将所述C3D池化层进行池化操作的维度转换,其中,所述C3D池化层进行池化操作的时间维度参数由L3转换成1,所述C3D池化层执行池化操作的数量维度参数由1转换为L3;然后将输入到所述C3D池化层的所述L个2D特征图先执行L次时间维度参数为1的第一池化操作,得到L个初步压缩的第一池化特征图,再所述L个第一池化特征图进行二次池化操作,得到再次压缩的K个特征图,其中,K小于L,所述第一池化操作是将输入的每个所述2D特征图滑窗并按设定取值方式进行取值的的操作;所述设定取值方式为取平均值或取最大值。
其中,可选地,所述再将所述L个第一池化特征图进行二次池化操作,得到再次压缩的K个特征图,包括:
将所述L个第一池化特征图沿数量维度方向进行第二池化操作,得到再次压缩的所述K个特征图,其中,所述第二池化操作是在所述L个第一池化特征图之间滑窗并按所述设定取值方式进行取值。
可选地,所述再将所述L个第一池化特征图进行二次池化操作,得到再次压缩的K个特征图,包括:
将所述L个第一池化特征图先沿W方向进行拼接,得到沿W方向拼接后的池化拼接特征图,然后对所述沿W方向拼接后的池化拼接特征图进行第三池化操作,得到再次压缩的K个特征图;所述第三池化操作是将所述沿W方向拼接后的池化拼接特征图滑窗并按所述设定取值方式进行取值;所述W方向为宽度维度方向。
可选地,所述再将所述L个第一池化特征图进行二次池化操作,得到再次压缩的K个特征图,包括:
将所述L个第一池化特征图沿H方向进行拼接,得到沿H方向拼接后的池化拼接特征图,然后对所述沿H方向拼接后的池化拼接特征图进行第四池化操作,得到再次压缩的K个特征图,所述第四池化操作是将所述沿H方向拼接后的池化拼接特征图滑窗并按所述设定取值方式进行取值,所述H方向为高度维度方向。
可选地,通过如下公式确定特征图数量K:
K=(L-L3+2*Pad_L3)/STRIDE_L3+1;
其中,L3为C3D池化层时间维度参数,Pad_L3为C3D池化层步长参数,STRIDE_L3为C3D池化层加窗参数。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
与前述3D卷积神经网络在神经网络处理器上的处理方法的实施例相对应,本申请还提供一种神经网络处理器,该神经网络处理器被促使执行以下步骤:
步骤1:接收时间维度参数为L1的图序列,将所述图序列按照C3D卷积核时间维度参数L2拆分成时间维度参数值降低的L个子序列,每个子序列包括按照时间顺序排列的L2个图;并针对所述L个子序列中每一个,将所述L2个图沿通道维度方向上按顺序进行图拼接,将其转换成时间维度参数为1但通道维度方向上存在拼接的一个2D拼接图,最终得到L个2D拼接图;其中,所述L=(L1-L2+2*Pad_L2)/Stride_L2+1,其中,L2为C3D卷积层时间维度参数,Pad_L2为用于卷积计算的加窗参数,Stride_L2为用于卷积计算的步长参数;
步骤2:将所述步骤1得到的L个2D拼接图输入到C3D卷积层,先将时间维度参数为L2的C3D卷积核转换成时间维度参数为1但通道维度方向存在L2个卷积核拼接的一个2D拼接卷积核;然后执行所述L个2D拼接图与所述2D拼接卷积核分别进行卷积运算,输出L个2D特征图,所述C3D卷积层输出的所述L个2D特征图输入到所述C3D池化层;
步骤3:先将所述C3D池化层进行池化操作的维度转换,其中,所述C3D池化层进行池化操作的时间维度参数L3转换成1,所述C3D池化层进行池化操作的数量维度参数由1转换为L3;然后将输入到所述C3D池化层的所述L个2D特征图先执行L次时间维度参数为1的第一池化操作,得到L个初步压缩的第一池化特征图,再所述L个第一池化特征图进行二次池化操作,得到再次压缩的K个特征图,其中,K小于L,所述第一池化操作是将输入的每个所述2D特征图滑窗并按设定取值方式进行取值的操作;所述设定取值方式为取平均值或取最大值。
其中,可选地,所述再将所述L个第一池化特征图进行二次池化操作,得到再次压缩的K个特征图,包括:
将所述L个第一池化特征图沿数量维度方向进行第二池化操作,得到再次压缩的所述K个特征图,其中,所述第二池化操作是在所述L个第一池化特征图之间滑窗并按所述设定取值方式进行取值。
可选地,所述再将所述L个第一池化特征图进行二次池化操作,得到再次压缩的K个特征图,包括:
将所述L个第一池化特征图先沿W方向进行拼接,得到沿W方向拼接后的池化拼接特征图,然后对所述沿W方向拼接后的池化拼接特征图进行第三池化操作,得到再次压缩的K个特征图;所述第三池化操作是将所述沿W方向拼接后的池化拼接特征图滑窗并按所述设定取值方式进行取值;所述W方向为宽度维度方向。
可选地,所述再将所述L个第一池化特征图进行二次池化操作,得到再次压缩的K个特征图,包括:
将所述L个第一池化特征图沿H方向进行拼接,得到沿H方向拼接后的池化拼接特征图,然后对所述沿H方向拼接后的池化拼接特征图进行第四池化操作,得到再次压缩的K个特征图,所述第四池化操作是将所述沿H方向拼接后的池化拼接特征图滑窗并按所述设定取值方式进行取值,所述H方向为高度维度方向。
可选地,通过如下公式确定特征图数量K:
K=(L-L3+2*Pad_L3)/STRIDE_L3+1;
其中,L3为C3D池化层时间维度参数,Pad_L3为C3D池化层步长参数,STRIDE_L3为C3D池化层加窗参数。
上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (12)

1.一种3D卷积神经网络在神经网络处理器上的处理方法,所述神经网络处理器支持2D卷积神经网络的运行,不支持所述3D卷积神经网络的运行,所述3D卷积神经网络为C3D网络,所述C3D网络包括C3D卷积层和C3D池化层,其特征在于,所述方法包括:
步骤1:接收时间维度参数为L1的图序列,将所述图序列按照C3D卷积核时间维度参数L2拆分成时间维度参数值降低的L个子序列,每个子序列包括按照时间顺序排列的L2个图;并针对所述L个子序列中每一个,将所述L2个图沿通道维度方向上按顺序进行图拼接,将其转换成时间维度参数为1但通道维度方向上存在拼接的一个2D拼接图,最终得到L个2D拼接图;其中,所述L=(L1 - L2 + 2 * Pad_L2)/ Stride_L2+ 1,其中,L2为C3D卷积层时间维度参数,Pad_L2为用于卷积计算的加窗参数, Stride_L2为用于卷积计算的步长参数;
步骤2:将所述步骤1得到的L个2D拼接图输入到C3D卷积层,先将时间维度参数为L2的C3D卷积核转换成时间维度参数为1但通道维度方向存在L2个卷积核拼接的一个2D拼接卷积核;然后执行所述L个2D拼接图与所述2D拼接卷积核分别进行卷积运算,输出L个2D特征图,所述C3D卷积层输出的所述L个2D特征图输入到所述C3D池化层;
步骤3:先将所述C3D池化层进行池化操作的维度转换,其中,所述C3D池化层进行池化操作的时间维度参数由L3转换成1,所述C3D池化层执行池化操作的数量维度参数由1转换为L3;然后将输入到所述C3D池化层的所述L个2D特征图先执行L次时间维度参数为1的第一池化操作,得到L个初步压缩的第一池化特征图,再将所述L个第一池化特征图进行二次池化操作,得到再次压缩的K个特征图,其中,K小于L,所述第一池化操作是将输入的每个所述2D特征图滑窗并按设定取值方式进行取值的操作;所述设定取值方式为取平均值或取最大值。
2.根据权利要求1所述的方法,其特征在于,所述再将所述L个第一池化特征图进行二次池化操作,得到再次压缩的K个特征图,包括:
将所述L个第一池化特征图沿数量维度方向进行第二池化操作,得到再次压缩的所述K个特征图,其中,所述第二池化操作是在所述L个第一池化特征图之间滑窗并按所述设定取值方式进行取值。
3.根据权利要求1所述的方法,其特征在于,所述再将所述L个第一池化特征图进行二次池化操作,得到再次压缩的K个特征图,包括:
将所述L个第一池化特征图先沿W方向进行拼接,得到沿W方向拼接后的池化拼接特征图,然后对所述沿W方向拼接后的池化拼接特征图进行第三池化操作,得到再次压缩的K个特征图;所述第三池化操作是将所述沿W方向拼接后的池化拼接特征图滑窗并按所述设定取值方式进行取值,所述W方向为宽度维度方向。
4.根据权利要求1所述的方法,其特征在于,所述再将所述L个第一池化特征图进行二次池化操作,得到再次压缩的K个特征图,包括:
将所述L个第一池化特征图沿H方向进行拼接,得到沿H方向拼接后的池化拼接特征图,然后对所述沿H方向拼接后的池化拼接特征图进行第四池化操作,得到再次压缩的K个特征图,所述第四池化操作是将所述沿H方向拼接后的池化拼接特征图滑窗并按所述设定取值方式进行取值,所述H方向为高度维度方向。
5.根据权利要求2-4中任一项所述的方法,其特征在于,通过如下公式确定特征图数量K:
K=(L - L3+2*Pad_L3)/ STRIDE_L3+ 1;
其中,L3为C3D池化层时间维度参数,Pad_L3为C3D池化层步长参数,STRIDE_L3为C3D池化层加窗参数。
6.一种3D卷积神经网络在神经网络处理器上的处理装置,所述神经网络处理器支持2D卷积神经网络的运行,不支持所述3D卷积神经网络的运行,所述3D卷积神经网络为C3D网络,所述C3D网络包括C3D卷积层和C3D池化层,其特征在于,所述装置包括:
图序列处理单元,用于:
接收时间维度参数为L1的图序列,将所述图序列按照C3D卷积核时间维度参数L2拆分成时间维度参数值降低的L个子序列,每个子序列包括按照时间顺序排列的L2个图;并针对所述L个子序列中每一个,将所述L2个图沿通道维度方向上按顺序进行图拼接,将其转换成时间维度参数值为1但通道维度方向上存在拼接的一个2D拼接图,最终得到L个2D拼接图;其中,所述L =(L1 - L2+ 2 * Pad_L2)/ Stride_L2+ 1,其中,L2为C3D卷积层时间维度参数,Pad_L2为用于卷积计算的加窗参数,Stride_L2为用于卷积计算的步长参数;
卷积处理单元,用于:
将所述L个2D拼接图输入到C3D卷积层,先将时间维度参数为L2的C3D卷积核转换成时间维度参数为1但通道维度方向存在L2个卷积核拼接的一个2D拼接卷积核;然后执行所述L个2D拼接图与所述2D拼接卷积核分别进行卷积运算,输出L个2D特征图,所述C3D卷积层输出的所述L个2D特征图输入到所述C3D池化层;
池化处理单元,用于:
先将所述C3D池化层进行池化操作的维度转换,其中,所述C3D池化层进行池化操作的时间维度参数由L3转换成1,所述C3D池化层执行池化操作的数量维度参数由1转换为L3;然后将输入到所述C3D池化层的所述L个2D特征图先执行L次时间维度参数为1的第一池化操作,得到L个初步压缩的第一池化特征图,再将所述L个第一池化特征图进行二次池化操作,得到再次压缩的K个特征图,其中,K小于L,所述第一池化操作是将输入的每个所述2D特征图滑窗并按设定取值方式进行取值的操作;所述设定取值方式为取平均值或取最大值。
7.根据权利要求6所述的装置,其特征在于,所述再将所述L个第一池化特征图进行二次池化操作,得到再次压缩的K个特征图,包括:
将所述L个第一池化特征图沿数量维度方向进行第二池化操作,得到再次压缩的所述K个特征图,其中,所述第二池化操作是在所述L个第一池化特征图之间滑窗并按所述设定取值方式进行取值。
8.根据权利要求6所述的装置,其特征在于,所述再将所述L个第一池化特征图进行二次池化操作,得到再次压缩的K个特征图,包括:
将所述L个第一池化特征图先沿W方向进行拼接,得到沿W方向拼接后的池化拼接特征图,然后对所述沿W方向拼接后的池化拼接特征图进行第三池化操作,得到再次压缩的K个特征图;所述第三池化操作是将所述沿W方向拼接后的池化拼接特征图滑窗滑窗并按所述设定取值方式进行取值;所述W方向为宽度维度方向。
9.根据权利要求6所述的装置,其特征在于,所述再将所述L个第一池化特征图进行二次池化操作,得到再次压缩的K个特征图,包括:
将所述L个第一池化特征图沿H方向进行拼接,得到沿H方向拼接后的池化拼接特征图,然后对所述沿H方向拼接后的池化拼接特征图进行第四池化操作,得到再次压缩的K个特征图,所述第四池化操作是将所述沿H方向拼接后的池化拼接特征图滑窗并按所述设定取值方式进行取值,所述H方向为高度维度方向。
10.根据权利要求7-9任一项所述的装置,其特征在于,通过如下公式确定特征图数量K:
K=(L - L3+2*Pad_L3)/ STRIDE_L3+ 1;
其中,L3为C3D池化层时间维度参数,Pad_L3为C3D池化层步长参数,STRIDE_L3为C3D池化层加窗参数。
11.一种神经网络处理器,所述神经网络处理器支持2D卷积神经网络的运行,其特征在于,所述神经网络处理器执行权利要求1-5任一方法的步骤。
12.一种芯片,其特征在于,所述芯片包括可读存储介质和神经网络处理器;
其中,所述可读存储介质,用于存储机器可执行指令;
所述神经网络处理器,支持2D卷积神经网络的运行,用于读取所述可读存储介质上的所述机器可执行指令,并执行所述指令以实现权利要求1-5任一所述方法的步骤。
CN202010821325.1A 2020-08-14 2020-08-14 3d卷积神经网络在神经网络处理器上的处理方法和装置 Active CN111985618B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010821325.1A CN111985618B (zh) 2020-08-14 2020-08-14 3d卷积神经网络在神经网络处理器上的处理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010821325.1A CN111985618B (zh) 2020-08-14 2020-08-14 3d卷积神经网络在神经网络处理器上的处理方法和装置

Publications (2)

Publication Number Publication Date
CN111985618A CN111985618A (zh) 2020-11-24
CN111985618B true CN111985618B (zh) 2024-03-05

Family

ID=73434049

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010821325.1A Active CN111985618B (zh) 2020-08-14 2020-08-14 3d卷积神经网络在神经网络处理器上的处理方法和装置

Country Status (1)

Country Link
CN (1) CN111985618B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114003859A (zh) * 2021-11-10 2022-02-01 安谋科技(中国)有限公司 卷积运算方法、可读介质和电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101847874B1 (ko) * 2017-06-28 2018-05-25 서경대학교 산학협력단 합성곱 신경망을 이용한 이미지 인식 방법 및 그 기록 매체
KR20180108501A (ko) * 2017-03-24 2018-10-04 (주)제이엘케이인스펙션 가상 3차원 심층 신경망을 이용하는 영상 분석 장치 및 방법
CN109635790A (zh) * 2019-01-28 2019-04-16 杭州电子科技大学 一种基于3d卷积的行人异常行为识别方法
CN110309837A (zh) * 2019-07-05 2019-10-08 北京迈格威科技有限公司 基于卷积神经网络特征图的数据处理方法及图像处理方法
CN110334800A (zh) * 2019-07-18 2019-10-15 南京风兴科技有限公司 一种用于视频识别的轻量级3d卷积网络系统
CN111382867A (zh) * 2020-02-20 2020-07-07 华为技术有限公司 神经网络压缩的方法、数据处理的方法及相关装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10417560B2 (en) * 2016-12-01 2019-09-17 Via Alliance Semiconductor Co., Ltd. Neural network unit that performs efficient 3-dimensional convolutions
US10565492B2 (en) * 2016-12-31 2020-02-18 Via Alliance Semiconductor Co., Ltd. Neural network unit with segmentable array width rotator
JP6870114B2 (ja) * 2017-05-15 2021-05-12 ディープマインド テクノロジーズ リミテッド 3d時空畳み込みニューラルネットワークを使用した映像におけるアクション認識
US10565707B2 (en) * 2017-11-02 2020-02-18 Siemens Healthcare Gmbh 3D anisotropic hybrid network: transferring convolutional features from 2D images to 3D anisotropic volumes
CN107729994B (zh) * 2017-11-28 2020-05-26 南京地平线机器人技术有限公司 执行卷积神经网络中的卷积层的运算的方法和装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180108501A (ko) * 2017-03-24 2018-10-04 (주)제이엘케이인스펙션 가상 3차원 심층 신경망을 이용하는 영상 분석 장치 및 방법
KR101847874B1 (ko) * 2017-06-28 2018-05-25 서경대학교 산학협력단 합성곱 신경망을 이용한 이미지 인식 방법 및 그 기록 매체
CN109635790A (zh) * 2019-01-28 2019-04-16 杭州电子科技大学 一种基于3d卷积的行人异常行为识别方法
CN110309837A (zh) * 2019-07-05 2019-10-08 北京迈格威科技有限公司 基于卷积神经网络特征图的数据处理方法及图像处理方法
CN110334800A (zh) * 2019-07-18 2019-10-15 南京风兴科技有限公司 一种用于视频识别的轻量级3d卷积网络系统
CN111382867A (zh) * 2020-02-20 2020-07-07 华为技术有限公司 神经网络压缩的方法、数据处理的方法及相关装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
A Uniform Architecture Design for Accelerating 2D and 3D CNNs on FPGAs.全文. *
Fully-Automated Segmentation of Nasopharyngeal Carcinoma on Dual-Sequence MRI Using Convolutional Neural Networks;Yufeng Ye;《doi: 10.3389/fonc.2020.00166》;全文 *
基于三维卷积和 CLSTM 神经网络的 水产养殖溶解氧预测;查玉坤 等;《应用科学学报》;全文 *

Also Published As

Publication number Publication date
CN111985618A (zh) 2020-11-24

Similar Documents

Publication Publication Date Title
CN110309837B (zh) 基于卷积神经网络特征图的数据处理方法及图像处理方法
AU2017338783B2 (en) Efficient data layouts for convolutional neural networks
WO2020062894A1 (en) Computer-implemented method using convolutional neural network, apparatus for generating composite image, and computer-program product
CN111369440B (zh) 模型训练、图像超分辨处理方法、装置、终端及存储介质
CN109670574B (zh) 用于同时执行激活和卷积运算的方法和装置及其学习方法和学习装置
CN109670575B (zh) 用于同时执行激活和卷积运算的方法和装置及其学习方法和学习装置
CN109996023B (zh) 图像处理方法和装置
CN111985617B (zh) 3d卷积神经网络在神经网络处理器上的处理方法和装置
CN112219210B (zh) 信号处理装置和信号处理方法
CN111461311A (zh) 基于众核处理器的卷积神经网络运算加速方法及装置
CN103167218A (zh) 一种基于非局部性的超分辨率重建方法和设备
CN110147252A (zh) 一种卷积神经网络的并行计算方法及装置
EP3723006A1 (en) Signal processing method and device
CN111985618B (zh) 3d卷积神经网络在神经网络处理器上的处理方法和装置
CN110809126A (zh) 一种基于自适应可变形卷积的视频帧插值方法及系统
CN113888491B (zh) 基于非局部特征的多级高光谱图像递进超分方法及系统
CN107748913A (zh) 一种深度神经网络的通用小型化方法
CN109782906A (zh) 一种广告机的手势识别方法、交互方法、装置和电子设备
CN112446348A (zh) 一种基于特征谱流的行为识别方法
CN110334800A (zh) 一种用于视频识别的轻量级3d卷积网络系统
CN111489738B (zh) 基于多头注意力机制的特征提取方法及语音命令识别方法
CN109447239B (zh) 一种基于arm的嵌入式卷积神经网络加速方法
CN111882053A (zh) 一种基于拼接卷积的神经网络模型压缩方法
CN111951171A (zh) Hdr图像生成方法、装置、可读存储介质及终端设备
CN108416430A (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