CN109359726A - 一种基于winograd算法的卷积神经网络优化方法 - Google Patents
一种基于winograd算法的卷积神经网络优化方法 Download PDFInfo
- Publication number
- CN109359726A CN109359726A CN201811428718.5A CN201811428718A CN109359726A CN 109359726 A CN109359726 A CN 109359726A CN 201811428718 A CN201811428718 A CN 201811428718A CN 109359726 A CN109359726 A CN 109359726A
- Authority
- CN
- China
- Prior art keywords
- matrix
- convolution kernel
- cut
- filter
- neural networks
- 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.)
- Pending
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
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)
- Image Analysis (AREA)
Abstract
本发明公开一种基于winograd算法的卷积神经网络优化方法,包括:(1)确定待优化的卷积神经网络,所述待优化的卷积神经网络包括至少一个卷积层,每个卷积层包括多个过滤器,每个过滤器有多个通道,每个通道对应一个卷积核;(2)在每个卷积层中,根据每个卷积核的绝对值之和进行排序,按比例选取绝对值之和小的卷积核进行裁剪,并更新每个卷积层的面具矩阵;(3)基于所述面具矩阵使用winograd算法确定每个过滤器对应的输出特征图。本发明基于winograd算法在转化卷积核时添加一个面具矩阵来识别已被裁剪的卷积核;使用预设矩阵W、X、M对裁剪的模型进行计算,以此避免局部非结构化带来的计算劣势。
Description
技术领域
本发明涉及人工智能技术领域,更具体地,涉及一种基于winograd算法的卷积神经网络优化方法。
背景技术
AlphaGo成功打败人类后,深度学习模型就越来越吸引人们的目光,特别是卷积神经网络模型已经在商业领域和研究领域都表现出了令人惊讶地成就。因为深度学习模型举世瞩目的成就,将其部署在以手机为例的移动设备端的需求也就应运而生,然而这些移动设备的CPU、内存等资源都远不足以运行庞大的深度学习模型。为了解决这类问题,对深度学习模型的优化加速方法就很快热门起来。
这两年出现了很多对深度模型的推断优化加速方法,首当其冲的就是对卷积神经网络的加速优化,这主要是因为卷积神经网络通常用来处理图像数据,众所周知,图像的数据量是除了视频数据外最大的,因此对卷积神经网络的计算需求和内存需求的优化势在必行。
因为卷积神经网络中有大量冗余参数,所以现有的卷积神经网络优化方式主要有两类:非结构化稀疏和非结构化稀疏。非结构化稀疏虽然可以实现更大程度的稀疏化,但却会使得训练好的卷积神经网络模型中的卷积核的结构会遭到破坏变成非结构化,非结构化的卷积核在与结构化的输入图片数据计算时会出现稀疏矩阵与密集矩阵相乘,严重影响计算速度。而现有的结构化稀疏,例如通道系数和过滤器稀疏,都是粗粒度的结构化稀疏,这些粗粒度的结构化稀疏化方法虽然不会影响计算速度但在对卷积神经网络的稀疏过程中会“不小心”的将许多重要的参数误裁。
发明内容
针对现有技术的缺陷,本发明的目的在于解决现有卷积神经网络优化方法中,非结构化稀疏会破坏卷积核的结构,严重影响计算速度,以及粗粒度的结构化稀疏的粗粒度结构化会在稀疏过程中将许多重要的参数误裁的技术问题。
为实现上述目的,本发明提供一种基于winograd算法的卷积神经网络优化方法,包括以下步骤:
(1)确定待优化的卷积神经网络,所述待优化的卷积神经网络包括至少一个卷积层,每个卷积层包括多个过滤器,每个过滤器有多个通道,每个通道对应一个卷积核,每个卷积核对应一个输入特征图;
(2)在每个卷积层中,根据每个卷积核的绝对值之和进行排序,按比例选取绝对值之和小的卷积核进行裁剪,并更新每个卷积层的面具矩阵,所述面具矩阵的行和列分别对应过滤器和通道,面具矩阵中的元素数值用于指示对应过滤器和通道的卷积核是否被裁剪,所述卷积核的绝对值之和通过将卷积核的矩阵元素的绝对值相加得到;
(3)基于所述面具矩阵使用winograd算法确定每个过滤器对应的输出特征图。
可选地,待优化的卷积神经网络的卷积核是四维张量,N×C×K×K,其中N是过滤器的个数,一个C×K×K的三维张量记为一个过滤器,C是通道数,每个通道对应一个输入特征图,K×K是一个二维矩阵,记为卷积核;一个过滤器由C个卷积核对应的二维矩阵K×K组成,K表示卷积核的长和宽。
可选地,所述步骤(2)包括如下子步骤:
(21)在每个卷积层中,计算每个卷积核的绝对值之和;
(22)按绝对值之和对每个卷积层中所有的卷积核升序排列后放入一个集合中;
(23)在集合中选择绝对值之和最小的卷积核作为待裁剪卷积核;
(24)判断待裁剪的卷积核所处的过滤器或通道是否达到裁剪上限,如果达到裁剪上限,进入步骤(25),否则进入步骤(26);
(25)将该待裁剪卷积核移出集合,进入步骤(23);
(26)将该卷积核裁剪掉,并判断卷积核的裁减数是否达到预定值,如果未达到,进入步骤(23),如果达到,停止裁剪。
可选地,所述步骤(24)包含如下子步骤:
(241)裁剪卷积核时,每个过滤器裁剪的比例相同,当一个过滤器中裁剪的卷积核数目已达上限,则不能裁剪该过滤器中任何卷积核;
(242)裁剪卷积核时,每个通道裁剪的比例相同,当一个通道中裁剪的卷积核数目已达上限,则不能裁剪该通道中任何卷积核。
可选地,所述步骤(26)包含如下子步骤:
(261)在每个卷积层中,定义一个面具矩阵N×C,其中N表示一个过滤器,C表示一个通道,矩阵中每个点表示一个过滤器中一个通道上的卷积核,矩阵中每个点都是二值,0和1,其中0表示对应位置的卷积核已经被裁剪,1表示对应位置的卷积核没有被裁剪;
(262)卷积核被裁掉后,面具矩阵中对应位置的数值置0。
可选地,所述步骤(3)包含如下子步骤:
(31)将没有裁剪的卷积核与第一预设矩阵W及其转置矩阵进行矩阵乘法得到第一中间结果U,计算公式为:WwWT,其中w为没有裁剪的卷积核;
(32)将输入特征图切片后的矩阵与第二预设矩阵X及其转置矩阵进行矩阵相乘得到第二中间结果V,计算公式为:XxXT其中x为输入特征图切片后的矩阵;
(33)第一中间结果和第二中间结果进行点乘,得到第三中间结果Z;
(34)将第三中间结果Z与第三预设矩阵M及其转置矩阵进行矩阵相乘,得到一个转化后的N×L矩阵,该矩阵中每一行的元素组合起来就是一个输出特征图,最终得到N个过滤器对应的N个输出特征图。
可选地,所述步骤(31)包含如下子步骤:
(311)K值不同的卷积核选取不同大小的第一预设矩阵;
(312)将面具矩阵中数值为1的位置所代表的卷积核与第一预设矩阵W及其转置矩阵进行矩阵乘法后,得到第一中间结果U。
可选地,所述步骤(32)包含如下子步骤:
(321)输入特征图是三维张量,C×Col×Row,其中C表示通道数,即输入特征图的个数,Col×Row表示一个二维输入特征图的列和行;
(322)从每个输入特征图的左上角开始截取一个t×t的输入特征图切片,其中t×t为第二预设矩阵X的大小;
(323)以步长S向右移动到最右端;
(324)以步长S向下移动,如果到达输入特征图最下端,输入特征图切分结束,否则,重复步骤(323);
(325)每个输入特征图切片后,将每个t×t的输入特征图切片与第二预设矩阵X及其转置矩阵相乘,得到第二中间结果V。
可选地,所述步骤(33)包含如下子步骤:
(331)在一个卷积层中,U可表示为N×C×t×t,二维的卷积核与第一预设矩阵W及其转置矩阵相乘后的转化值的长×宽是t×t,V可表示为C×L×t×t,L表示每个二维的输入特征图的切片数目,输入特征图切片与第二预设矩阵X及其转置矩阵相乘后的转化值的长×宽是t×t;
(332)在winograd算法计算过程中,U中的N×C与V中的C×L进行矩阵相乘,将长×宽是t×t的转化值看作矩阵相乘中的一个数值,最终得到一个矩阵中每个点都是一个t×t二维矩阵的N×L矩阵,记作Z;
(333)计算时,二维的卷积核与第一预设矩阵W及其转置矩阵相乘后的转化值与输入特征图切片与第二预设矩阵X及其转置矩阵相乘后的转化值两个t×t二维矩阵之间进行点乘计算而非矩阵乘法。
可选地,步骤(34)包含如下子步骤:
(341)步骤(332)中得到的第三中间结果Z,是一个N×L的矩阵,该矩阵中每个值都是一个t×t的二维矩阵;
(342)对其中每个t×t二维矩阵,将其与第三预设矩阵M及其转置矩阵进行矩阵乘法,最终得到一个转化后的N×L矩阵,该矩阵中每一行的元素组合起来就是一个输出特征图;
(343)分别将步骤(342)得带的N×L矩阵的各行元素组合起来,得到N个过滤器对应的N个输出特征图。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效果:
本发明提供的卷积神经网络优化方法,使用细粒度的卷积神经网络裁剪,卷积核裁剪策略,根据所有卷积核的绝对之和,选择待裁剪的卷积核;选取的待裁剪卷积核所处的过滤器和通道均未满裁剪上限,将该卷积核裁剪掉,否则,选取下一个待裁剪卷积核,直至达到预定的卷积核裁剪数量;使用winograd算法计算经过细粒度裁剪的卷积模型,在转化卷积核时添加一个面具矩阵来识别已被裁剪的卷积核;使用预设矩阵W、X、M对裁剪的模型进行计算,以此避免局部非结构化带来的计算劣势。
本发明提供的卷积神经网络优化方法,相比于传统的基于im2col算法的卷积计算,使用传统基于im2col算法裁剪卷积核时,会出现大量的零,进而影响计算效率,本发明进行卷积核裁剪后单个卷积核是结构化,与winograd算法的计算过程刚好互补。基于winograd算法的卷积计算通过将浮点数相乘转换为浮点数相加的方式来达到加快计算的目的;在winograd算法减少浮点数相乘的转换操作过程中会将原来的过滤器级别的矩阵乘法转换为卷积核级别的矩阵点乘,不仅实现了细粒度模型压缩,而且避免了过滤器范围的非结构化带来的计算缺陷。
附图说明
图1是本发明实施例提供的卷积核裁剪示意图;
图2是本发明实施例提供裁剪卷积核的流程图;
图3是本发明实施例中基于winograd算法的卷积计算过程示意图;
图4是本发明实施例中使用winograd算法的卷积特征图计算流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明提供了一种基于winograd算法的卷积神经网络的优化方法,其目的在于对卷积神经网络实现更高程度稀疏化的同时不会导致稀疏矩阵密集矩阵相乘的问题。
图1所示,是本发明实施例中的卷积核裁剪示意图。在每个卷积层中,根据每个卷积核的绝对值之和进行排序,按比例选取绝对值小的卷积核进行裁剪;图1(a)中,是一个卷积层的示意图,左边是输入特征图,中间是多个过滤器,右边是输出特征图;图1(b)中,是卷积核裁剪的一个实例,假设每个过滤器中只有三个3×3的卷积核,当裁剪比例为33%时,会优先裁剪排序最下面过滤器中,最左边的卷积核,因为它的绝对值之和最小,被认为是最无用,最弱的卷积核;同时该过滤器中只能裁剪这一个卷积核,再裁剪就超过预设上限33%,所以最终每个过滤器会裁剪一个本过滤器内最弱的卷积核。
图2所示,是本发明实施例中裁剪卷积核的流程图。实施例中裁剪卷积核具体包含如下步骤:
(21)在一个卷积层中,计算每个卷积核的绝对值之和;
(22)按绝对值之和对所有的卷积核升序排列后放入一个集合中;
(23)在集合中选择绝对值之和最小的卷积核作为待裁剪卷积核;
(24)判断待裁剪的卷积核所处的过滤器或通道是否达到裁剪上限,如果达到裁剪上限,进入步骤(25),否则进入步骤(26);
(25)将该待裁剪卷积核移出集合,进入步骤(23);
(26)将该卷积核裁剪掉,并判断卷积核的裁减数是否达到预定值,如果未达到,进入步骤(23),如果达到,停止裁剪。
其中,实施例(24)还包含如下子步骤:
(241)裁剪卷积核时,每个过滤器裁剪的比例相同,当一个过滤器中裁剪的卷积核数目以达上限,则不能裁剪该过滤器中任何卷积核;
(242)裁剪卷积核时,每个通道裁剪的比例相同,当一个通道中裁剪的卷积核数目以达上限,则不能裁剪该通道中任何卷积核。
其中,实施例(26)还包含如下子步骤:
(261)在每个卷积层中,定义一个面具矩阵(N×C),其中N表示一个过滤器,C表示一个通道,矩阵中每个点表示某个过滤器中某通道上的卷积核,矩阵中每个点都是二值,0和1,其中0表示对应位置的卷积核已经被裁剪,1表示对应位置的卷积核没有被裁剪;
(262)卷积核被裁掉后,面具矩阵中对应位置的数值置0。
图3所示,是本发明实施例中基于winograd算法的卷积计算过程示意图。由于卷积核裁剪导致使用传统基于im2col算法时,会出现大量的零,进而影响计算效率;同时,因为卷积核裁剪后单个卷积核是结构化的,与winograd算法的计算过程刚好互补,不仅实现了细粒度模型压缩,而且避免了过滤器范围的非结构化带来的计算缺陷。
图4所示,是本发明实施例中使用winograd算法的卷积计算流程图。图4与图3一起表示了使用winograd算法进行模型裁剪后的卷积计算的步骤,具体步骤如下:
(31)将没有裁剪的卷积核(K×K)与预设矩阵W(4×3)及其转置矩阵进行矩阵乘法得到中间结果U,计算公式为:WwWT,其中w为卷积核;
(32)将输入特征图切片后的矩阵(t×t)与预设矩阵X(t×t)及其转置矩阵进行矩阵相乘得到中间结果V,计算公式为:XxXT其中x为输入特征图切片;
(33)将步骤(31)和步骤(32)计算得到的结果进行点乘,计算公式为:(WwWT)⊙(XxXT)得到中间结果Z,其中⊙表示点乘;
(34)将步骤(33)得到的结果与预设矩阵M(2×3)及其转置矩阵进行矩阵相乘,计算公式为:M[(WwWT)⊙(XxXT)]MT。
其中,步骤(31)还包含如下子步骤:
(311)不同尺寸的卷积核(不同K值大小)可以选取不同大小的预设矩阵;
(312)将面具矩阵中数值为1的位置所代表的卷积核与预设矩阵W及其转置矩阵进行矩阵乘法后,得到一个中间结果U。
其中,步骤(32)还包含如下子步骤:
(321)输入特征图通常是三维张量,C×Col×Row,其中C表示通道数,也即二维输入特征图的个数,Col×Row表示一个二维输入特征图的列和行;
(322)从每个输入特征图的左上角开始截取一个t×t的输入特征图切片,其中t×t为预设矩阵X的大小;
(323)以步长S向右移动到最右端;
(324)以步长S向下移动,如果到达输入特征图最下端,输入特征图切分结束,否则,重复步骤(323);
(325)每个输入特征图切片后,将每个t×t的输入特征图切片与预设矩阵X及其转置矩阵X相乘,得到一个中间结果V。
其中,步骤(33)还包含如下子步骤:
(331)在一个卷积层中,U可表示为(N×C×t×t),其中N是过滤器个数,C是通道数,二维的卷积核与预设矩阵W及其转置矩阵相乘后的转化值的尺寸是t×t,V可以表示为(C×L×t×t),其中C表示通道数(也即二维的输入特征图个数),L表示每个二维的输入特征图的切片数目,输入特征图切片与预设矩阵X及其转置矩阵相乘后的转化值的尺寸是t×t;
(332)在winograd算法计算过程中,U中的(N×C)与V中的(C×L)进行矩阵相乘,将t×t看作矩阵相乘中的一个数值,最终得到一个矩阵中每个点都是一个t×t二维矩阵的N×L矩阵,记作Z;
(333)计算时,t×t二维矩阵之间进行点乘计算而非矩阵乘法。
其中,步骤(34)还包含如下子步骤:
(341)步骤(332)中得到的中间过程Z,是一个N×L的矩阵,该矩阵中每个值都是一个t×t的二维矩阵;
(342)对其中每个t×t二维矩阵,将其与预设矩阵M及其转置矩阵进行矩阵乘法,O=MZMT最终得到一个转化后的N×L矩阵,该矩阵中每一行的元素组合起来就是一个输出特征图;
(343)最终得到N个输出特征图。
具体地,当卷积核的长×宽为3×3时,预设矩阵M、X、W可以如下:
具体地,当卷积核的长×宽为4×4时,预设矩阵M、X、W可以如下:
其中,BT是输入图的左乘矩阵即M,G是权重的左乘矩阵即X,AT是中间值的左乘矩阵即W。
相比于传统的基于im2col算法的卷积计算,基于winograd算法的卷积计算通过将浮点数相乘转换为浮点数相加的方式来达到加快计算的目的;在winograd算法减少浮点数相乘的转换操做过程中会将原来的过滤器级别的矩阵乘法转换为卷积核级别的矩阵点乘,不仅实现了细粒度模型压缩,而且避免了过滤器范围的非结构化带来的计算缺陷。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于winograd算法的卷积神经网络优化方法,其特征在于,包括以下步骤:
(1)确定待优化的卷积神经网络,所述待优化的卷积神经网络包括至少一个卷积层,每个卷积层包括多个过滤器,每个过滤器有多个通道,每个通道对应一个卷积核,每个卷积核对应一个输入特征图;
(2)在每个卷积层中,根据每个卷积核的绝对值之和进行排序,按比例选取绝对值之和小的卷积核进行裁剪,并更新每个卷积层的面具矩阵,所述面具矩阵的行和列分别对应过滤器和通道,面具矩阵中的元素数值用于指示对应过滤器和通道的卷积核是否被裁剪,所述卷积核的绝对值之和通过将卷积核的矩阵元素的绝对值相加得到;
(3)基于所述面具矩阵使用winograd算法确定每个过滤器对应的输出特征图。
2.根据权利要求1所述的基于winograd算法的卷积神经网络优化方法,其特征在于,待优化的卷积神经网络的卷积核是四维张量,N×C×K×K,其中N是过滤器的个数,一个C×K×K的三维张量记为一个过滤器,C是通道数,每个通道对应一个输入特征图,K×K是一个二维矩阵,记为卷积核;一个过滤器由C个卷积核对应的二维矩阵K×K组成,K表示卷积核的长和宽。
3.根据权利要求2所述的基于winograd算法的卷积神经网络优化方法,其特征在于,所述步骤(2)包括如下子步骤:
(21)在每个卷积层中,计算每个卷积核的绝对值之和;
(22)按绝对值之和对每个卷积层中所有的卷积核升序排列后放入一个集合中;
(23)在集合中选择绝对值之和最小的卷积核作为待裁剪卷积核;
(24)判断待裁剪的卷积核所处的过滤器或通道是否达到裁剪上限,如果达到裁剪上限,进入步骤(25),否则进入步骤(26);
(25)将该待裁剪卷积核移出集合,进入步骤(23);
(26)将该卷积核裁剪掉,并判断卷积核的裁减数是否达到预定值,如果未达到,进入步骤(23),如果达到,停止裁剪。
4.根据权利要求3所述的基于winograd算法的卷积神经网络优化方法,其特征在于,所述步骤(24)包含如下子步骤:
(241)裁剪卷积核时,每个过滤器裁剪的比例相同,当一个过滤器中裁剪的卷积核数目已达上限,则不能裁剪该过滤器中任何卷积核;
(242)裁剪卷积核时,每个通道裁剪的比例相同,当一个通道中裁剪的卷积核数目已达上限,则不能裁剪该通道中任何卷积核。
5.根据权利要求3所述的基于winograd算法的卷积神经网络优化方法,其特征在于,所述步骤(26)包含如下子步骤:
(261)在每个卷积层中,定义一个面具矩阵N×C,其中N表示一个过滤器,C表示一个通道,矩阵中每个点表示一个过滤器中一个通道上的卷积核,矩阵中每个点都是二值,0和1,其中0表示对应位置的卷积核已经被裁剪,1表示对应位置的卷积核没有被裁剪;
(262)卷积核被裁掉后,面具矩阵中对应位置的数值置0。
6.根据权利要求5所述的基于winograd算法的卷积神经网络优化方法,其特征在于,所述步骤(3)包含如下子步骤:
(31)将没有裁剪的卷积核与第一预设矩阵W及其转置矩阵进行矩阵乘法得到第一中间结果U,计算公式为:WwWT,其中w为没有裁剪的卷积核;
(32)将输入特征图切片后的矩阵与第二预设矩阵X及其转置矩阵进行矩阵相乘得到第二中间结果V,计算公式为:XxXT其中x为输入特征图切片后的矩阵;
(33)第一中间结果和第二中间结果进行点乘,得到第三中间结果Z;
(34)将第三中间结果Z与第三预设矩阵M及其转置矩阵进行矩阵相乘,得到一个转化后的N×L矩阵,该矩阵中每一行的元素组合起来就是一个输出特征图,最终得到N个过滤器对应的N个输出特征图。
7.根据权利要求6所述的基于winograd算法的卷积神经网络优化方法,其特征在于,所述步骤(31)包含如下子步骤:
(311)K值不同的卷积核选取不同大小的第一预设矩阵;
(312)将面具矩阵中数值为1的位置所代表的卷积核与第一预设矩阵W及其转置矩阵进行矩阵乘法后,得到第一中间结果U。
8.根据权利要求6所述的基于winograd算法的卷积神经网络优化方法,其特征在于,所述步骤(32)包含如下子步骤:
(321)输入特征图是三维张量,C×Col×Row,其中C表示通道数,即输入特征图的个数,Col×Row表示一个二维输入特征图的列和行;
(322)从每个输入特征图的左上角开始截取一个t×t的输入特征图切片,其中t×t为第二预设矩阵X的大小;
(323)以步长S向右移动到最右端;
(324)以步长S向下移动,如果到达输入特征图最下端,输入特征图切分结束,否则,重复步骤(323);
(325)每个输入特征图切片后,将每个t×t的输入特征图切片与第二预设矩阵X及其转置矩阵相乘,得到第二中间结果V。
9.根据权利要求6所述的基于winograd算法的卷积神经网络优化方法,其特征在于,所述步骤(33)包含如下子步骤:
(331)在一个卷积层中,U可表示为N×C×t×t,二维的卷积核与第一预设矩阵W及其转置矩阵相乘后的转化值的长×宽是t×t,V可表示为C×L×t×t,L表示每个二维的输入特征图的切片数目,输入特征图切片与第二预设矩阵X及其转置矩阵相乘后的转化值的长×宽是t×t;
(332)在winograd算法计算过程中,U中的N×C与V中的C×L进行矩阵相乘,将长×宽是t×t的转化值看作矩阵相乘中的一个数值,最终得到一个矩阵中每个点都是一个t×t二维矩阵的N×L矩阵,记作Z;
(333)计算时,二维的卷积核与第一预设矩阵W及其转置矩阵相乘后的转化值与输入特征图切片与第二预设矩阵X及其转置矩阵相乘后的转化值两个t×t二维矩阵之间进行点乘计算而非矩阵乘法。
10.根据权利要求6所述的基于winograd算法的卷积神经网络优化方法,其特征在于,步骤(34)包含如下子步骤:
(341)步骤(332)中得到的第三中间结果Z,是一个N×L的矩阵,该矩阵中每个值都是一个t×t的二维矩阵;
(342)对其中每个t×t二维矩阵,将其与第三预设矩阵M及其转置矩阵进行矩阵乘法,最终得到一个转化后的N×L矩阵,该矩阵中每一行的元素组合起来就是一个输出特征图;
(343)分别将步骤(342)得带的N×L矩阵的各行元素组合起来,得到N个过滤器对应的N个输出特征图。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811428718.5A CN109359726A (zh) | 2018-11-27 | 2018-11-27 | 一种基于winograd算法的卷积神经网络优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811428718.5A CN109359726A (zh) | 2018-11-27 | 2018-11-27 | 一种基于winograd算法的卷积神经网络优化方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109359726A true CN109359726A (zh) | 2019-02-19 |
Family
ID=65342991
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811428718.5A Pending CN109359726A (zh) | 2018-11-27 | 2018-11-27 | 一种基于winograd算法的卷积神经网络优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109359726A (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110097172A (zh) * | 2019-03-18 | 2019-08-06 | 中国科学院计算技术研究所 | 一种基于winograd卷积运算的卷积神经网络数据处理方法及装置 |
CN110443357A (zh) * | 2019-08-07 | 2019-11-12 | 上海燧原智能科技有限公司 | 卷积神经网络计算优化方法、装置、计算机设备及介质 |
CN111415004A (zh) * | 2020-03-17 | 2020-07-14 | 北京百度网讯科技有限公司 | 用于输出信息的方法和装置 |
CN111414993A (zh) * | 2020-03-03 | 2020-07-14 | 三星(中国)半导体有限公司 | 卷积神经网络的裁剪、卷积计算方法及装置 |
WO2020260991A1 (en) * | 2019-06-26 | 2020-12-30 | International Business Machines Corporation | Dataset dependent low rank decomposition of neural networks |
WO2021083100A1 (zh) * | 2019-11-01 | 2021-05-06 | 中科寒武纪科技股份有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
CN112990458A (zh) * | 2021-04-14 | 2021-06-18 | 北京灵汐科技有限公司 | 卷积神经网络模型的压缩方法及装置 |
WO2021139156A1 (zh) * | 2019-11-07 | 2021-07-15 | 深圳云天励飞技术股份有限公司 | 卷积计算方法及相关设备 |
CN113191377A (zh) * | 2020-01-14 | 2021-07-30 | 北京京东乾石科技有限公司 | 用于处理图像的方法和装置 |
CN116629320A (zh) * | 2023-07-21 | 2023-08-22 | 美智纵横科技有限责任公司 | 神经网络的优化方法、装置、存储介质及芯片 |
CN112734010B (zh) * | 2021-01-04 | 2024-04-16 | 暨南大学 | 一种适用于图像识别的卷积神经网络模型压缩方法 |
-
2018
- 2018-11-27 CN CN201811428718.5A patent/CN109359726A/zh active Pending
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110097172A (zh) * | 2019-03-18 | 2019-08-06 | 中国科学院计算技术研究所 | 一种基于winograd卷积运算的卷积神经网络数据处理方法及装置 |
CN113826120B (zh) * | 2019-06-26 | 2023-02-14 | 国际商业机器公司 | 神经网络的数据集相关的低秩分解 |
GB2600055A (en) * | 2019-06-26 | 2022-04-20 | Ibm | Dataset dependent low rank decomposition of neural networks |
WO2020260991A1 (en) * | 2019-06-26 | 2020-12-30 | International Business Machines Corporation | Dataset dependent low rank decomposition of neural networks |
CN113826120A (zh) * | 2019-06-26 | 2021-12-21 | 国际商业机器公司 | 神经网络的数据集相关的低秩分解 |
CN110443357A (zh) * | 2019-08-07 | 2019-11-12 | 上海燧原智能科技有限公司 | 卷积神经网络计算优化方法、装置、计算机设备及介质 |
WO2021083100A1 (zh) * | 2019-11-01 | 2021-05-06 | 中科寒武纪科技股份有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
WO2021139156A1 (zh) * | 2019-11-07 | 2021-07-15 | 深圳云天励飞技术股份有限公司 | 卷积计算方法及相关设备 |
CN113191377A (zh) * | 2020-01-14 | 2021-07-30 | 北京京东乾石科技有限公司 | 用于处理图像的方法和装置 |
CN111414993A (zh) * | 2020-03-03 | 2020-07-14 | 三星(中国)半导体有限公司 | 卷积神经网络的裁剪、卷积计算方法及装置 |
CN111414993B (zh) * | 2020-03-03 | 2024-03-01 | 三星(中国)半导体有限公司 | 卷积神经网络的裁剪、卷积计算方法及装置 |
CN111415004A (zh) * | 2020-03-17 | 2020-07-14 | 北京百度网讯科技有限公司 | 用于输出信息的方法和装置 |
CN111415004B (zh) * | 2020-03-17 | 2023-11-03 | 阿波罗智联(北京)科技有限公司 | 用于输出信息的方法和装置 |
CN112734010B (zh) * | 2021-01-04 | 2024-04-16 | 暨南大学 | 一种适用于图像识别的卷积神经网络模型压缩方法 |
CN112990458A (zh) * | 2021-04-14 | 2021-06-18 | 北京灵汐科技有限公司 | 卷积神经网络模型的压缩方法及装置 |
CN112990458B (zh) * | 2021-04-14 | 2024-06-04 | 北京灵汐科技有限公司 | 卷积神经网络模型的压缩方法及装置 |
CN116629320A (zh) * | 2023-07-21 | 2023-08-22 | 美智纵横科技有限责任公司 | 神经网络的优化方法、装置、存储介质及芯片 |
CN116629320B (zh) * | 2023-07-21 | 2023-11-28 | 美智纵横科技有限责任公司 | 神经网络的优化方法、装置、存储介质及芯片 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109359726A (zh) | 一种基于winograd算法的卷积神经网络优化方法 | |
US10832136B2 (en) | Passive pruning of filters in a convolutional neural network | |
CN107622302B (zh) | 用于卷积神经网络的超像素方法 | |
US11645529B2 (en) | Sparsifying neural network models | |
CN109886397A (zh) | 一种针对卷积层的神经网络结构化剪枝压缩优化方法 | |
CN107203891A (zh) | 一种自动多阀值特征过滤方法及装置 | |
CN106780512A (zh) | 分割图像的方法、应用及计算设备 | |
CN110197217B (zh) | 一种基于深度交错融合分组卷积网络的图像分类方法 | |
CN110188863B (zh) | 一种适用于资源受限设备的卷积神经网络的卷积核压缩方法 | |
CN108205703B (zh) | 多输入多输出矩阵平均值池化向量化实现方法 | |
CN108564084A (zh) | 文字检测方法、装置、终端及存储介质 | |
CN110298446A (zh) | 面向嵌入式系统的深度神经网络压缩和加速方法及系统 | |
CN111062432B (zh) | 一种语义上多模态图像生成的方法 | |
CN108875915B (zh) | 一种面向嵌入式应用的深度对抗网络优化方法 | |
CN109472352A (zh) | 一种基于特征图统计特征的深度神经网络模型裁剪方法 | |
CN112633490A (zh) | 执行神经网络模型的数据处理装置、方法及相关产品 | |
CN109543899A (zh) | 基于深度学习的二维轮廓排样定序方法 | |
KR20230050340A (ko) | 테이블 형식의 컨볼루션 및 가속 | |
CN110222816B (zh) | 深度学习模型的建立方法、图像处理方法及装置 | |
CN108320019A (zh) | 用于深度卷积神经网络的卷积计算方法及装置 | |
CN112257852B (zh) | 用于点云分类分割的方法 | |
CN116797910A (zh) | 一种基于分组快速空间金字塔池化的轻量化yolo模型方法 | |
CN110457155A (zh) | 一种样本类别标签的修正方法、装置及电子设备 | |
US20220351036A1 (en) | Methods and systems for generating the gradients of a loss function with respect to the weights of a convolution layer | |
CN114819127A (zh) | 一种基于fpga的背压索引式组合计算单元 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190219 |