CN112541565B - 一种卷积计算数据流映射方法及装置 - Google Patents
一种卷积计算数据流映射方法及装置 Download PDFInfo
- Publication number
- CN112541565B CN112541565B CN201910894373.0A CN201910894373A CN112541565B CN 112541565 B CN112541565 B CN 112541565B CN 201910894373 A CN201910894373 A CN 201910894373A CN 112541565 B CN112541565 B CN 112541565B
- Authority
- CN
- China
- Prior art keywords
- convolution
- groups
- convolution kernel
- data
- matrix
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种卷积计算数据流映射方法及装置。其中,该方法包括:在卷积神经网络模型中执行目标卷积操作的过程中,按照通道分别对所述目标卷积操作所涉及的特征图中的接收域和涉及的卷积核进行分组,得到多个接收域分组和多个卷积核分组,对所述多个接收域分组中的基本块进行排序,得到接收域数据组,并对所述多个卷积核分组中的基本块进行排序,得到卷积核数据组,将所述接收域数据组和所述卷积核数据组输入到用于矩阵乘法的二维阵列中,得到所述二维阵列输出的矩阵的值。本发明解决了相关技术中卷积神经网络中卷积操作效率低的技术问题。
Description
技术领域
本发明涉及计算机领域,具体而言,涉及一种卷积计算数据流映射方法及装置。
背景技术
相关技术中,在卷积神经网络进行卷积操作时,每一次卷及操作都需要从内存中读取数据,然后根据读取的数据进行卷积操作。
然而,若是采用上述方法,由于读取数据中包含有大量的数据,造成卷积操作时,存在大量的读取重复数据的步骤,造成卷积过程的效率低。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种卷积计算数据流映射方法及装置,以至少解决相关技术中卷积神经网络中卷积操作效率低的技术问题。
根据本发明实施例的一个方面,提供了一种卷积计算数据流映射方法,包括:在卷积神经网络模型中执行目标卷积操作的过程中,按照通道分别对上述目标卷积操作所涉及的特征图中的接收域和涉及的卷积核进行分组,得到多个接收域分组和多个卷积核分组,其中,每个上述接收域分组内相同行列位置的不同通道组成一个基本块,每个上述卷积核分组内相同行列位置的不同通道组成一个基本块;对上述多个接收域分组中的基本块进行排序,得到接收域数据组,并对上述多个卷积核分组中的基本块进行排序,得到卷积核数据组,其中,在对上述多个接收域分组中的基本块进行排序的过程中,对相同的第一基本块进行复用;将上述接收域数据组和上述卷积核数据组输入到用于矩阵乘法的二维阵列中,得到上述二维阵列输出的矩阵的值,其中,上述目标卷积操作的结果包括上述矩阵的值。
根据本发明实施例的另一方面,还提供了一种卷积计算数据流映射装置,包括:分组单元,用于在卷积神经网络模型中执行目标卷积操作的过程中,按照通道分别对上述目标卷积操作所涉及的特征图中的接收域和涉及的卷积核进行分组,得到多个接收域分组和多个卷积核分组,其中,每个上述接收域分组内相同行列位置的不同通道组成一个基本块,每个上述卷积核分组内相同行列位置的不同通道组成一个基本块;排序单元,用于对上述多个接收域分组中的基本块进行排序,得到接收域数据组,并对上述多个卷积核分组中的基本块进行排序,得到卷积核数据组,其中,在对上述多个接收域分组中的基本块进行排序的过程中,对相同的第一基本块进行复用;输入单元,用于将上述接收域数据组和上述卷积核数据组输入到用于矩阵乘法的二维阵列中,得到上述二维阵列输出的矩阵的值,其中,上述目标卷积操作的结果包括上述矩阵的值。
根据本发明实施例的又一方面,还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述卷积计算数据流映射方法。
根据本发明实施例的又一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,上述处理器通过计算机程序执行上述的卷积计算数据流映射方法。
在本发明实施例中,采用在卷积神经网络模型中执行目标卷积操作的过程中,按照通道分别对上述目标卷积操作所涉及的特征图中的接收域和涉及的卷积核进行分组,得到多个接收域分组和多个卷积核分组,其中,每个上述接收域分组内相同行列位置的不同通道组成一个基本块,每个上述卷积核分组内相同行列位置的不同通道组成一个基本块;对上述多个接收域分组中的基本块进行排序,得到接收域数据组,并对上述多个卷积核分组中的基本块进行排序,得到卷积核数据组,其中,在对上述多个接收域分组中的基本块进行排序的过程中,对相同的第一基本块进行复用;将上述接收域数据组和上述卷积核数据组输入到用于矩阵乘法的二维阵列中,得到上述二维阵列输出的矩阵的值,其中,上述目标卷积操作的结果包括上述矩阵的值的方法。在上述方法中,在卷积神经网络进行卷积操作的过程中,在对每个接收域的多个接收域分组进行排序的过程中,可以直接对第一基本块进行复用,而不需要在从内存中读取第一基本块的数据,从而提高了卷积的效率,进而解决了相关技术中卷积神经网络中卷积操作效率低的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的卷积计算数据流映射方法的应用环境的示意图;
图2是根据本发明实施例的一种可选的卷积计算数据流映射方法的流程示意图;
图3是根据本发明实施例的一种可选的卷积计算数据流映射方法的示意图;
图4是根据本发明实施例的另一种可选的卷积计算数据流映射方法的示意图;
图5是根据本发明实施例的又一种可选的卷积计算数据流映射方法的示意图;
图6是根据本发明实施例的又一种可选的卷积计算数据流映射方法的示意图;
图7是根据本发明实施例的又一种可选的卷积计算数据流映射方法的示意图;
图8是根据本发明实施例的又一种可选的卷积计算数据流映射方法的示意图;
图9是根据本发明实施例的又一种可选的卷积计算数据流映射方法的示意图;
图10是根据本发明实施例的一种可选的卷积计算数据流映射装置的结构示意图;
图11是根据本发明实施例的一种可选的电子装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明实施例的一个方面,提供了一种卷积计算数据流映射方法,可选地,作为一种可选的实施方式,上述卷积计算数据流映射方法可以但不限于应用于如图1所示的环境中。
图1中用户102与用户设备104之间可以进行人机交互。用户设备104中包含有存储器106,用于存储交互数据、处理器108,用于处理交互数据。用户设备104可以通过网络110与服务器112之间进行数据交互。服务器112中包含有数据库114,用于存储交互数据、处理引擎116,用于处理交互数据。本方案中的卷积神经网络模型可以存在于服务器112中,或者存在于用户设备104中。本方案中的卷积神经网络模型在执行目标卷积操作的过程中,可以对目标卷积操作所涉及的特征图中的接收域和涉及的卷积核进行分组,得到每个接收域的多个接收域分组和多个卷积核分组,对多个接收域分组中的基本块进行排序,得到每个接收域的接收域数据组,并对多个卷积核分组中的基本块进行排序,得到每个卷积核的卷积核数据组,其中,在对多个接收域分组中的基本块进行排序的过程中,对相同的第一基本块进行复用。第一基本块可以为多个接收域数据组中的任意一个或多个基本块,该基本块中的数据已经从内存中读取过。在再次使用时,可以直接使用,而不需要再从内存中读取。将接收域数据组和卷积核数据组输入到用于矩阵乘法的二维阵列中,得到二维阵列输出的矩阵的值。从而完成目标卷积操作。
需要说明的是,相关技术中,在进行卷积操作的过程中,通常是将卷积操作过程中所需要使用的数据从内存中读取出来,每一次卷积操作都需要读取一次数据。然而,在卷积操作所读取的数据中,包含相当一部分的数据是重复的数据。若是采用上述方法,则造成大量重复数据的重复读取,降低了卷积操作过程的效率。
而本方案中在进行目标卷积操作时,按照通道分别对目标卷积操作所涉及的接收域和卷积核进行分组,得到多个接收域分组和多个卷积核分组,并对多个接收域分组中的基本块进行排序,在此过程中,复用第一基本块,第一基本块为已经从内存中读取过的基本块,从而实现卷积过程中对基本块数据的重复使用,实现了提高卷积过程的效率的效果。
可选地,上述用户设备104可以但不限于为手机、平板电脑、笔记本电脑、PC机等终端,上述网络110可以包括但不限于无线网络或有线网络。其中,该无线网络包括: WIFI及其他实现无线通信的网络。上述有线网络可以包括但不限于:广域网、城域网、局域网。上述服务器112可以包括但不限于任何可以进行计算的硬件设备。
可选地,作为一种可选的实施方式,如图2所示,上述卷积计算数据流映射方法包括:
S202,在卷积神经网络模型中执行目标卷积操作的过程中,按照通道分别对目标卷积操作所涉及的特征图中的接收域和涉及的卷积核进行分组,得到多个接收域分组和多个卷积核分组,其中,每个接收域分组内相同行列位置的不同通道组成一个基本块,每个卷积核分组内相同行列位置的不同通道组成一个基本块;
S204,对多个接收域分组中的基本块进行排序,得到接收域数据组,并对多个卷积核分组中的基本块进行排序,得到卷积核数据组,其中,在对多个接收域分组中的基本块进行排序的过程中,对相同的第一基本块进行复用;
S206,将接收域数据组和卷积核数据组输入到用于矩阵乘法的二维阵列中,得到二维阵列输出的矩阵的值,其中,目标卷积操作的结果包括矩阵的值。
可选地,上述卷积计算数据流映射方法可以但不限于应用于使用卷积神经网络模型的过程中。例如,在使用卷积神经网络模型的过程中,在卷积神经网络模型中执行目标卷积操作的过程中,按照通道分别对目标卷积操作所涉及的特征图中的接收域和涉及到的卷积核进行分组,得到多个接收域分组和多个卷积核分组,然后对得到的多个接收域分组中的基本块进行排序,排序过程中,对多个接收域分组中的相同的基本块进行复用,将排序得到的接收域数据组和卷积核数据组输入到用于矩阵乘法的二维阵列中,得到二维阵列输出的矩阵的值。在上述过程中,通过对基本块数据进行复用,从而提高卷积操作过程的效率。
可选地,本方案中在对每一个基本块进行复用之前,可以对基本块进行压缩,然后在传输的过程中,传输压缩后的基本块。复用时,解压基本块,然后复用。采用该方法可以节省存储空间与传输基本块时的传输带宽。
可选地,本方案中可以将一个卷积核所要卷积的特征图中的区域称为一个接收域。例如,如图3所示,图3中包括一个7*7*7的特征图与一个7*3*3的卷积核。卷积核对特征图进行卷积时,需要执行多次卷积操作。多次卷积操作中每一次卷积操作的区域称为接收域。例如,第一次卷积操作时,所要卷积的是卷积图中的302所示的区域。302即为目标卷积操作所涉及的接收域。本方案中卷积核可以有多个。一个特征图中可以包括多个接收域。每一个卷积核每次卷积一个接收域。
可选地,在确定出接收域与卷积核后可以按照通道数对接收域与卷积核进行分组。分组的数量可以根据实际情况确定。例如,在分组时,将每4个通道分为一组,则一个8*3*3的接收域可以被分成两组,每一组尺寸为4*3*3。可选地,本方案中在对接收域与卷积核进行分组时,需要按照相同的分组策略进行分组。例如,接收域通道数为8时,按照通道数分成两组,每组4个通道,则卷积核通道数为8时,也需要按照通道数分成两组,每一组通道数为4。
例如,如图4所示,图4为对接收域与卷积核进行分组的示意图。以接收域尺寸为8*3*3,卷积核尺寸为8*3*3,将接收域与卷积核分成两组为例,则接收域分为2*4*3*3两组,每组尺寸4*3*3,卷积核分为2*4*3*3两组,每组尺寸4*3*3。
可选地,在对接收域与卷积核进行分组时,若是接收域与卷积核中的通道数无法平均分成多组,例如接收域尺寸为7*3*3,通道数为7,无法平均分成多组,此时,需要对接收域进行补零,即补充零数据,将通道数补充到8,再将8个通道分成两组,从而实现对接收域与卷积核的分组。如图5所示,以7*3*3的接收域为例,接收域的通道数为7,无法分成两组,此时,需要将接收域补充一个通道,通道中数据为零,得到8个通道的接收域,再将接收域分成两组,得到多个接收域分组。
可选地,本方案中在对接收域与卷积核进行分组,得到多个接收域分组与卷积核分组之后,还需要对多个接收域分组中的基本块与卷积核分组中的基本块进行排序。在排序时,对多个接收域分组与卷积核分组中的基本块按照相同的排序规则进行排序。例如,先行后组后列排序,或者先列后行后组排序,或者先组后后行后列排序等等。以先列后组后行为例,如图6所示,对多个接收域分组中的基本块进行排序。多个接收域分组中的基本块均携带有标号(图6中标识出了标号1、2、3、4、5、6、8、10、11、12、a、b、c、e)。
可选地,本方案中的基本块中保存有数据。在分组时,每组通道数即为基本块中保存的数据的数量。在对基本块进行排序的过程中,基本块中的数据可以排序也可以不排序。例如,将基本块分成两组,每组4个通道的情况下,图6中的每个基本块中包括4个数据。(图6中未示出)。
可选地,本方案中在对基本块进行排序时,对相同的基本块进行复用,而不再需要从内存中读取基本块的数据。
可选地,本方案中在对多个接收域分组中的基本块进行排序,得到接收域数据组后,并对多个卷积核分组进行排序得到卷积核数据组后,将I个接收域的I个接收域数据组与J个卷积核的J个卷积核数据组分别作为第一矩阵与第二矩阵输入到二维阵列中做乘法,得到卷积结果。例如,如图7所示,将一个特征图中的多个接收域中每一个接收域的接收域数据组作为第一矩阵中的一行,多个接收域数据组构成第一矩阵。将每一个卷积核的卷积核数据组作为第二矩阵中的一行,多个卷积核的多个卷积核数据组构成第二矩阵。以4个接收域的数据为一组,4个卷积核的数据为一组为例,如图8所示,图8中将第一矩阵中的每4个接收域数据组分成一组,将第二矩阵中的每4个卷积核数据组分成一组,在做矩阵乘法时,第一阵列第0组与第二阵列第0组做乘法,相应地,第一阵列第0组与第二阵列第1组做乘法,保证第一矩阵中的每一组与第二矩阵中的每一组均做乘法之后,得到矩阵结果。如第一矩阵有8个接收域的数据,每四个接收域数据分为一组,共分成两组,第二矩阵有8个卷积核数据组,每四个卷积核数据组为一组,分成两组,则第一矩阵与第二矩阵做乘法时,需要做四次乘法。每次乘法为第一矩阵的一组接收域数据组(包含四个接收域数据组)与第二矩阵的一组卷积核数据组(包含四个卷积核数据组)做乘法。以第一矩阵的第0组与第二矩阵的第0组做乘法为例,如图9所示,图9中左侧显示有第一阵列的第0组与第二阵列的第0组数据做乘法,图9中右侧显示有第一阵列第0组与第二矩阵第0组做乘法的结果。
可选地,由于每一个基本块中包含了多个数据,因此,在组成第一矩阵与第二矩阵的过程中,可以将基本块中的数据按照特定方法进行排序,如按顺序排序。基本块间的先后顺序不变。如对9个基本块进行排序,每个基本块中包括4个数据,可以得到一个36为长度的数据。本方案中可以将该数据组成第一矩阵与第二矩阵。例如,一个 4*18的矩阵。以每个基本块中包含4个数据为例,在对基本块中的数据进行排序之后,可以得到4*72的矩阵。
通过本实施例,通过上述方法,从而在卷积神经网络模型进行卷积操作的过程中,在对每个接收域的多个接收域分组进行排序的过程中,可以直接对第一基本块进行复用,而不需要在从内存中读取器第一基本块的数据,提高了卷积的效率。
以下结合一个示例进行说明。例如,特征图与卷积核尺寸分别为7×7×7、7×3×3。设分组时每组通道数为4(由于卷积核和特征图的通道数不为4的整数倍,需要对通道进行补零来对齐),则分组后,特征图尺寸变为2×4×7×7,卷积核尺寸变为2×4×3×3。每组通道数不仅限于与4。对卷积核和特征图,组内相同行列位置的不同通道组成基本块。每个卷积核和从特征图中得到的接收域包含2个组(接收域为每一次卷积操作时的待卷积部分),每个组包含9个基本块,如图6中的接收域。对基本块按行、组、列顺序排序,得到图6下侧的接收域数据组。不同接收域存在重叠的部分,所以具有相同的基本块,通过重用这些基本块可以避免重复读取数据,降低访存次数。图9是一个可选的用于矩阵乘法的二维脉动阵列结构,大小为4×4,卷积核按4个为一组进行分组,被作为脉动阵列的列输入矩阵。接收域按4个为一组进行分组,被作为脉动阵列的行输入矩阵。图9左侧和上侧展示了第0组卷积核和接收域输入脉动阵列的过程,图9右侧为第0组接收域与第0组卷积核做矩阵乘法的输出结果。
作为一种可选的实施方案,对相同的第一基本块进行复用,包括:
S1,在对多个接收域分组中的基本块进行排序的过程中,在第一次需要使用第一基本块的情况下,从第一存储空间中读取第一基本块,在第一次之后需要使用第一基本块的情况下,复用在第一次读取到的第一基本块。
可选地,本方案中的第一存储空间可以为内存,或者为其他接收域数据所存储的位置。在卷积的过程中,在卷积所使用的基本块是首次被使用的情况下,需要从第一存储空间中读取数据。而当该基本块在下次被使用的情况下,如在第二卷积的过程中被使用了,则该基本块的数据可以直接被复用,而不需要在第一存储空间中重复读取。可选地,本方案中的复用可以为从基本块首次被使用的卷积过程中获取被使用的基本块,将获取到的基本块应用到该基本块再次被卷积的过程中。
通过本实施例,通过上述方法对基本块进行复用,从而实现了避免重复读取数据的过程,提高了卷积过程的效率。
作为一种可选的实施方案,对多个接收域分组中的基本块进行排序,得到多个接收域数据组,并对多个卷积核分组中的基本块进行排序,得到卷积核数据组包括:
S1,对多个接收域分组中的每个接收域分组中的基本块按照先列后组后行的顺序进行排序,得到接收域数据组,并对多个卷积核分组中每个卷积核分组中的基本块按照先列后组后行的顺序进行排序,得到卷积核数据组。
可选地,本方案中在对基本块进行排序的过程中,排序手段并不限制。可选地,接收域中基本块的排序方法与卷积核中基本块的排序方法一致。
可选地,本方案中在对基本块进行排序的过程中,还可以对基本块中的数据进行排序。例如,每个基本块中包括4个数据,可以随机排序或者按照某一顺序进行排序。如从大到小,或者从小到大等等。在排序过程中,保持两个基本块间的先后顺序不变。即,排在前边的基本块,其中的四个数据中的每一个要比排在后边的基本块,其中的四个数据中的每一个都靠前。
通过本实施例,通过上述方法对基本块进行排序,并在排序的过程中对重复的基本块进行复用,从而实现了提高卷积过程的效率的效果。
作为一种可选的实施方案,接收域的尺寸为C*K1*K2卷积核的尺寸为C*K1*K2,其中,C、K1与K2为正整数,在卷积神经网络模型中执行目标卷积操作的过程中,按照通道分别对目标卷积操作所涉及的特征图中的接收域和涉及的卷积核进行分组,得到多个接收域分组和多个卷积核分组包括:
S1,将接收域分为M组,每组尺寸为C/M*K1*K2;
S2,将卷积核分为M组,每组尺寸为C/M*K1*K2,其中,M为正整数,M小于C。
可选地,本方案中在对接收域或者卷积核进行分组时,分成的组数可以根据实际情况限定。例如,根据经验值,设定将接收域与卷积核分成多组等。
通过本实施例,通过上述方法将卷积核与接收域分组,从而在卷积的过程中,可以对分组后的基本块进行排序并卷积,在提高卷积效率的同时,还提高卷积过程的准确性。
作为一种可选的实施方案,
将接收域分为M组包括:S1,在C/M不为整数的情况下,在接收域中补充X个通道,每个通道中数据为零,将补充数据后的接收域中分为M组,其中,每个基本块中的数据更新为(C+X)/M个,(C+X)/M为整数,X大于零且小于M;
将卷积核分为M组包括:S1,在C/M不为整数的情况下,在接收域中补充M个通道,每个通道中数据为零,将补充数据后的接收域中分为M组,其中,每个基本块中的数据更新为(C+X)/M个,(C+X)/M为整数。
可选地,本方案中在填补数据时,填补的数据为零。即,通过填充零数据的方法补充通道数。在通道数为7等无法平均分成例如两组等的情况时,需要对通道数进行补零,补充通道数为8,然后再平均分成两组。若是需要将通道数为7的卷积核或接收域分成3组,则可以补充通道数为9,再均分为3组。具体补充的通道数不能超过重新分组后,每组中的数据的数量小于所分得组数。
通过本实施例,通过上述方法为接收域或卷积核补充通道数,从而实现了在分组时,可以灵活分组的效果,提高了卷积过程的效率。
作为一种可选的实施方案,将接收域数据组和卷积核数据组输入到用于矩阵乘法的二维阵列中,得到二维阵列输出的矩阵的值包括:
将I个接收域的I个接收域数据组和J个卷积核的J个卷积核数据组分别作为第一矩阵与第二矩阵,输入到用于矩阵乘法的二维阵列中,得到二维阵列输出的矩阵的值,其中,矩阵的值与使用J个卷积核对I个接收域进行卷积的结果相同,I为正整数,J为正整数。
可选地,当第一矩阵或第二矩阵大于用于矩阵乘法的二维阵列时,可以按照二维阵列的尺寸对矩阵进行分组,再进行计算。例如二维阵列尺寸为4x4,则以4个连续的接收域为一组,得到第一矩阵,以4个卷积核为一组,得到第二矩阵。
通过本实施例,通过上述方法执行卷积操作,得到卷积结果,从而提高了卷积过程的效率。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
根据本发明实施例的另一个方面,还提供了一种用于实施上述卷积计算数据流映射方法的卷积计算数据流映射装置。如图10所示,该装置包括:
(1)分组单元1002,用于在卷积神经网络模型中执行目标卷积操作的过程中,按照通道分别对目标卷积操作所涉及的特征图中的接收域和涉及的卷积核进行分组,得到多个接收域分组和多个卷积核分组,其中,每个接收域分组内相同行列位置的不同通道组成一个基本块,每个卷积核分组内相同行列位置的不同通道组成一个基本块;
(2)排序单元1004,用于对多个接收域分组中的基本块进行排序,得到接收域数据组,并对多个卷积核分组中的基本块进行排序,得到卷积核数据组,其中,在对多个接收域分组中的基本块进行排序的过程中,对相同的第一基本块进行复用;
(3)输入单元1006,用于将接收域数据组和卷积核数据组输入到用于矩阵乘法的二维阵列中,得到二维阵列输出的矩阵的值,其中,目标卷积操作的结果包括矩阵的值。
可选地,上述卷积计算数据流映射方法可以但不限于应用于使用卷积神经网络模型的过程中。例如,在使用卷积神经网络模型的过程中,在卷积神经网络模型中执行目标卷积操作的过程中,按照通道分别对目标卷积操作所涉及的特征图中的接收域和涉及到的卷积核进行分组,得到多个接收域分组和多个卷积核分组,然后对得到的多个接收域分组中的基本块进行排序,排序过程中,对多个接收域分组中的相同的基本块进行复用,将排序得到的接收域数据组和卷积核数据组输入到用于矩阵乘法的二维阵列中,得到二维阵列输出的矩阵的值。在上述过程中,通过对基本块数据进行复用,从而提高卷积操作过程的效率。
可选地,本方案中可以将一个卷积核所要卷积的特征图中的区域称为一个接收域。例如,如图3所示,图3中包括一个7*7*7的特征图与一个7*3*3的卷积核。卷积核对特征图进行卷积时,需要执行多次卷积操作。多次卷积操作中每一次卷积操作的区域称为接收域。例如,第一次卷积操作时,所要卷积的是卷积图中的302所示的区域。302即为目标卷积操作所涉及的接收域。本方案中卷积核可以有多个。一个特征图中可以包括多个接收域。每一个卷积核每次卷积一个接收域。
可选地,在确定出接收域与卷积核后可以按照通道数对接收域与卷积核进行分组。分组的数量可以根据实际情况确定。例如,在分组时,将每4个通道分为一组,则一个8*3*3的接收域可以被分成两组,每一组尺寸为4*3*3。可选地,本方案中在对接收域与卷积核进行分组时,需要按照相同的分组策略进行分组。例如,接收域通道数为8时,按照通道数分成两组,每组4个通道,则卷积核通道数为8时,也需要按照通道数分成两组,每一组通道数为4。
例如,如图4所示,图4为对接收域与卷积核进行分组的示意图。以接收域尺寸为8*3*3,卷积核尺寸为8*3*3,将接收域与卷积核分成两组为例,则接收域分为2*4*3*3两组,每组尺寸4*3*3,卷积核分为2*4*3*3两组,每组尺寸4*3*3。
可选地,在对接收域与卷积核进行分组时,若是接收域与卷积核中的通道数无法平均分成多组,例如接收域尺寸为7*3*3,通道数为7,无法平均分成多组,此时,需要对接收域进行补零,即补充零数据,将通道数补充到8,再将8个通道分成两组,从而实现对接收域与卷积核的分组。如图5所示,以7*3*3的接收域为例,接收域的通道数为7,无法分成两组,此时,需要将接收域补充一个通道,通道中数据为零,得到8个通道的接收域,再将接收域分成两组,得到多个接收域分组。
可选地,本方案中在对接收域与卷积核进行分组,得到多个接收域分组与卷积核分组之后,还需要对多个接收域分组中的基本块与卷积核分组中的基本块进行排序。在排序时,对多个接收域分组与卷积核分组中的基本块按照相同的排序规则进行排序。例如,先行后组后列排序,或者先列后行后组排序,或者先组后后行后列排序等等。以先列后组后行为例,如图6所示,对多个接收域分组中的基本块进行排序。多个接收域分组中的基本块均携带有标号。
可选地,本方案中的基本块中保存有数据。在分组时,每组通道数即为基本块中保存的数据的数量。在对基本块进行排序的过程中,基本块中的数据可以排序也可以不排序。例如,将基本块分成两组,每组4个通道的情况下,图6中的每个基本块中包括4个数据。(图6中未示出)。
可选地,本方案中在对基本块进行排序时,对相同的基本块进行复用,而不再需要从内存中读取基本块的数据。
可选地,本方案中在对多个接收域分组中的基本块进行排序,得到接收域数据组后,并对多个卷积核分组进行排序得到卷积核数据组后,将I个接收域的I个接收域数据组与J个卷积核的J个卷积核数据组分别作为第一矩阵与第二矩阵输入到二维阵列中做乘法,得到卷积结果。例如,如图7所示,将一个特征图中的多个接收域中每一个接收域的接收域数据组作为第一矩阵中的一行,多个接收域数据组构成第一矩阵。将每一个卷积核的卷积核数据组作为第二矩阵中的一行,多个卷积核的多个卷积核数据组构成第二矩阵。以4个接收域的数据为一组,4个卷积核的数据为一组为例,如图8所示,图8中将第一矩阵中的每4个接收域数据组分成一组,将第二矩阵中的每4个卷积核数据组分成一组,在做矩阵乘法时,第一阵列第0组与第二阵列第0组做乘法,相应地,第一阵列第0组与第二阵列第1组做乘法,保证第一矩阵中的每一组与第二矩阵中的每一组均做乘法之后,得到矩阵结果。如第一矩阵有8个接收域的数据,每四个接收域数据分为一组,共分成两组,第二矩阵有8个卷积核数据组,每四个卷积核数据组为一组,分成两组,则第一矩阵与第二矩阵做乘法时,需要做四次乘法。每次乘法为第一矩阵的一组接收域数据组(包含四个接收域数据组)与第二矩阵的一组卷积核数据组(包含四个卷积核数据组)做乘法。以第一矩阵的第0组与第二矩阵的第0组做乘法为例,如图9所示,图9中左侧显示有第一阵列的第0组与第二阵列的第0组数据做乘法,图9中右侧显示有第一阵列第0组与第二矩阵第0组做乘法的结果。
可选地,由于每一个基本块中包含了多个数据,因此,在组成第一矩阵与第二矩阵的过程中,可以将基本块中的数据按照特定方法进行排序,如按顺序排序。基本块间的先后顺序不变。如对9个基本块进行排序,每个基本块中包括4个数据,可以得到一个36为长度的数据。本方案中可以将该数据组成第一矩阵与第二矩阵。例如,一个 4*18的矩阵。以每个基本块中包含4个数据为例,在对基本块中的数据进行排序之后,可以得到4*72的矩阵。
通过本实施例,通过上述方法,从而在卷积神经网络模型进行卷积操作的过程中,在对每个接收域的多个接收域分组进行排序的过程中,可以直接对第一基本块进行复用,而不需要在从内存中读取器第一基本块的数据,提高了卷积的效率。
以下结合一个示例进行说明。例如,特征图与卷积核尺寸分别为7×7×7、7×3×3。设分组时每组通道数为4(由于卷积核和特征图的通道数不为4的整数倍,需要对通道进行补零来对齐),则分组后,特征图尺寸变为2×4×7×7,卷积核尺寸变为2×4×3×3。每组通道数不仅限于与4。对卷积核和特征图,组内相同行列位置的不同通道组成基本块。每个卷积核和从特征图中得到的接收域包含2个组(接收域为每一次卷积操作时的待卷积部分),每个组包含9个基本块,如图6中的接收域。对基本块按行、组、列顺序排序,得到图6下侧的接收域数据组。不同接收域存在重叠的部分,所以具有相同的基本块,通过重用这些基本块可以避免重复读取数据,降低访存次数。图9是一个可选的用于矩阵乘法的二维脉动阵列结构,大小为4×4,卷积核按4个为一组进行分组,被作为脉动阵列的列输入矩阵。接收域按4个为一组进行分组,被作为脉动阵列的行输入矩阵。图9左侧和上侧展示了第0组卷积核和接收域输入脉动阵列的过程,图9右侧为多组做矩阵乘法的输出结果。
作为一种可选的实施方案,上述排序单元包括:
(1)复用模块,复用模块,用于在对多个接收域分组中的基本块进行排序的过程中,在第一次需要使用第一基本块的情况下,从第一存储空间中读取第一基本块,在第一次之后需要使用第一基本块的情况下,复用在第一次读取到的第一基本块。
可选地,本方案中的第一存储空间可以为内存,或者为其他接收域数据所存储的位置。在卷积的过程中,在卷积所使用的基本块是首次被使用的情况下,需要从第一存储空间中读取数据。而当该基本块在下次被使用的情况下,如在第二卷积的过程中被使用了,则该基本块的数据可以直接被复用,而不需要在第一存储空间中重复读取。可选地,本方案中的复用可以为从基本块首次被使用的卷积过程中获取被使用的基本块,将获取到的基本块应用到该基本块再次被卷积的过程中。
通过本实施例,通过上述方法对基本块进行复用,从而实现了避免重复读取数据的过程,提高了卷积过程的效率。
作为一种可选的实施方案,上述排序单元包括:
(1)排序模块,排序模块,用于对多个接收域分组中的每个接收域分组中的基本块按照先列后组后行的顺序进行排序,得到接收域数据组,并对多个卷积核分组中每个卷积核分组中的基本块按照先列后组后行的顺序进行排序,得到卷积核数据组。
可选地,本方案中在对基本块进行排序的过程中,排序手段并不限制。可选地,接收域中基本块的排序方法与卷积核中基本块的排序方法一致。
可选地,本方案中在对基本块进行排序的过程中,还可以对基本块中的数据进行排序。例如,每个基本块中包括4个数据,可以随机排序或者按照某一顺序进行排序。如从大到小,或者从小到大等等。在排序过程中,保持两个基本块间的先后顺序不变。即,排在前边的基本块,其中的四个数据中的每一个要比排在后边的基本块,其中的四个数据中的每一个都靠前。
通过本实施例,通过上述方法对基本块进行排序,并在排序的过程中对重复的基本块进行复用,从而实现了提高卷积过程的效率的效果。
作为一种可选的实施方案,接收域的尺寸为C*K1*K2卷积核的尺寸为C*K1*K2,其中,C、K1与K2为正整数,分组中单元包括:
(1)第一分组模块,用于将接收域分为M组,每组尺寸为C/M*K1*K2;
(2)第二分组模块,用于将卷积核分为M组,每组尺寸为C/M*K1*K2,其中,M为正整数,M小于C。
可选地,本方案中在对接收域或者卷积核进行分组时,分成的组数可以根据实际情况限定。例如,根据经验值,设定将接收域与卷积核分成多组等。
通过本实施例,通过上述方法将卷积核与接收域分组,从而在卷积的过程中,可以对分组后的基本块进行排序并卷积,在提高卷积效率的同时,还提高卷积过程的准确性。
作为一种可选的实施方案,
第一分组模块包括:(1)第一处理子模块,用于在C/M不为整数的情况下,在接收域中补充X个通道,每个通道中数据为零,将补充数据后的接收域中分为M组,其中,每个基本块中的数据更新为(C+X)/M个,(C+X)/M为整数,X大于零且小于M;
第二分组模块包括:(1)第二处理子模块,用于在C/M不为整数的情况下,在卷积核中补充X个通道,每个通道中数据为零,将补充数据后的卷积核中分为M组,其中,每个基本块中的数据更新为(C+X)/M个,(C+X)/M为整数。
可选地,本方案中在填补数据时,填补的数据为零。即,通过填充零数据的方法补充通道数。在通道数为7等无法平均分成例如两组等的情况时,需要对通道数进行补零,补充通道数为8,然后再平均分成两组。若是需要将通道数为7的卷积核或接收域分成3组,则可以补充通道数为9,再均分为3组。具体补充的通道数不能超过重新分组后,每组中的数据的数量小于所分得组数。
通过本实施例,通过上述方法为接收域或卷积核补充通道数,从而实现了在分组时,可以灵活分组的效果,提高了卷积过程的效率。
作为一种可选的实施方案,输入单元包括:
(1)输入模块,用于将I个接收域的I个接收域数据组和J个卷积核的J个卷积核数据组分别作为第一矩阵与第二矩阵,输入到用于矩阵乘法的二维阵列中,得到二维阵列输出的矩阵的值,其中,矩阵的值与使用J个卷积核对I个接收域进行卷积的结果相同,I与J为正整数。
可选地,当第一矩阵或第二矩阵大于用于矩阵乘法的二维阵列时,可以按照二维阵列的尺寸对矩阵进行分组,再进行计算。例如二维阵列尺寸为4x4,则以4个连续的接收域为一组,得到第一矩阵,以4个卷积核为一组,得到第二矩阵。
通过本实施例,通过上述方法执行卷积操作,得到卷积结果,从而提高了卷积过程的效率。
根据本发明实施例的又一个方面,还提供了一种用于实施上述卷积计算数据流映射方法的电子装置,如图11所示,该电子装置包括存储器1102和处理器1104,该存储器1102中存储有计算机程序,该处理器1104被设置为通过计算机程序执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述电子装置可以位于计算机网络的多个网络设备中的至少一个网络设备。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,在卷积神经网络模型中执行目标卷积操作的过程中,按照通道分别对目标卷积操作所涉及的特征图中的接收域和涉及的卷积核进行分组,得到多个接收域分组和多个卷积核分组,其中,每个接收域分组内相同行列位置的不同通道组成一个基本块,每个卷积核分组内相同行列位置的不同通道组成一个基本块;
S2,对多个接收域分组中的基本块进行排序,得到接收域数据组,并对多个卷积核分组中的基本块进行排序,得到卷积核数据组,其中,在对多个接收域分组中的基本块进行排序的过程中,对相同的第一基本块进行复用;
S3,将接收域数据组和卷积核数据组输入到用于矩阵乘法的二维阵列中,得到二维阵列输出的矩阵的值,其中,目标卷积操作的结果包括矩阵的值。
可选地,本领域普通技术人员可以理解,图11所示的结构仅为示意,电子装置也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图11其并不对上述电子装置的结构造成限定。例如,电子装置还可包括比图11中所示更多或者更少的组件(如网络接口等),或者具有与图11所示不同的配置。
其中,存储器1102可用于存储软件程序以及模块,如本发明实施例中的卷积计算数据流映射方法和装置对应的程序指令/模块,处理器1104通过运行存储在存储器1102内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的卷积计算数据流映射方法。存储器1102可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1102可进一步包括相对于处理器1104远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。其中,存储器1102具体可以但不限于用于存储卷积核与特征图等信息。作为一种示例,如图11所示,上述存储器1102中可以但不限于包括上述卷积计算数据流映射装置中的分组单元902、排序单元904与输入单元906。此外,还可以包括但不限于上述卷积计算数据流映射装置中的其他模块单元,本示例中不再赘述。
可选地,上述的传输装置1106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1106包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1106为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
此外,上述电子装置还包括:显示器1108,用于显示卷积结果;和连接总线1110,用于连接上述电子装置中的各个模块部件。
根据本发明的实施例的又一方面,还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,在卷积神经网络模型中执行目标卷积操作的过程中,按照通道分别对目标卷积操作所涉及的特征图中的接收域和涉及的卷积核进行分组,得到多个接收域分组和多个卷积核分组,其中,每个接收域分组内相同行列位置的不同通道组成一个基本块,每个卷积核分组内相同行列位置的不同通道组成一个基本块;
S2,对多个接收域分组中的基本块进行排序,得到接收域数据组,并对多个卷积核分组中的基本块进行排序,得到卷积核数据组,其中,在对多个接收域分组中的基本块进行排序的过程中,对相同的第一基本块进行复用;
S3,将接收域数据组和卷积核数据组输入到用于矩阵乘法的二维阵列中,得到二维阵列输出的矩阵的值,其中,目标卷积操作的结果包括矩阵的值。
可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (12)
1.一种卷积计算数据流映射方法,其特征在于,包括:
在卷积神经网络模型中执行目标卷积操作的过程中,按照通道分别对所述目标卷积操作所涉及的特征图中的接收域和涉及的卷积核进行分组,得到多个接收域分组和多个卷积核分组,其中,每个所述接收域分组内相同行列位置的不同通道组成一个基本块,每个所述卷积核分组内相同行列位置的不同通道组成一个基本块;
对所述多个接收域分组中的基本块进行排序,得到接收域数据组,并对所述多个卷积核分组中的基本块进行排序,得到卷积核数据组,其中,在对所述多个接收域分组中的基本块进行排序的过程中,在第一次需要使用第一基本块的情况下,从第一存储空间中读取所述第一基本块,在所述第一次之后需要使用所述第一基本块的情况下,复用在所述第一次读取到的所述第一基本块;
将所述接收域数据组和所述卷积核数据组输入到用于矩阵乘法的二维阵列中,得到所述二维阵列输出的矩阵的值,其中,所述目标卷积操作的结果包括所述矩阵的值。
2.根据权利要求1所述的方法,其特征在于,所述对所述多个接收域分组中的基本块进行排序,得到接收域数据组,并对所述多个卷积核分组中的基本块进行排序,得到卷积核数据组包括:
对所述多个接收域分组中的每个接收域分组中的基本块按照先列后组后行的顺序进行排序,得到所述接收域数据组,并对所述多个卷积核分组中每个卷积核分组中的基本块按照先列后组后行的顺序进行排序,得到所述卷积核数据组。
3.根据权利要求1所述的方法,其特征在于,所述接收域的尺寸为C*K1*K2所述卷积核的尺寸为C*K1*K2,其中,所述C、K1与K2为正整数,所述在卷积神经网络模型中执行目标卷积操作的过程中,按照通道分别对所述目标卷积操作所涉及的特征图中的接收域和涉及的卷积核进行分组,得到多个接收域分组和多个卷积核分组包括:
将所述接收域分为M组,每组尺寸为C/M*K1*K2;
将所述卷积核分为M组,每组尺寸为C/M*K1*K2,其中,所述M为正整数,所述M小于所述C。
4.根据权利要求3所述的方法,其特征在于,
所述将所述接收域分为M组包括:在所述C/M不为整数的情况下,在所述接收域中补充X个通道,每个通道中数据为零,将补充数据后的所述接收域中分为M组,其中,每个所述基本块中的数据更新为(C+X)/M个,所述(C+X)/M为整数,所述X大于零且小于所述M;
所述将所述卷积核分为M组包括:在所述C/M不为整数的情况下,在所述卷积核中补充X个通道,每个通道中数据为零,将补充数据后的所述卷积核中分为M组,其中,每个所述基本块中的数据更新为(C+X)/M个,所述(C+X)/M为整数。
5.根据权利要求1所述的方法,其特征在于,所述将所述接收域数据组和所述卷积核数据组输入到用于矩阵乘法的二维阵列中,得到所述二维阵列输出的矩阵的值包括:
将I个接收域的I个所述接收域数据组和J个卷积核的J个所述卷积核数据组分别作为第一矩阵与第二矩阵,输入到所述用于矩阵乘法的二维阵列中,得到所述二维阵列输出的矩阵的值,其中,所述矩阵的值与使用所述J个卷积核对所述I个接收域进行卷积的结果相同,所述I为正整数,所述J为正整数。
6.一种卷积计算数据流映射装置,其特征在于,包括:
分组单元,用于在卷积神经网络模型中执行目标卷积操作的过程中,按照通道分别对所述目标卷积操作所涉及的特征图中的接收域和涉及的卷积核进行分组,得到多个接收域分组和多个卷积核分组,其中,每个所述接收域分组内相同行列位置的不同通道组成一个基本块,每个所述卷积核分组内相同行列位置的不同通道组成一个基本块;
排序单元,用于对所述多个接收域分组中的基本块进行排序,得到接收域数据组,并对所述多个卷积核分组中的基本块进行排序,得到卷积核数据组,其中,在对所述多个接收域分组中的基本块进行排序的过程中,对相同的第一基本块进行复用;
输入单元,用于将所述接收域数据组和所述卷积核数据组输入到用于矩阵乘法的二维阵列中,得到所述二维阵列输出的矩阵的值,其中,所述目标卷积操作的结果包括所述矩阵的值;
所述排序单元包括:复用模块,用于在对所述多个接收域分组中的基本块进行排序的过程中,在第一次需要使用所述第一基本块的情况下,从第一存储空间中读取所述第一基本块,在所述第一次之后需要使用所述第一基本块的情况下,复用在所述第一次读取到的所述第一基本块。
7.根据权利要求6所述的装置,其特征在于,所述排序单元包括:
排序模块,用于对所述多个接收域分组中的每个接收域分组中的基本块按照先列后组后行的顺序进行排序,得到所述接收域数据组,并对所述多个卷积核分组中每个卷积核分组中的基本块按照先列后组后行的顺序进行排序,得到所述卷积核数据组。
8.根据权利要求6所述的装置,其特征在于,所述接收域的尺寸为C*K1*K2所述卷积核的尺寸为C*K1*K2,其中,所述C、K1与K2为正整数,所述分组单元包括:
第一分组模块,用于将所述接收域分为M组,每组尺寸为C/M*K1*K2;
第二分组模块,用于将所述卷积核分为M组,每组尺寸为C/M*K1*K2,其中,所述M为正整数,所述M小于所述C。
9.根据权利要求8所述的装置,其特征在于,
所述第一分组模块包括:第一处理子模块,用于在所述C/M不为整数的情况下,在所述接收域中补充X个通道,每个通道中数据为零,将补充数据后的所述接收域中分为M组,其中,每个所述基本块中的数据更新为(C+X)/M个,所述(C+X)/M为整数,所述X大于零且小于所述M;
所述第二分组模块包括:第二处理子模块,用于在所述C/M不为整数的情况下,在所述卷积核中补充X个通道,每个通道中数据为零,将补充数据后的所述卷积核中分为M组,其中,每个所述基本块中的数据更新为(C+X)/M个,所述(C+X)/M为整数。
10.根据权利要求6所述的装置,其特征在于,所述输入单元包括:
输入模块,用于将I个接收域的I个所述接收域数据组和J个卷积核的J个所述卷积核数据组分别作为第一矩阵与第二矩阵,输入到所述用于矩阵乘法的二维阵列中,得到所述二维阵列输出的矩阵的值,其中,所述矩阵的值与使用所述J个卷积核对所述I个接收域进行卷积的结果相同,所述I为正整数,所述J为正整数。
11.一种存储介质,所述存储介质存储有计算机程序,其特征在于,所述计算机程序运行时执行所述权利要求1至5任一项中所述的方法。
12.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行所述权利要求1至5任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910894373.0A CN112541565B (zh) | 2019-09-20 | 2019-09-20 | 一种卷积计算数据流映射方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910894373.0A CN112541565B (zh) | 2019-09-20 | 2019-09-20 | 一种卷积计算数据流映射方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112541565A CN112541565A (zh) | 2021-03-23 |
CN112541565B true CN112541565B (zh) | 2023-08-29 |
Family
ID=75012461
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910894373.0A Active CN112541565B (zh) | 2019-09-20 | 2019-09-20 | 一种卷积计算数据流映射方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112541565B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117787365A (zh) * | 2023-12-29 | 2024-03-29 | 中科南京智能技术研究院 | 一种卷积数据流的调度方法、装置、介质及设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109086244A (zh) * | 2018-07-11 | 2018-12-25 | 中国人民解放军国防科技大学 | 一种基于向量处理器的矩阵卷积向量化实现方法 |
WO2019119301A1 (zh) * | 2017-12-20 | 2019-06-27 | 华为技术有限公司 | 在卷积神经网络模型中确定特征图像的方法和装置 |
CN109978137A (zh) * | 2019-03-20 | 2019-07-05 | 厦门美图之家科技有限公司 | 一种卷积神经网络的处理方法 |
CN110187965A (zh) * | 2019-05-08 | 2019-08-30 | 深圳大学 | 神经网络的运行优化及数据处理方法、设备及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104077233B (zh) * | 2014-06-18 | 2017-04-05 | 百度在线网络技术(北京)有限公司 | 多通道卷积层处理方法和装置 |
US10460230B2 (en) * | 2015-06-04 | 2019-10-29 | Samsung Electronics Co., Ltd. | Reducing computations in a neural network |
CN107909148B (zh) * | 2017-12-12 | 2020-10-20 | 南京地平线机器人技术有限公司 | 用于执行卷积神经网络中的卷积运算的装置 |
-
2019
- 2019-09-20 CN CN201910894373.0A patent/CN112541565B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019119301A1 (zh) * | 2017-12-20 | 2019-06-27 | 华为技术有限公司 | 在卷积神经网络模型中确定特征图像的方法和装置 |
CN109086244A (zh) * | 2018-07-11 | 2018-12-25 | 中国人民解放军国防科技大学 | 一种基于向量处理器的矩阵卷积向量化实现方法 |
CN109978137A (zh) * | 2019-03-20 | 2019-07-05 | 厦门美图之家科技有限公司 | 一种卷积神经网络的处理方法 |
CN110187965A (zh) * | 2019-05-08 | 2019-08-30 | 深圳大学 | 神经网络的运行优化及数据处理方法、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
梁爽.可重构神经网络加速器设计关键技术研究.中国博士学位论文全文数据库 信息科技辑.2019,全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN112541565A (zh) | 2021-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107145939B (zh) | 一种低计算能力处理设备的计算机视觉处理方法及装置 | |
CN112214727B (zh) | 运算加速器 | |
JP5840994B2 (ja) | 行列演算装置 | |
KR101999639B1 (ko) | 데이터 처리 시스템, 계산 노드 및 데이터 처리 방법 | |
CN110673786B (zh) | 数据缓存的方法和装置 | |
CN108205519A (zh) | 矩阵乘加运算装置和方法 | |
TW202123093A (zh) | 實行卷積運算的系統及方法 | |
CN110780921A (zh) | 数据处理方法和装置、存储介质及电子装置 | |
CN110580522A (zh) | 卷积计算方法及相关设备 | |
CN111814957B (zh) | 神经网络运算方法及相关设备 | |
CN110427494B (zh) | 知识图谱的展示方法、装置、存储介质及电子装置 | |
CN112541565B (zh) | 一种卷积计算数据流映射方法及装置 | |
CN111899149B (zh) | 基于算子融合的图像处理方法和装置、存储介质 | |
CN111639701B (zh) | 一种图像特征提取的方法、系统、设备及可读存储介质 | |
CN111160542A (zh) | 集成电路芯片装置及相关产品 | |
CN112149047A (zh) | 数据的处理方法及装置、存储介质和电子装置 | |
CN113254215B (zh) | 数据处理方法和装置、存储介质及电子设备 | |
CN112446007A (zh) | 一种矩阵运算方法、运算装置以及处理器 | |
CN111814983B (zh) | 数据处理方法、装置、芯片以及计算机可读存储介质 | |
CN111026546A (zh) | 一种任务的调度方法、装置、存储介质及电子装置 | |
CN114662689A (zh) | 一种神经网络的剪枝方法、装置、设备及介质 | |
CN107220702B (zh) | 一种低计算能力处理设备的计算机视觉处理方法及装置 | |
CN111047025A (zh) | 一种卷积计算方法及装置 | |
CN117063182A (zh) | 一种数据处理方法和装置 | |
CN114647818A (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 |