CN111882028A - 用于卷积神经网络的卷积运算装置 - Google Patents
用于卷积神经网络的卷积运算装置 Download PDFInfo
- Publication number
- CN111882028A CN111882028A CN202010514287.5A CN202010514287A CN111882028A CN 111882028 A CN111882028 A CN 111882028A CN 202010514287 A CN202010514287 A CN 202010514287A CN 111882028 A CN111882028 A CN 111882028A
- Authority
- CN
- China
- Prior art keywords
- matrix
- convolution
- elements
- convolved
- convolution kernel
- 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.)
- Granted
Links
Images
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/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield 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
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
一种用于卷积神经网络的卷积运算装置,涉及电子信息以及深度学习技术领域,用于对待卷积矩阵与卷积核矩阵进行卷积计算以获取卷积结果矩阵,包括待卷积矩阵控制器、卷积核矩阵控制器和卷积运算模块。待卷积矩阵控制器和卷积核矩阵控制器分别按卷积顺序获取待卷积矩阵和卷积核矩阵的标签矩阵,只有当待卷积矩阵和卷积核矩阵的标签矩阵的相同位置上的元素值均为预设值时,才将与标签矩阵的元素对应的待卷积矩阵和卷积核矩阵的元素进行卷积运算以获取卷积结果矩阵。由待卷积矩阵和卷积核矩阵的标签矩阵的相同位置上的元素值均为预设值而引入的稀疏性要远大于待卷积矩阵和卷积核矩阵,使得卷积运算的计算量降低,进而加速卷积神经网络的运算速度。
Description
技术领域
本发明涉及电子信息以及深度学习技术领域,具体涉及一种用于卷积神经网络的卷积运算装置。
背景技术
随着基于神经网络的人工智能解决方案的需求越来越多,在一些移动平台如无人机、机器人等都应用卷积神经网络构建,这些都正在深刻的改变人类的生产和生活方式。而对应在卷积神经网络专用硬件设计研究方面,已有基于CPU、GPU、FPGA、ASIC和RRAM等新型器件的实现方式。从云端到移动端,不同应用场景对卷积神经网络的计算能力提出了不同的需求,再加上卷积神经网络的结构多样、数据量大、计算量大,也给硬件实现神经网络算法设计提出了巨大挑战。其中,卷积神经网络的硬件架构的核心是卷积运算的硬件架构。在现有技术中,一种是应用传统的数字电路进行卷积神经网络卷积运算的硬件架构的电路设计,如FPGA、ASIC、GPU和CPU等。但随着工艺尺寸的减小,电路节点漏电增大、电源电压降低。在一定的计算精度下,就要消耗大量的电路计算资源和存储资源。即整体电路的功耗、面积、速度和精度等性能不断受到限制。另一种是基于新器件进行CNN硬件电路设计实现,如RRAM等。其中,卷积神经网络(CNN)的卷积层在提取输入数据的特征信息方面非常有效,因此CNN具有很高的识别精度,已经在图像识别和自然语言处理等各个领域都有广泛的应用。综上所述,基于现有的电路计算资源如何加速卷积运算的运算速度是卷积神经网络加速器的热点研发方向。
发明内容
本申请提供了一种用于卷积神经网络的卷积运算装置,解决现有技术中卷积神经网络加速器的不足,具体实施方案如下:
根据第一方面,一种实施例中提供一种用于卷积神经网络的卷积运算装置,用于对待卷积矩阵X与卷积核矩阵W进行卷积计算以获取卷积结果矩阵P,包括待卷积矩阵控制器、卷积核矩阵控制器和卷积运算模块;
所述待卷积矩阵控制器用于按卷积顺序依次获取一组预卷积计算的待卷积矩阵X的元素所对应的待卷积标签矩阵X′的元素,并发送给所述卷积运算模块;所述待卷积标签矩阵X′的元素与所述待卷积矩阵X的元素一一对应,当所述待卷积矩阵X的元素为非零值时,所述待卷积标签矩阵X′的对应元素的值为第一数值;
所述卷积核矩阵控制器用于按卷积顺序依次获取一组预卷积计算的卷积核矩阵W的元素所对应的卷积核标签矩阵W′的元素,并发送给所述卷积运算模块;所述卷积核标签矩阵W′的元素与所述卷积核矩阵W的元素一一对应,当所述卷积核矩阵W的元素为非零值时,所述卷积核标签矩阵W′的对应元素的值为第二数值;
所述卷积运算模块用于依据元素值分别为所述第一数值和所述第二数值的所述待卷积标签矩阵X′的元素和所述卷积核矩阵W′的元素获取所述待卷积矩阵X中的元素的位置信息和所述卷积核矩阵W中的元素的位置信息,再依据所述待卷积矩阵X中的元素的位置信息和所述卷积核矩阵W中的元素的位置信息获取所述待卷积矩阵X中的元素和所述卷积核矩阵W中的元素;
所述卷积运算模块还用于将获取的所述待卷积矩阵X中的元素和所述卷积核矩阵W中的元素进行卷积运算,将获取的卷积运算结果作为所述卷积结果矩阵P的一个元素输出。
进一步,所述卷积运算模块用于依据元素值分别为所述第一数值和所述第二数值的所述待卷积标签矩阵X′的元素和所述卷积核矩阵W′的元素获取所述待卷积矩阵X中的元素的位置信息和所述卷积核矩阵W中的元素的位置信息,包括:
所述卷积运算模块用于按卷积运算中的每个乘运算对一个所述待卷积标签矩阵X′的元素和一个所述卷积核标签矩阵W′的元素进行匹配;
当匹配的所述待卷积标签矩阵X′的元素的值为第一数值,且所述卷积核标签矩阵W′的元素的值为第二数值时,所述卷积运算模块获取该待卷积标签矩阵X′的元素所对应的所述待卷积矩阵X中的元素的位置信息和该卷积核标签矩阵W′的元素所对应的所述卷积核矩阵W的元素的位置信息。
进一步,所述依据所述待卷积矩阵X中的元素的位置信息和所述卷积核矩阵W中的元素的位置信息获取所述待卷积矩阵X中的元素和所述卷积核矩阵W中的元素,包括:
所述卷积运算模块将获取的所述待卷积矩阵X中的元素的位置信息和所述卷积核矩阵W中的元素的位置信息分别给所述待卷积矩阵控制器和所述卷积核矩阵控制器;
所述待卷积矩阵控制器将获取的所述待卷积矩阵X中的元素的位置信息所对应的所述卷积矩阵X的元素发送给所述卷积运算模块;
所述卷积核矩阵控制器将获取的所述卷积核矩阵W中的元素的位置信息所对应的所述卷积核矩阵W的元素发送给所述卷积运算模块;
所述卷积运算模块获取所述待卷积矩阵X的元素和所述卷积核矩阵W的元素。
进一步,所述卷积运算模块还用于将获取的所述待卷积矩阵X中的元素和所述卷积核矩阵W中的元素进行卷积运算,将获取的卷积运算结果作为所述卷积结果矩阵P的一个元素输出,包括:
所述卷积运算模块按卷积运算中的每个乘运算将获取的所述卷积矩阵X的元素和所述卷积核矩阵W的元素相乘,并将每个相乘获取的积求和,以作为所述卷积结果矩阵P的一个元素输出。
进一步,所述第一数值和所述第二数值为1;和/或,当所述待卷积矩阵X的元素为零值时,所述待卷积标签矩阵X′的对应元素的值为0,当所述卷积核矩阵W的元素为零值时,所述卷积核标签矩阵W′的对应元素的值为0。
根据第二方面,一种实施例中提供一种用于卷积神经网络的卷积运算装置,用于对待卷积矩阵X(i,j,x)与卷积核矩阵W(i,j,w)进行卷积计算以获取卷积结果矩阵P(i,j,p),包括卷积核矩阵控制器、差值矩阵控制器和卷积运算模块;其中,i是矩阵的宽方向,j是矩阵的高方向,x、w和p分别是矩阵的矢量方向;
所述差值矩阵控制器用于获取矢量方向第m+1层待卷积矩阵X(i,j,m+1)与第m层待卷积矩阵X(i,j,m)的差值矩阵Q(i,j),并按卷积顺序依次将差值矩阵Q(i,j)的一组元素发送给所述卷积运算模块,其中,1≤m<x;
所述卷积核矩阵控制器用于按卷积运算顺序将矢量方向第n层卷积核矩阵W(i,j,n)的元素发送给所述卷积运算模块,其中,1≤n≤w;
所述卷积运算模块还用于对获取的所述差值矩阵Q(i,j)的元素和所述卷积核矩阵W(i,j,n)的元素进行卷积运算,以获取差值结果矩阵O(i,j),并将所述差值结果矩阵O(i,j)与所述卷积结果矩阵P(i,j,q)按位累加,并将累加后的矩阵作为所述矢量方向第q+1层的卷积结果矩阵P(i,j,q+1),其中,1≤q<p。
进一步,还包括待卷积矩阵控制器,用于将矢量方向第m层沿高和宽两个方向按卷积顺序依次将一组待卷积矩阵X(i,j,m)的元素发送给所述卷积运算模块,其中,1≤m≤x;
所述卷积结果矩阵P(i,j,q)按以下步骤获取,包括:
所述卷积运算模块还用于对获取的所述待卷积矩阵X(i,j,m)的元素和所述卷积核矩阵W(i,j,n)的元素进行卷积运算,以获取矢量方向第q层的卷积结果矩阵P(i,j,q)。
进一步,所述卷积运算模块还用于对获取的所述差值矩阵Q(i,j)的元素和所述卷积核矩阵W(i,j,n)的元素进行卷积运算,以获取差值结果矩阵O(i,j,),包括:
所述差值矩阵控制器还用于按卷积顺序依次获取一组预卷积计算的差值矩阵Q(i,j)的元素所对应的差值标签矩阵Q′(i,j)的元素,并发送给所述卷积运算模块;所述差值标签矩阵Q′(i,j)的元素与所述差值矩阵Q(i,j)的元素一一对应,当所述差值矩阵Q(i,j)的元素为非零值时,所述差值标签矩阵Q′(i,j)的对应元素的值为第一数值;
所述卷积核矩阵控制器用于按卷积运算顺序获取一组矢量方向第n层卷积核矩阵W(i,j,n)的元素所对应的卷积核标签矩阵W′(i,j,n)的元素,并发送给所述卷积运算模块,其中,1≤n≤w;所述卷积核标签矩阵W′(i,j,n)的元素与所述卷积核矩阵W(i,j,n)的元素一一对应,当所述卷积核矩阵W(i,j,n)的元素为非零值时,所述卷积核标签矩阵W′(i,j,n)的对应元素的值为第二数值;
所述卷积运算模块用于依据元素值分别为所述第一数值和所述第二数值的所述差值标签矩阵Q′(i,j)的元素和所述卷积核矩阵W′(i,j,n)的元素获取所述差值矩阵Q(i,j)中的元素的位置信息和所述卷积核矩阵W(i,j,n)中的元素的位置信息,再依据所述差值矩阵Q(i,j)中的元素的位置信息和所述卷积核矩阵W(i,j,n)中的元素的位置信息获取所述差值矩阵Q(i,j)中的元素和所述卷积核矩阵W(i,j,n)中的元素;
所述卷积运算模块还用于将获取的所述差值矩阵Q(i,j)中的元素和所述卷积核矩阵W(i,j,n)中的元素进行卷积运算,将获取的卷积运算结果依次作为所述差值结果矩阵O(i,j,)的一个元素。
进一步,所述卷积运算模块用于依据元素值分别为所述第一数值和所述第二数值的所述差值标签矩阵Q′(i,j)的元素和所述卷积核矩阵W′(i,j,n)的元素获取所述差值矩阵Q(i,j)中的元素的位置信息和所述卷积核矩阵W(i,j,n)中的元素的位置信息,包括:
所述卷积运算模块用于按卷积运算中的每个乘运算对一个所述差值标签矩阵Q′(i,j)的元素和一个所述卷积核标签矩阵W′(i,j,n)的元素进行匹配;
当匹配的所述差值标签矩阵Q′(i,j)的元素的值为第一数值,且所述卷积核标签矩阵W′(i,j,n)的元素的值为第二数值时,所述卷积运算模块获取该待卷积标签矩阵差值标签矩阵Q′(i,j)的元素所对应的所述差值矩阵Q(i,j)中的元素的位置信息和该卷积核标签矩阵W′(i,j,n)的元素所对应的所述卷积核矩阵W(i,j,n)的元素的位置信息。
进一步,所述第一数值和所述第二数值为1;和/或,当所述差值标矩阵Q(i,j)的元素为零值时,所述差值标签矩阵Q′(i,j)的对应元素的值为0,当所述卷积核矩阵W(i,j,n)的元素为零值时,所述卷积核标签矩阵W′(i,j,n)的对应元素的值为0。
依据上述实施例的一种用于卷积神经网络的卷积运算装置,用于对待卷积矩阵与卷积核矩阵进行卷积计算以获取卷积结果矩阵,包括待卷积矩阵控制器、卷积核矩阵控制器和卷积运算模块。待卷积矩阵控制器和卷积核矩阵控制器分别按卷积顺序获取待卷积矩阵和卷积核矩阵的标签矩阵,只有当待卷积矩阵和卷积核矩阵的标签矩阵的相同位置上的元素值均预设值时,才将与标签矩阵的元素对应的待卷积矩阵和卷积核矩阵的元素进行卷积运算以获取卷积结果矩阵。由待卷积矩阵和卷积核矩阵的标签矩阵的相同位置上的元素值均为预设值而引入的稀疏性要远大于待卷积矩阵和卷积核矩阵,使得卷积运算的计算量降低,进而加速卷积神经网络的运算速度。
附图说明
图1为一种卷积神经网络的结构图;
图2为一种卷积运算示意图;
图3为一种卷积神经网络的卷积运算的示意图;
图4为一种三维矩阵卷积运算的示意图;
图5为一种待卷积矩阵和卷积核矩阵的卷积计算示意图;
图6为一种实施例中卷积运算装置的结构示意图;
图7为一种待卷积矩阵和卷积核矩阵的卷积计算示意图;
图8为一种实施例中待卷积矩阵和卷积核矩阵的卷积计算示意图;
图9为另一种实施例中卷积运算模块的卷积计算示意图;
图10为另一种实施例中卷积运算装置的结构示意图;
图11为一种基于视频连续图像帧之间的相似性获取稀疏矩阵的示意图;
图12为一种三维卷积神经网络的卷积运算示意图。
具体实施方式
下面通过具体实施方式结合附图对本发明作进一步详细说明。其中不同实施方式中类似元件采用了相关联的类似的元件标号。在以下的实施方式中,很多细节描述是为了使得本申请能被更好的理解。然而,本领域技术人员可以毫不费力的认识到,其中部分特征在不同情况下是可以省略的,或者可以由其他元件、材料、方法所替代。在某些情况下,本申请相关的一些操作并没有在说明书中显示或者描述,这是为了避免本申请的核心部分被过多的描述所淹没,而对于本领域技术人员而言,详细描述这些相关操作并不是必要的,他们根据说明书中的描述以及本领域的一般技术知识即可完整了解相关操作。
另外,说明书中所描述的特点、操作或者特征可以以任意适当的方式结合形成各种实施方式。同时,方法描述中的各步骤或者动作也可以按照本领域技术人员所能显而易见的方式进行顺序调换或调整。因此,说明书和附图中的各种顺序只是为了清楚描述某一个实施例,并不意味着是必须的顺序,除非另有说明其中某个顺序是必须遵循的。
本文中为部件所编序号本身,例如“第一”、“第二”等,仅用于区分所描述的对象,不具有任何顺序或技术含义。而本申请所说“连接”、“联接”,如无特别说明,均包括直接和间接连接(联接)。
卷积神经网络是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,一般可以分为输入层、隐藏层和输出层,隐藏层又可分为卷积层和采样层。下面用一个具体的实例讲解下卷积神经网络的结构,请参考图1,为一种卷积神经网络的结构图。该卷积神经网络输入的是一张a*a分辨率的图像,例如28*28分辨率的图像。卷积层C1用M个n*n的卷积核对上述图像做卷积运算,获得M个b*b分辨率的图像,一般还会加偏置和激活的操作,便于理解卷积神经网络的结构省略了这两个步骤。采样层S2对卷积层C1获得的M个b*b分辨率的图像进行采样操作获得M个(b/2)*(b/2)分辨率的图像。卷积层C3用12个5*5的卷积核对采样层S2获得6个12*12分辨率的图像进行卷积运算,获得12个8*8分辨率的图像。采样层S3对卷积层C3获得的12个8*8分辨率的图像进行采样操作获得12个4*4分辨率的图像。输出层是对采样层S3获得的12个4*4分辨率的图像进行全连接输出,得到图像的12个特征信息。从上述例子中卷积神经网络采用两个卷积层,并且输出层的全连接输出也是一种特殊的卷积运算,所以卷积计算是卷积神经网络的运算的核心。
随着移动设备和物联网的发展,将卷积神经网络应用于这些有限硬件资源的设备成为一种发展趋势,其应用场景要求低延时,低带宽,低功耗。然而,卷积神经网络具有高密度计算和高密度存储的特点,这限制了卷积神经网络的广泛应用。卷积神经网络自有稀疏性:对于特征值(act_in),线性整流函数(Rectified Linear Unit,ReLU)将负特征值置0,使特征值变稀疏;对于权重(weight),浮点型的权重值量化到8位甚至更少位的整型,使得许多weight变为0。甚至,通过剪枝技术,将一些不重要的weight直接置为0,再重训练卷积神经网络恢复准确度,在极小甚至没有准确度下降的代价下,极大增加卷积神经网络的稀疏度,极大减少参数量,减少计算和存储量。已经有许多定制的利用稀疏性的卷积神经网络硬件加速器,但是面临许多问题,首先,不同的卷积神经网络有不同的稀疏度,即使同一个神经网络,不同层的稀疏度也有很大的差异,尤其是特征值和权重这两种数据类型差异也很大,而且特征值的稀疏度与实际输入有关。
请参考图2,为一种卷积运算示意图,Xij为待卷积矩阵的元素,Wij为卷积核矩阵的元素,Yij为特征矩阵的元素。待卷积矩阵X与卷积核矩阵W卷积计算后获取特征矩阵Y。如图2所示,表示一个3×3卷积核与6×6的输入特征图进行卷积以获得4×4输出特征图的过程。卷积核中的9个值分别乘以输入特征图中的相应值,然后将获得的9个积求和作为输出特征图的一个元素。为了获得下一个输出特征图的元素,卷积窗口要在输入特征图上按一定的步长滑动,以重复求积取和的操作,最终获得完整的输出特征图。
请参考图3,为一种卷积神经网络的卷积运算的示意图;,输入特征图像数据201可包含D个通道,且每一通道的输入特征图像数据可具有为H的列大小及为W的行大小(其中D、H及W为自然数)的元素。卷积核数据202中的每一组数据可具有为R的列大小及为S的行大小的元素,且卷积核数据202可包含数目与输入特征图像数据201的通道数目D(或深度)相同且相对应,其中R及S是自然数。输出特征图像数据203可通过输入特征图像数据201与卷积核数据202之间的三维卷积运算而被产生,且根据三维卷积运算可包含Y个通道,每个通过用于获取不同的图像特征。
请参考图4,为一种三维矩阵卷积运算的示意图,用于示意三维矩阵卷积运算矢量方向单一通道的卷积运算,包括输入图像数据X(i,j,k)、卷积核数据W(i,j,k)和输出特征图像数据P(i,j),其中,i,j和k为自然数,用于表示元素的位置,D表示矩阵宽方向,H表示矩阵高方向,L表示矩阵矢量方向。其中,输入图像数据X(i,j,k)和卷积核数据W(i,j,k)的矢量方向的层数相同,输出特征图像数据P(i,j)任意元素是矢量方向的输入图像数据X(i,j,k)和卷积核数据W(i,j,k)相应各层元素的积的累加,例如,输入图像数据X(1,1,k)和卷积核数据W(1,1,k)矢量方向的卷积运算是X(1,1,1)*W(1,1,1)+X(1,1,2)*W(1,1,2)+…+X(1,1,k)*W(1,1,k)。
请参考图5,为一种待卷积矩阵和卷积核矩阵的卷积计算示意图,包括1*8待卷积矩阵、1*3卷积核矩阵和1*6卷积结果矩阵。1*6卷积结果矩阵输出的每一个值是1*8待卷积矩阵的元素act_in与1*3卷积核矩阵的元素weight乘积的多项式。因此确定一个固定位置的1*6卷积结果矩阵元素act_out的值,我们需要知道,这个点对应的多项式由哪些act_in和weight的乘积组成。根据矩阵乘法的运算规则并结合图5中矩阵的特点我们可以得到以下的结论:
其中,i,j和k分别表示待卷积矩阵元素act_in,卷积核矩阵元素weight和卷积结果矩阵元素act_out的位置信息,对应图6中的序号数字。得到上述的结论之后我们就无需对待卷积矩阵元素act_in中的每一个值进行计算,而只需要知道非零的待卷积矩阵的元素act_in所在的位置信息就可以计算出与之对应的卷积结果矩阵元素act_out的值。只考虑待卷积矩阵或卷积核矩阵的稀疏性,并不能充分发掘出卷积稀疏性对卷积运算加速的优势,而且由于待卷积矩阵或卷积核矩阵各自稀疏性的差异,错误的模式选择反而降低加速器的效率。同时考虑act_in和weigth这两种数据类型的稀疏性时,卷积神经网络产生的输出将会无规则,增加了存储量和用于卷积计算硬件的复杂度。
在本申请实施例中,公开的用于卷积神经网络的卷积运算装置,包括待卷积矩阵控制器、卷积核矩阵控制器和卷积运算模块。待卷积矩阵控制器和卷积核矩阵控制器分别按卷积顺序获取待卷积矩阵和卷积核矩阵的标签矩阵,只有当待卷积矩阵和卷积核矩阵的标签矩阵的相同位置上的元素值均预设值时,才将与标签矩阵的元素对应的待卷积矩阵和卷积核矩阵的元素进行卷积运算以获取卷积结果矩阵。由待卷积矩阵和卷积核矩阵的标签矩阵的相同位置上的元素值均为预设值而引入的稀疏性要远大于待卷积矩阵和卷积核矩阵,使得卷积运算的计算量降低,进而加速卷积神经网络的运算速度。由于同时利用待卷积矩阵和卷积核矩阵的稀疏性,只当待卷积矩阵和卷积核矩阵的标签矩阵同时有效时在进行卷积运算,并且输出规则,易于存储,简化卷积计算过程。
实施例一
请参考图6,为一种实施例中卷积运算装置的结构示意图,卷积运算装置用于对待卷积矩阵X与卷积核矩阵W进行卷积计算以获取卷积结果矩阵P,包括待卷积矩阵控制器1、卷积核矩阵控制器2和卷积运算模块3。待卷积矩阵控制器1用于按卷积顺序依次获取一组预卷积计算的待卷积矩阵X的元素所对应的待卷积标签矩阵X′的元素,并发送给卷积运算模块3。待卷积标签矩阵X′的元素与待卷积矩阵X的元素一一对应,当待卷积矩阵X的元素为非零值时,待卷积标签矩阵X′的对应元素的值为第一数值。卷积核矩阵控制器2用于按卷积顺序依次获取一组预卷积计算的卷积核矩阵W的元素所对应的卷积核标签矩阵W′的元素,并发送给卷积运算模块3。卷积核标签矩阵W′的元素与卷积核矩阵W的元素一一对应,当卷积核矩阵W的元素为非零值时,卷积核标签矩阵W′的对应元素的值为第二数值。卷积运算模块3用于依据元素值分别为第一数值和第二数值的待卷积标签矩阵X′的元素和卷积核矩阵W′的元素获取待卷积矩阵X中的元素的位置信息和卷积核矩阵W中的元素的位置信息,再依据待卷积矩阵X中的元素的位置信息和卷积核矩阵W中的元素的位置信息获取待卷积矩阵X中的元素和卷积核矩阵W中的元素。卷积运算模块3还用于将获取的待卷积矩阵X中的元素和卷积核矩阵W中的元素进行卷积运算,将获取的卷积运算结果作为卷积结果矩阵P的一个元素输出。一实施例中,卷积运算装置还包括卷积结果矩阵获取装置4,用于获取卷积运算模块3输出的卷积结果矩阵P的元素,并按预设顺序获取卷积结果矩阵P。其中,卷积运算模块3用于依据元素值分别为第一数值和第二数值的待卷积标签矩阵X′的元素和卷积核矩阵W′的元素获取待卷积矩阵X中的元素的位置信息和卷积核矩阵W中的元素的位置信息,包括:
卷积运算模块4还用于按卷积运算中的每个乘运算对一个待卷积标签矩阵X′的元素和一个卷积核标签矩阵W′的元素进行匹配,当匹配的待卷积标签矩阵X′的元素的值为第一数值,且卷积核标签矩阵W′的元素的值为第二数值时,卷积运算模块4获取该待卷积标签矩阵X′的元素所对应的待卷积矩阵X中的元素的位置信息和该卷积核标签矩阵W′的元素所对应的卷积核矩阵W的元素的位置信息。卷积运算模块3再将获取的待卷积矩阵X中的元素的位置信息和卷积核矩阵W中的元素的位置信息分别给待卷积矩阵控制器1和卷积核矩阵控制器2。待卷积矩阵控制器1将获取的待卷积矩阵X中的元素的位置信息所对应的卷积矩阵X的元素发送给卷积运算模块3。卷积核矩阵控制器2将获取的卷积核矩阵W中的元素的位置信息所对应的卷积核矩阵W的元素发送给卷积运算模块3。卷积运算模块3获取待卷积矩阵X的元素和卷积核矩阵W的元素。卷积运算模块3按卷积运算中的每个乘运算将获取的卷积矩阵X的元素和卷积核矩阵W的元素相乘,并将每个相乘获取的积求和,以作为卷积结果矩阵P的一个元素输出。一实施例中,第一数值和第二数值为1。和/或,当待卷积矩阵X的元素为零值时,待卷积标签矩阵X′的对应元素的值为0,当卷积核矩阵W的元素为零值时,卷积核标签矩阵W′的对应元素的值为0。
在一实施例中,待卷积矩阵控制器1按平面卷积的顺序依次获取一组预卷积计算的待卷积矩阵X的元素所对应的待卷积标签矩阵X′的元素,并发送给卷积运算模块3,如图2所示,待卷积矩阵控制器1按平面卷积顺序获取一组预卷积计算的待卷积矩阵X的元素(X00,X01,X02,X10,X11,X12,X20,X21,X22)所对应的待卷积标签矩阵的元素,发送给卷积运算模块3,该组卷积运算结束后发送下一组(X01,X02,X03,X11,X12,X13,X21,X22,X23)所对应的待卷积标签矩阵的元素,依次类推。而卷积核矩阵控制器2用于按平面卷积顺序依次获取一组预卷积计算的卷积核矩阵W的元素(W00,W01,W02,W10,W11,W12,W20,W21,W22)所对应的卷积核标签矩阵W′的元素,并发送给卷积运算模块3。
在一实施例中,待卷积矩阵控制器1按三维矩阵矢量方向卷积的顺序依次获取一组预卷积计算的待卷积矩阵X的元素所对应的待卷积标签矩阵X′的元素,并发送给卷积运算模块3,如图4所示,待卷积矩阵控制器1按三维矩阵矢量方向卷积顺序获取一组预卷积计算的待卷积矩阵X的元素[X(0,0,1),X(0,0,2),X(0,0,3),…,X(0,0,k-2),X(0,0,k-1),X(0,0,k)]所对应的待卷积标签矩阵X′的元素[X′(0,0,1),X′(0,0,2),X′(0,0,3),…,X′(0,0,k-2),X′(0,0,k-1),X′(0,0,k)],并发送给卷积运算模块3,该组卷积运算结束后发送下一组预卷积计算的待卷积矩阵X的元素[X(0,1,1),X(0,1,2),X(0,1,3),…,X(0,1,k-2),X(0,1,k-1),X(0,1,k)]所对应的待卷积标签矩阵X′的元素[X′(0,1,1),X′(0,1,2),X′(0,1,3),…,X′(0,1,k-2),X′(0,1,k-1),X′(0,1,k)],依次类推。而卷积核矩阵控制器2用于按三维矩阵矢量方向卷积顺序依次获取一组预卷积计算的卷积核矩阵W的元素所对应的卷积核标签矩阵W′的元素,并发送给卷积运算模块3,如图4所示,卷积核矩阵控制器2按三维矩阵矢量方向卷积顺序获取一组预卷积计算的卷积核矩阵W的元素[W(0,0,1),W(0,0,2),W(0,0,3),…,W(0,0,k-2),W(0,0,k-1),W(0,0,k)]所对应的卷积核标签矩阵W′的元素[W′(0,0,1),W′(0,0,2),W′(0,0,3),…,W′(0,0,k-2),W′(0,0,k-1),W′(0,0,k)],并发送给卷积运算模块3,该组卷积运算结束后发送下一组预卷积计算的卷积核矩阵W的元素[W(0,1,1),W(0,1,2),W(0,1,3),…,W(0,1,k-2),W(0,1,k-1),W(0,1,k)]所对应的卷积核标签矩阵W′的元素[W′(0,1,1),W′(0,1,2),W′(0,1,3),…,W′(0,1,k-2),W′(0,1,k-1),W′(0,1,k)],依次类推。
请参考图7,为一种待卷积矩阵和卷积核矩阵的卷积计算示意图,包括1*8待卷积矩阵、1*3卷积核矩阵和1*6卷积结果矩阵。1*6卷积结果矩阵输出的每一个值是1*8待卷积矩阵的元素act_in与1*3卷积核矩阵的元素weight乘积的多项式。其中,1*8待卷积矩阵的非零元素包括a、b、c,1*3卷积核矩阵包括非零元素W0和W2,1*6卷积结果矩阵的只需要按卷积运算过程计算非零元素a、b、c和非零元素W0、W2分别乘积求和便可获取。
请参考图8,为一种实施例中待卷积矩阵和卷积核矩阵的卷积计算示意图,包括:
先获取1*8待卷积矩阵X和1*3卷积核矩阵W的标签矩阵,即获取1*8待卷积标签矩阵X′和1*3卷积核标签矩阵W′。其中,1*8待卷积标签矩阵X′和1*3卷积核标签矩阵W′中的元素的值是0或1。当1*8待卷积矩阵X的元素是非零值时,对应的1*8待卷积标签矩阵X′的元素的值是1。当1*8待卷积矩阵X的元素是零值时,对应的1*8待卷积标签矩阵X′的元素的值是0。1*3卷积核矩阵W的元素是非零值时,对应的1*3卷积核标签矩阵W′的元素的值是1,1*3卷积核矩阵W的元素是零值时,对应的1*3卷积核标签矩阵W′的元素的值是0。
按卷积顺序对1*8待卷积标签矩阵X′的元素和1*3卷积核标签矩阵W′的元素进行匹配,当1*8待卷积标签矩阵X′的元素和1*3卷积核标签矩阵W′的元素的值都为1时,获取1*8待卷积标签矩阵X′的元素和1*3卷积核标签矩阵W′的元素对应的1*8待卷积矩阵X和1*3卷积核矩阵W的元素,按卷积顺序依次获取1*6卷积结果矩阵P的元素。
在本申请实施例中,待卷积矩阵控制器和卷积核矩阵控制器分别按卷积顺序获取待卷积矩阵和卷积核矩阵的标签矩阵,只有当待卷积矩阵和卷积核矩阵的标签矩阵的相同位置上的元素值均为预设值时,才将与标签矩阵的元素对应的待卷积矩阵和卷积核矩阵的元素进行卷积运算以获取卷积结果矩阵。由待卷积矩阵和卷积核矩阵的标签矩阵的相同位置上的元素值均为预设值而引入的稀疏性要远大于待卷积矩阵和卷积核矩阵,使得卷积运算的计算量降低,进而加速卷积神经网络的运算速度。由于同时利用待卷积矩阵和卷积核矩阵的稀疏性,只当待卷积矩阵和卷积核矩阵的标签矩阵同时有效时在进行卷积运算,并且输出规则,易于存储,简化卷积计算过程。
实施例二
请参考图9,为另一种实施例中卷积运算模块的卷积计算示意图,用于对图4所示的三维矩阵输入特征图像数据X和三维矩阵卷积核数据W,在三维矩阵矢量方向卷积顺序进行卷积运算,以获取输出特征图像数据P。其中,卷积核数据W在矢量方向的层数与输入特征图像数据X的矢量方向的层数相同,如图4所示,输入图像数据X(i,j,k)和卷积核数据W(i,j,k)的矢量方向的层数k相同,输出特征图像数据P(i,j)任意元素是矢量方向的输入图像数据X(i,j,k)和卷积核数据W(i,j,k)相应各层元素的积的累加,即按三维矩阵矢量方向卷积顺序进行卷积运算,例如,一个矢量方向卷积运算步骤是获取输入图像数据X(1,1,k)和卷积核数据W(1,1,k)矢量方向的内积,即获取X(1,1,1)*W(1,1,1)+X(1,1,2)*W(1,1,2)+…+X(1,1,k)*W(1,1,k)的值作为输出特征图像数据P(i,j)一个元素的部分和。其中,待卷积矩阵元素为输入特征图像数据X中的元素,卷积核矩阵元素为卷积核数据W中的元素。待卷积矩阵元素和卷积核矩阵元素的乘积只在待卷积标签矩阵元素act_in和卷积核标签矩阵元素weigth同时有效时才进行计算,因待卷积矩阵元素和卷积核矩阵元素与待卷积标签矩阵元素act_in和卷积核标签矩阵元素weigth一一对应,且标签元素包含标签对应元素的位置信息,所以可以通过对标签矩阵进行操作,通过获取同时有效的标签矩阵的元素就可获取标签元素所对应元素的地址,将标签矩阵的act_in和weigth沿通道方向上的标签ActFlag和WeiFlag按位与,得到的标签ValFlag中“1”表示act_in和weigth同时有效的位置。由于act_in(或weight)在通道方向上被连续非稀疏存储,需要知道当前act_in(或weight)的地址,即在通道标签ActFlag(或WeiFlag)中,对应的位置前面“1”的个数。所以,将ValFlag中的每一位与前一级的或门输出进行或操作,结果,ValFlag中出现的第一个“1”之后的所有位置“1”得到SetFlag,将SetFlag按位取反后,和ActFlag按位与,剔除掉ActFlag在对应的位置后面的“1”,与上一次的ActCntFlag(初始化所有位为0)按位或,相当于加上上一次取数的地址,将计数“1”得到的值减1作为地址,取出有效的act_in和weigth,更新特征值的通道标签ActFlag和权重的通道标签WeiFlag,重复计算地址的过程,依次取出有效的act_in和weigth,相乘累加,完成通道方向上的矢量内积。再在高和宽方向上平面卷积,实现输入特征图与卷积核的卷积。采用这种在通道方向上同时利用act_in和weigth的稀疏性而设计的卷积方案,具有高能效、输出规整和存算的数据格式一致的优点。
实施例三
请参考图10,为另一种实施例中卷积运算装置的结构示意图,包括差值矩阵控制器10、卷积核矩阵控制器20和卷积运算模块30,用于对待卷积矩阵X(i,j,x)与卷积核矩阵W(i,j,w)进行卷积计算以获取卷积结果矩阵P(i,j,p),其中,如图4所示,i是矩阵的宽方向D坐标,j是矩阵的高方向H坐标,x、w和p分别是矩阵的矢量方向L坐标,矢量方向L坐标表示所在矩阵矢量方向的层数位置。差值矩阵控制器10用于获取矢量方向第m+1层待卷积矩阵X(i,j,m+1)与第m层待卷积矩阵X(i,j,m)的差值矩阵Q(i,j),并按卷积顺序依次将差值矩阵Q(i,j)的一组元素发送给卷积运算模块30。卷积核矩阵控制器20用于按卷积运算顺序将矢量方向第n层卷积核矩阵W(i,j,n)的元素发送给卷积运算模块30。卷积运算模块30还用于对获取的差值矩阵Q(i,j)的元素和卷积核矩阵W(i,j,n)的元素进行卷积运算,以获取差值结果矩阵O(i,j,),并将差值结果矩阵O(i,j,)与卷积结果矩阵P(i,j,q)按位累加,并将累加后的矩阵作为矢量方向第q+1层的卷积结果矩阵P(i,j,q+1)。其中,1≤m<x,1≤n≤w,1≤q<p。
一实施例中,卷积运算装置还包括待卷积矩阵控制器50,用于将矢量方向第m层沿高和宽两个方向按卷积顺序依次将一组待卷积矩阵X(i,j,m)的元素发送给卷积运算模块30,其中,1≤m≤x。卷积结果矩阵P(i,j,q)按以下步骤获取,包括:
卷积运算模块30还用于对获取的待卷积矩阵X(i,j,m)的元素和卷积核矩阵W(i,j,n)的元素进行卷积运算,以获取矢量方向第q层的卷积结果矩阵P(i,j,q),其中,1≤q≤p。
一实施例中,卷积运算装置还包括卷积结果矩阵获取装置40,用于获取卷积运算模块30输出的卷积结果矩阵P的元素,并按预设顺序获取卷积结果矩阵P。
其中,卷积运算模块30还用于对获取的所述差值矩阵Q(i,j)的元素和所述卷积核矩阵W(i,j,n)的元素进行卷积运算,以获取差值结果矩阵O(i,j,),包括:
差值矩阵控制器10还用于按卷积顺序依次获取一组预卷积计算的差值矩阵Q(i,j)的元素所对应的差值标签矩阵Q′(i,j)的元素,并发送给卷积运算模块30。差值标签矩阵Q′(i,j)的元素与差值矩阵Q(i,j)的元素一一对应,当差值矩阵Q(i,j)的元素为非零值时,差值标签矩阵Q′(i,j)的对应元素的值为第一数值。卷积核矩阵控制器20用于按卷积运算顺序获取一组矢量方向第n层卷积核矩阵W(i,j,n)的元素所对应的卷积核标签矩阵W′(i,j,n)的元素,并发送给卷积运算模块30,其中,1≤n≤w。卷积核标签矩阵W′(i,j,n)的元素与卷积核矩阵W(i,j,n)的元素一一对应,当卷积核矩阵W(i,j,n)的元素为非零值时,卷积核标签矩阵W′(i,j,n)的对应元素的值为第二数值。卷积运算模块30用于依据元素值分别为第一数值和第二数值的差值标签矩阵Q′(i,j)的元素和卷积核矩阵W′(i,j,n)的元素获取差值矩阵Q(i,j)中的元素的位置信息和所述卷积核矩阵W(i,j,n)中的元素的位置信息,再依据所述差值矩阵Q(i,j)中的元素的位置信息和卷积核矩阵W(i,j,n)中的元素的位置信息获取差值矩阵Q(i,j)中的元素和卷积核矩阵W(i,j,n)中的元素。卷积运算模块30还用于将获取的差值矩阵Q(i,j)中的元素和卷积核矩阵W(i,j,n)中的元素进行卷积运算,将获取的卷积运算结果依次作为差值结果矩阵O(i,j,)的一个元素。卷积运算模块30用于依据元素值分别为第一数值和第二数值的所述差值标签矩阵Q′(i,j)的元素和卷积核矩阵W′(i,j,n)的元素获取差值矩阵Q(i,j)中的元素的位置信息和卷积核矩阵W(i,j,n)中的元素的位置信息,包括:
卷积运算模块30用于按卷积运算中的每个乘运算对一个差值标签矩阵Q′(i,j)的元素和一个所述卷积核标签矩阵W′(i,j,n)的元素进行匹配。当匹配的差值标签矩阵Q′(i,j)的元素的值为第一数值,且卷积核标签矩阵W′(i,j,n)的元素的值为第二数值时,卷积运算模块30获取该待卷积标签矩阵差值标签矩阵Q′(i,j)的元素所对应的差值矩阵Q(i,j)中的元素的位置信息和该卷积核标签矩阵W′(i,j,n)的元素所对应的卷积核矩阵W(i,j,n)的元素的位置信息。一实施例中,第一数值和第二数值为1,和/或,当差值标矩阵Q(i,j)的元素为零值时,差值标签矩阵Q′(i,j)的对应元素的值为0,当卷积核矩阵W(i,j,n)的元素为零值时,卷积核标签矩阵W′(i,j,n)的对应元素的值为0。
请参考图11,为一种基于视频连续图像帧之间的相似性获取稀疏矩阵的示意图,包括连续图像帧数据a、图像帧之间差值数据b和图像差值矩阵数据c。由于连续图像帧数据a中连续两帧图像之间的时间间隔很小,它们有大部分的重叠,称为时间上的相似性。图像帧之间差值数据b中第一帧是原始图像,后续帧是连续两帧原始图像相减得到的差值矩阵,由于相似性,连续两帧原始图像在相同位置上的差值在大部分重叠的地方为0(白色),在极小部分不重叠的地方(主要是人物运动方向的边缘)不为0(黑色),因此差值矩阵是极其稀疏的,表示连续两帧图像有大量重叠(冗余)如图像差值矩阵数据c。
请参考图12,为一种三维卷积神经网络的卷积运算示意图,在视频处理上,三维卷积神经网络最近几年被用于识别视频中的动作、场景和目标,它相对于二维卷积神经网络不同的是,在时间维度上,它对连续的输入特征图也进行一维卷积,得到连续的输出特征图。由于卷积神经网络的容错性,卷积神经网络以极小的准确度下降为代价,对浮点型的参数量化到8位整型,使得微小的差值被忽略,这大大提高了相似性应用于卷积神经网络的潜力,使得差值矩阵更加稀疏,更少的计算和存储访问成为可能。在卷积神经网络中应用相似性和差值矩阵是基于卷积操作是线性变换,在神经网络卷积连续的两帧输入特征图时,卷积核是相同的,当前的输入特征图的卷积输出等于上一帧的卷积输出加上两帧差值矩阵的卷积输出,不需要卷积整个当前帧,而差值矩阵极其稀疏,这种由相似性带来的稀疏性甚至超过由剪枝带来的稀疏性。与神经网络加速器惯用的复用特征值或权重不同,利用输入特征图的相似性复用输出特征图,是在执行卷积输入特征图层次上的复用,是一种更高层次的复用。利用相似性带来的高稀疏和高复用而设计的神经网络加速器将会更加高能效。
在本申请实施例中,利用待卷积矩阵数据在时间上的相似性产生的稀疏性,及复用卷积核矩阵,实现卷积神经网络加速器的高能效。如图12所示,在三维卷积神经网络中,一帧输出特征图是由连续三帧的输入特征图与卷积核的三帧分别卷积,得到的三个部分和再相加,所以当计算下一帧输出特征图时,卷积运算模块的缓存中是上一帧的输入特征图与卷积核的第一帧卷积的部分和,因此获取差值矩阵只需要读取下一帧数据求差,这样能够减少读输入特征图的访问时间。按本申请公开的卷积运算装置的三维卷积神经网络加速器,利用输入特征图在时间上的相似性产生的稀疏性和复用输出特征图,同时减少对输入特征图的重复访问,达到更高能效的目的。
以上应用了具体个例对本发明进行阐述,只是用于帮助理解本发明,并不用以限制本发明。对于本发明所属技术领域的技术人员,依据本发明的思想,还可以做出若干简单推演、变形或替换。
Claims (10)
1.一种用于卷积神经网络的卷积运算装置,其特征在于,用于对待卷积矩阵X与卷积核矩阵W进行卷积计算以获取卷积结果矩阵P,包括待卷积矩阵控制器、卷积核矩阵控制器和卷积运算模块;
所述待卷积矩阵控制器用于按卷积顺序依次获取一组预卷积计算的待卷积矩阵X的元素所对应的待卷积标签矩阵X′的元素,并发送给所述卷积运算模块;所述待卷积标签矩阵X′的元素与所述待卷积矩阵X的元素一一对应,当所述待卷积矩阵X的元素为非零值时,所述待卷积标签矩阵X′的对应元素的值为第一数值;
所述卷积核矩阵控制器用于按卷积顺序依次获取一组预卷积计算的卷积核矩阵W的元素所对应的卷积核标签矩阵W′的元素,并发送给所述卷积运算模块;所述卷积核标签矩阵W′的元素与所述卷积核矩阵W的元素一一对应,当所述卷积核矩阵W的元素为非零值时,所述卷积核标签矩阵W′的对应元素的值为第二数值;
所述卷积运算模块用于依据元素值分别为所述第一数值和所述第二数值的所述待卷积标签矩阵X′的元素和所述卷积核矩阵W′的元素获取所述待卷积矩阵X中的元素的位置信息和所述卷积核矩阵W中的元素的位置信息,再依据所述待卷积矩阵X中的元素的位置信息和所述卷积核矩阵W中的元素的位置信息获取所述待卷积矩阵X中的元素和所述卷积核矩阵W中的元素;
所述卷积运算模块还用于将获取的所述待卷积矩阵X中的元素和所述卷积核矩阵W中的元素进行卷积运算,将获取的卷积运算结果作为所述卷积结果矩阵P的一个元素输出。
2.如权利要求1所述的卷积运算装置,其特征在于,所述卷积运算模块用于依据元素值分别为所述第一数值和所述第二数值的所述待卷积标签矩阵X′的元素和所述卷积核矩阵W′的元素获取所述待卷积矩阵X中的元素的位置信息和所述卷积核矩阵W中的元素的位置信息,包括:
所述卷积运算模块用于按卷积运算中的每个乘运算对一个所述待卷积标签矩阵X′的元素和一个所述卷积核标签矩阵W′的元素进行匹配;
当匹配的所述待卷积标签矩阵X′的元素的值为第一数值,且所述卷积核标签矩阵W′的元素的值为第二数值时,所述卷积运算模块获取该待卷积标签矩阵X′的元素所对应的所述待卷积矩阵X中的元素的位置信息和该卷积核标签矩阵W′的元素所对应的所述卷积核矩阵W的元素的位置信息。
3.如权利要求2所述的卷积运算装置,其特征在于,所述依据所述待卷积矩阵X中的元素的位置信息和所述卷积核矩阵W中的元素的位置信息获取所述待卷积矩阵X中的元素和所述卷积核矩阵W中的元素,包括:
所述卷积运算模块将获取的所述待卷积矩阵X中的元素的位置信息和所述卷积核矩阵W中的元素的位置信息分别给所述待卷积矩阵控制器和所述卷积核矩阵控制器;
所述待卷积矩阵控制器将获取的所述待卷积矩阵X中的元素的位置信息所对应的所述卷积矩阵X的元素发送给所述卷积运算模块;
所述卷积核矩阵控制器将获取的所述卷积核矩阵W中的元素的位置信息所对应的所述卷积核矩阵W的元素发送给所述卷积运算模块;
所述卷积运算模块获取所述待卷积矩阵X的元素和所述卷积核矩阵W的元素。
4.如权利要求3所述的卷积运算装置,其特征在于,所述卷积运算模块还用于将获取的所述待卷积矩阵X中的元素和所述卷积核矩阵W中的元素进行卷积运算,将获取的卷积运算结果作为所述卷积结果矩阵P的一个元素输出,包括:
所述卷积运算模块按卷积运算中的每个乘运算将获取的所述卷积矩阵X的元素和所述卷积核矩阵W的元素相乘,并将每个相乘获取的积求和,以作为所述卷积结果矩阵P的一个元素输出。
5.如权利要求1所述的卷积运算装置,其特征在于,所述第一数值和所述第二数值为1;和/或,当所述待卷积矩阵X的元素为零值时,所述待卷积标签矩阵X′的对应元素的值为0,当所述卷积核矩阵W的元素为零值时,所述卷积核标签矩阵W′的对应元素的值为0。
6.一种用于卷积神经网络的卷积运算装置,其特征在于,用于对待卷积矩阵X(i,j,x)与卷积核矩阵W(i,j,w)进行卷积计算以获取卷积结果矩阵P(i,j,p),包括卷积核矩阵控制器、差值矩阵控制器和卷积运算模块;其中,i是矩阵的宽方向,j是矩阵的高方向,x、w和p分别是矩阵的矢量方向;
所述差值矩阵控制器用于获取矢量方向第m+1层待卷积矩阵X(i,j,m+1)与第m层待卷积矩阵X(i,j,m)的差值矩阵Q(i,j),并按卷积顺序依次将差值矩阵Q(i,j)的一组元素发送给所述卷积运算模块,其中,1≤m<x;
所述卷积核矩阵控制器用于按卷积运算顺序将矢量方向第n层卷积核矩阵W(i,j,n)的元素发送给所述卷积运算模块,其中,1≤n≤w;
所述卷积运算模块还用于对获取的所述差值矩阵Q(i,j)的元素和所述卷积核矩阵W(i,j,n)的元素进行卷积运算,以获取差值结果矩阵O(i,j),并将所述差值结果矩阵O(i,j)与所述卷积结果矩阵P(i,j,q)按位累加,并将累加后的矩阵作为所述矢量方向第q+1层的卷积结果矩阵P(i,j,q+1),其中,1≤q<p。
7.如权利要求6所述的卷积运算装置,其特征在于,还包括待卷积矩阵控制器,用于将矢量方向第m层沿高和宽两个方向按卷积顺序依次将一组待卷积矩阵X(i,j,m)的元素发送给所述卷积运算模块,其中,1≤m≤x;
所述卷积结果矩阵P(i,j,q)按以下步骤获取,包括:
所述卷积运算模块还用于对获取的所述待卷积矩阵X(i,j,m)的元素和所述卷积核矩阵W(i,j,n)的元素进行卷积运算,以获取矢量方向第q层的卷积结果矩阵P(i,j,q)。
8.如权利要求6所述的卷积运算装置,其特征在于,其特征在于,所述卷积运算模块还用于对获取的所述差值矩阵Q(i,j)的元素和所述卷积核矩阵W(i,j,n)的元素进行卷积运算,以获取差值结果矩阵O(i,j,),包括:
所述差值矩阵控制器还用于按卷积顺序依次获取一组预卷积计算的差值矩阵Q(i,j)的元素所对应的差值标签矩阵Q′(i,j)的元素,并发送给所述卷积运算模块;所述差值标签矩阵Q′(i,j)的元素与所述差值矩阵Q(i,j)的元素一一对应,当所述差值矩阵Q(i,j)的元素为非零值时,所述差值标签矩阵Q′(i,j)的对应元素的值为第一数值;
所述卷积核矩阵控制器用于按卷积运算顺序获取一组矢量方向第n层卷积核矩阵W(i,j,n)的元素所对应的卷积核标签矩阵W′(i,j,n)的元素,并发送给所述卷积运算模块,其中,1≤n≤w;所述卷积核标签矩阵W′(i,j,n)的元素与所述卷积核矩阵W(i,j,n)的元素一一对应,当所述卷积核矩阵W(i,j,n)的元素为非零值时,所述卷积核标签矩阵W′(i,j,n)的对应元素的值为第二数值;
所述卷积运算模块用于依据元素值分别为所述第一数值和所述第二数值的所述差值标签矩阵Q′(i,j)的元素和所述卷积核矩阵W′(i,j,n)的元素获取所述差值矩阵Q(i,j)中的元素的位置信息和所述卷积核矩阵W(i,j,n)中的元素的位置信息,再依据所述差值矩阵Q(i,j)中的元素的位置信息和所述卷积核矩阵W(i,j,n)中的元素的位置信息获取所述差值矩阵Q(i,j)中的元素和所述卷积核矩阵W(i,j,n)中的元素;
所述卷积运算模块还用于将获取的所述差值矩阵Q(i,j)中的元素和所述卷积核矩阵W(i,j,n)中的元素进行卷积运算,将获取的卷积运算结果依次作为所述差值结果矩阵O(i,j,)的一个元素。
9.如权利要求8所述的卷积运算装置,其特征在于,所述卷积运算模块用于依据元素值分别为所述第一数值和所述第二数值的所述差值标签矩阵Q′(i,j)的元素和所述卷积核矩阵W′(i,j,n)的元素获取所述差值矩阵Q(i,j)中的元素的位置信息和所述卷积核矩阵W(i,j,n)中的元素的位置信息,包括:
所述卷积运算模块用于按卷积运算中的每个乘运算对一个所述差值标签矩阵Q′(i,j)的元素和一个所述卷积核标签矩阵W′(i,j,n)的元素进行匹配;
当匹配的所述差值标签矩阵Q′(i,j)的元素的值为第一数值,且所述卷积核标签矩阵W′(i,j,n)的元素的值为第二数值时,所述卷积运算模块获取该
待卷积标签矩阵差值标签矩阵Q′(i,j)的元素所对应的所述差值矩阵Q(i,j)中的元素的位置信息和该卷积核标签矩阵W′(i,j,n)的元素所对应的所述卷积核矩阵W(i,j,n)的元素的位置信息。
10.如权利要求8所述的卷积运算装置,其特征在于,所述第一数值和所述第二数值为1;和/或,当所述差值标矩阵Q(i,j)的元素为零值时,所述差值标签矩阵Q′(i,j)的对应元素的值为0,当所述卷积核矩阵W(i,j,n)的元素为零值时,所述卷积核标签矩阵W′(i,j,n)的对应元素的值为0。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010514287.5A CN111882028B (zh) | 2020-06-08 | 2020-06-08 | 用于卷积神经网络的卷积运算装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010514287.5A CN111882028B (zh) | 2020-06-08 | 2020-06-08 | 用于卷积神经网络的卷积运算装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111882028A true CN111882028A (zh) | 2020-11-03 |
CN111882028B CN111882028B (zh) | 2022-04-19 |
Family
ID=73156464
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010514287.5A Active CN111882028B (zh) | 2020-06-08 | 2020-06-08 | 用于卷积神经网络的卷积运算装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111882028B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113435586A (zh) * | 2021-08-03 | 2021-09-24 | 北京大学深圳研究生院 | 用于卷积神经网络的卷积运算装置、系统和图像处理装置 |
WO2023173298A1 (en) * | 2022-03-15 | 2023-09-21 | Huawei Technologies Co.,Ltd. | Methods and systems for distributed training a deep neural network |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070292047A1 (en) * | 2006-06-14 | 2007-12-20 | Guofang Jiao | Convolution filtering in a graphics processor |
CN104599292A (zh) * | 2015-02-03 | 2015-05-06 | 中国人民解放军国防科学技术大学 | 一种基于低秩矩阵分解的抗噪运动目标检测算法 |
CN107239823A (zh) * | 2016-08-12 | 2017-10-10 | 北京深鉴科技有限公司 | 一种用于实现稀疏神经网络的装置和方法 |
CN107729995A (zh) * | 2017-10-31 | 2018-02-23 | 中国科学院计算技术研究所 | 用于加速神经网络处理器的方法和系统及神经网络处理器 |
CN107844829A (zh) * | 2017-10-31 | 2018-03-27 | 中国科学院计算技术研究所 | 用于加速神经网络处理器的方法和系统及神经网络处理器 |
CN109245773A (zh) * | 2018-10-30 | 2019-01-18 | 南京大学 | 一种基于块循环稀疏矩阵神经网络的编解码方法 |
CN109299291A (zh) * | 2018-09-28 | 2019-02-01 | 武汉大学 | 一种基于卷积神经网络的问答社区标签推荐方法 |
CN109766949A (zh) * | 2019-01-17 | 2019-05-17 | 北京海印博识智能科技有限公司 | 卷积神经网络轻量化方法、装置及电子设备 |
WO2019109795A1 (zh) * | 2017-12-06 | 2019-06-13 | 腾讯科技(深圳)有限公司 | 卷积运算处理方法及相关产品 |
CN109993297A (zh) * | 2019-04-02 | 2019-07-09 | 南京吉相传感成像技术研究院有限公司 | 一种负载均衡的稀疏卷积神经网络加速器及其加速方法 |
CN110073370A (zh) * | 2016-12-13 | 2019-07-30 | 高通股份有限公司 | 用于稀疏神经网络的低功率架构 |
CN110263707A (zh) * | 2019-06-19 | 2019-09-20 | 湖南大学 | 图像识别方法、装置、计算机设备以及存储介质 |
CN110334803A (zh) * | 2019-07-18 | 2019-10-15 | 南京风兴科技有限公司 | 基于稀疏化Winograd算法的卷积计算方法和卷积神经网络加速器 |
CN110807513A (zh) * | 2019-10-23 | 2020-02-18 | 中国人民解放军国防科技大学 | 一种基于Winograd稀疏算法的卷积神经网络加速器 |
CN113077047A (zh) * | 2021-04-08 | 2021-07-06 | 华南理工大学 | 一种基于特征图稀疏性的卷积神经网络加速器 |
-
2020
- 2020-06-08 CN CN202010514287.5A patent/CN111882028B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070292047A1 (en) * | 2006-06-14 | 2007-12-20 | Guofang Jiao | Convolution filtering in a graphics processor |
CN104599292A (zh) * | 2015-02-03 | 2015-05-06 | 中国人民解放军国防科学技术大学 | 一种基于低秩矩阵分解的抗噪运动目标检测算法 |
CN107239823A (zh) * | 2016-08-12 | 2017-10-10 | 北京深鉴科技有限公司 | 一种用于实现稀疏神经网络的装置和方法 |
CN110073370A (zh) * | 2016-12-13 | 2019-07-30 | 高通股份有限公司 | 用于稀疏神经网络的低功率架构 |
CN107729995A (zh) * | 2017-10-31 | 2018-02-23 | 中国科学院计算技术研究所 | 用于加速神经网络处理器的方法和系统及神经网络处理器 |
CN107844829A (zh) * | 2017-10-31 | 2018-03-27 | 中国科学院计算技术研究所 | 用于加速神经网络处理器的方法和系统及神经网络处理器 |
WO2019109795A1 (zh) * | 2017-12-06 | 2019-06-13 | 腾讯科技(深圳)有限公司 | 卷积运算处理方法及相关产品 |
CN109299291A (zh) * | 2018-09-28 | 2019-02-01 | 武汉大学 | 一种基于卷积神经网络的问答社区标签推荐方法 |
CN109245773A (zh) * | 2018-10-30 | 2019-01-18 | 南京大学 | 一种基于块循环稀疏矩阵神经网络的编解码方法 |
CN109766949A (zh) * | 2019-01-17 | 2019-05-17 | 北京海印博识智能科技有限公司 | 卷积神经网络轻量化方法、装置及电子设备 |
CN109993297A (zh) * | 2019-04-02 | 2019-07-09 | 南京吉相传感成像技术研究院有限公司 | 一种负载均衡的稀疏卷积神经网络加速器及其加速方法 |
CN110263707A (zh) * | 2019-06-19 | 2019-09-20 | 湖南大学 | 图像识别方法、装置、计算机设备以及存储介质 |
CN110334803A (zh) * | 2019-07-18 | 2019-10-15 | 南京风兴科技有限公司 | 基于稀疏化Winograd算法的卷积计算方法和卷积神经网络加速器 |
CN110807513A (zh) * | 2019-10-23 | 2020-02-18 | 中国人民解放军国防科技大学 | 一种基于Winograd稀疏算法的卷积神经网络加速器 |
CN113077047A (zh) * | 2021-04-08 | 2021-07-06 | 华南理工大学 | 一种基于特征图稀疏性的卷积神经网络加速器 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113435586A (zh) * | 2021-08-03 | 2021-09-24 | 北京大学深圳研究生院 | 用于卷积神经网络的卷积运算装置、系统和图像处理装置 |
CN113435586B (zh) * | 2021-08-03 | 2021-11-30 | 北京大学深圳研究生院 | 用于卷积神经网络的卷积运算装置、系统和图像处理装置 |
WO2023173298A1 (en) * | 2022-03-15 | 2023-09-21 | Huawei Technologies Co.,Ltd. | Methods and systems for distributed training a deep neural network |
Also Published As
Publication number | Publication date |
---|---|
CN111882028B (zh) | 2022-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110059710B (zh) | 用于利用卷积神经网络进行图像分类的装置和方法 | |
US10096134B2 (en) | Data compaction and memory bandwidth reduction for sparse neural networks | |
CN110222760B (zh) | 一种基于winograd算法的快速图像处理方法 | |
CN111652360B (zh) | 一种基于脉动阵列的卷积运算装置 | |
CN112801280B (zh) | 视觉深度自适应神经网络的一维卷积位置编码方法 | |
CN114651260A (zh) | 具有动态权重选择的相位选择性卷积 | |
Sun et al. | Separable Markov random field model and its applications in low level vision | |
CN110162783B (zh) | 用于语言处理的循环神经网络中隐状态的生成方法和装置 | |
CN114341891A (zh) | 神经网络剪枝 | |
CN111882028B (zh) | 用于卷积神经网络的卷积运算装置 | |
CN108197653A (zh) | 一种基于卷积回声状态网络的时间序列分类方法 | |
CN110781912A (zh) | 一种基于通道扩张倒置卷积神经网络的图像分类方法 | |
CN112633477A (zh) | 一种基于现场可编程阵列的量化神经网络加速方法 | |
CN115018039A (zh) | 一种神经网络蒸馏方法、目标检测方法以及装置 | |
CN116863194A (zh) | 一种足溃疡图像分类方法、系统、设备及介质 | |
CN116309135A (zh) | 扩散模型处理方法及装置、图片处理方法及装置 | |
CN111652359B (zh) | 用于矩阵运算的乘法器阵列和用于卷积运算的乘法器阵列 | |
EP3637323A1 (en) | Information processing device and information processing method | |
CN116612288B (zh) | 一种多尺度轻量级实时语义分割方法、系统 | |
CN113919479B (zh) | 一种提取数据特征的方法和相关装置 | |
CN116888605A (zh) | 神经网络模型的运算方法、训练方法及装置 | |
CN113435586B (zh) | 用于卷积神经网络的卷积运算装置、系统和图像处理装置 | |
CN114120245B (zh) | 基于深度神经网络的人群图像分析方法、装置以及设备 | |
CN113688783B (zh) | 人脸特征提取方法、低分辨率人脸识别方法及设备 | |
Chung et al. | Filter pruning by image channel reduction in pre-trained convolutional neural networks |
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 |