CN111310891A - 一种卷积运算方法、装置、设备及存储介质 - Google Patents
一种卷积运算方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111310891A CN111310891A CN202010065274.4A CN202010065274A CN111310891A CN 111310891 A CN111310891 A CN 111310891A CN 202010065274 A CN202010065274 A CN 202010065274A CN 111310891 A CN111310891 A CN 111310891A
- Authority
- CN
- China
- Prior art keywords
- matrix
- convolution
- sample data
- intermediate matrix
- convolution operation
- 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
- 238000000034 method Methods 0.000 title claims abstract description 66
- 239000011159 matrix material Substances 0.000 claims abstract description 433
- 230000015654 memory Effects 0.000 claims abstract description 58
- 230000008569 process Effects 0.000 claims abstract description 25
- 230000017105 transposition Effects 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 11
- 238000009825 accumulation Methods 0.000 claims description 10
- 238000007781 pre-processing Methods 0.000 claims description 4
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 238000013135 deep learning Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000001914 filtration Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 210000002569 neuron Anatomy 0.000 description 2
- 230000007480 spreading Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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
- 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/15—Correlation function computation including computation of convolution operations
- G06F17/153—Multidimensional correlation or convolution
-
- 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/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种卷积运算方法、装置、设备及存储介质,该方法的步骤包括:在存储器中读取样本数据矩阵以及与样本数据矩阵对应的卷积核矩阵;对样本数据矩阵执行展开操作生成第一中间矩阵,并对卷积核矩阵执行展开操作生成第二中间矩阵,第一中间矩阵与第二中间矩阵之间的行数及列数均一致;通过第二中间矩阵对第一中间矩阵执行卷积操作,并生成卷积结果。由于本方法中通过第二中间矩阵对第一中间矩阵执行卷积操作等同于卷积核矩阵对样本数据矩阵执行卷积操作,并能够提高单位时间内两个矩阵之间卷积的数据量,进而相对确保了卷积运算过程的整体效率。此外,本发明还提供一种卷积运算装置、设备及存储介质,有益效果同上所述。
Description
技术领域
本发明涉及深度学习领域,特别是涉及一种卷积运算方法、装置、设备及存储介质。
背景技术
深度学习指的是学习样本数据的内在规律和表示层次,它的最终目标是让机器能够像人一样具有分析学习能力,能够识别文字、图像和声音等数据,而通过卷积运算对样本数据进行特征提取是当前实现深度学习的重要手段。
以图像方面的深度学习为例,图像中不同数据窗口的样本数据和卷积核作内积的操作叫做卷积,其计算过程又称为滤波,本质是提取图像不同频段的特征。卷积核也称为滤波器,是包含一组固定权重的神经元,通常是正方形的二维矩阵,该矩阵中存的是对感受野中数据处理的系数,一个卷积核的滤波可以用来提取特定的特征,例如可以提取图像中的物体轮廓、颜色深浅等。由于当前在数据窗口中获取的样本数据的矩阵元素往往多于卷积核的矩阵元素,并且矩阵元素的数量差异较大,因此难以确保卷积核对样本数据进行卷积运算的整体效率。
由此可见,提供一种卷积运算方法,以相对确保卷积运算过程的整体效率,是本领域技术人员需要解决的问题。
发明内容
本发明的目的是提供一种卷积运算方法、装置、设备及存储介质,以相对确保卷积运算过程的整体效率。
为解决上述技术问题,本发明提供一种卷积运算方法,包括:
在存储器中读取样本数据矩阵以及与样本数据矩阵对应的卷积核矩阵;
对样本数据矩阵执行展开操作生成第一中间矩阵,并对卷积核矩阵执行展开操作生成第二中间矩阵,第一中间矩阵与第二中间矩阵之间的行数及列数均一致;
通过第二中间矩阵对第一中间矩阵执行卷积操作,并生成卷积结果。
优选的,当样本数据矩阵的数量大于1时,通过第二中间矩阵对第一中间矩阵执行卷积操作,包括:
通过第二中间矩阵分别对各第一中间矩阵执行矩阵乘运算并生成相应的结果矩阵;
对各结果矩阵执行累加操作。
优选的,在存储器中读取样本数据矩阵以及与样本数据矩阵对应的卷积核矩阵,包括:
在DDR存储器中读取样本数据矩阵,并在HBM2存储器中读取与样本数据矩阵对应的卷积核矩阵。
优选的,通过第二中间矩阵对第一中间矩阵执行卷积操作,包括:
在DSP运算阵列中通过第二中间矩阵对第一中间矩阵执行卷积操作。
优选的,在生成卷积结果后,方法还包括:
将卷积结果存储至存储器中与样本数据矩阵对应的存储位置。
优选的,对样本数据矩阵执行展开操作生成第一中间矩阵,包括:
在样本矩阵中顺序提取与卷积核矩阵的尺寸相同的过程矩阵;
对过程矩阵的各行数据分别执行转置操作并依照行间顺序拼接为第一转置数据列;
依照各过程矩阵之间的相邻关系将对应的各第一转置数据列组合为第一中间矩阵。
优选的,对卷积核矩阵执行展开操作生成第二中间矩阵,包括:
对卷积核矩阵的各行数据分别执行转置操作并依照行间顺序拼接为第二转置数据列;
基于多个第二转置数据列组合为第二中间矩阵。
优选的,当样本数据矩阵的维度数量大于2时,对样本数据矩阵执行展开操作生成第一中间矩阵,包括:
基于样本数据中目标维度下的各个元素依次执行展开操作生成第一中间矩阵。
此外,本发明还提供一种卷积运算装置,包括:
矩阵读取模块,用于在存储器中读取样本数据矩阵以及与样本数据矩阵对应的卷积核矩阵;
预处理模块,用于对样本数据矩阵执行展开操作生成第一中间矩阵,并对卷积核矩阵执行展开操作生成第二中间矩阵,第一中间矩阵与第二中间矩阵之间的行数及列数均一致;
卷积执行模块,用于通过第二中间矩阵对第一中间矩阵执行卷积操作,并生成卷积结果。
优选的,卷积执行模块,包括:
矩阵乘积模块,用于通过第二中间矩阵分别对各第一中间矩阵执行矩阵乘运算并生成相应的结果矩阵;
累加模块,用于对各结果矩阵执行累加操作。
优选的,矩阵读取模块,包括:
存储器读取模块,用于在DDR存储器中读取样本数据矩阵,并在HBM2存储器中读取与样本数据矩阵对应的卷积核矩阵。
此外,本发明还提供一种卷积运算设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现如上述的卷积运算方法的步骤。
此外,本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述的卷积运算方法的步骤。
本发明所提供的卷积运算方法,首先在存储器中读取样本数据矩阵以及与该样本数据矩阵对应的卷积核矩阵,样本数据矩阵的行数或列数与卷积核矩阵的行数一致,进而对样本数据矩阵以及卷积核矩阵分别执行展开操作生成第一中间矩阵及第二中间矩阵,并且第一中间矩阵与第二中间矩阵的行数及列数均一致,最终通过卷积核矩阵展开得到的第二中间矩阵对样本数据矩阵展开得到的第一中间矩阵执行卷积操作,生成相应的卷积结果。由于本方法对样本数据矩阵以及卷积核矩阵进行展开操作后生成的第一中间矩阵等效于该样本数据矩阵,生成的第二中间矩阵等效于该卷积核矩阵,因此通过第二中间矩阵对第一中间矩阵执行卷积操作等同于卷积核矩阵对样本数据矩阵执行卷积操作,并能够提高单位时间内两个矩阵之间卷积的数据量,进而相对确保了卷积运算过程的整体效率。此外,本发明还提供一种卷积运算装置、设备及存储介质,有益效果同上所述。
附图说明
为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例公开的一种卷积运算方法的流程图;
图2.a为本发明实施例公开的一种具体应用场景下的样本数据矩阵的展开操作示意图;
图2.b为本发明实施例公开的一种具体应用场景下的卷积核矩阵的展开操作示意图;
图3为本发明实施例公开的一种具体的卷积运算方法的流程图;
图4为本发明实施例公开的一种卷积运算装置的组成结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。
以图像方面的深度学习为例,图像中不同数据窗口的样本数据和卷积核作内积的操作叫做卷积,其计算过程又称为滤波,本质是提取图像不同频段的特征。卷积核也称为滤波器,是包含一组固定权重的神经元,通常是正方形的二维矩阵,该矩阵中存的是对感受野中数据处理的系数,一个卷积核的滤波可以用来提取特定的特征,例如可以提取图像中的物体轮廓、颜色深浅等。由于当前在数据窗口中获取的样本数据的矩阵元素往往多于卷积核的矩阵元素,并且矩阵元素的数量差异较大,因此难以确保卷积核对样本数据进行卷积运算的整体效率。
为此,本发明的核心是提供一种卷积运算方法,以相对确保卷积运算过程的整体效率。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
请参见图1所示,本发明实施例公开了一种卷积运算方法,包括:
步骤S10:在存储器中读取样本数据矩阵以及与样本数据矩阵对应的卷积核矩阵。
需要说明的是,本步骤中读取的样本数据矩阵可以是由包括但不限于图片、音频、文字等类型的样本中提取得到的数据矩阵,样本数据矩阵对应的卷积核矩阵即为对样本数据矩阵进行特征提取的矩阵,卷积核矩阵中的元素根据在样本数据矩阵中所提取特征的具体类型而设置,进而卷积核矩阵通过对样本数据矩阵执行卷积操作产生特征图像,即卷积结果,特征图像能够反映相应类型的特征在样本数据矩阵中的分布状态。另外,本步骤在存储器中读取样本数据矩阵以及与样本数据矩阵对应的卷积核矩阵,可以具体是在同一个存储器中获取样本数据矩阵以及与样本数据矩阵对应的卷积核矩阵,也可以是在两个独立的存储器中分别获取样本数据矩阵以及与样本数据矩阵对应的卷积核矩阵。
步骤S11:对样本数据矩阵执行展开操作生成第一中间矩阵,并对卷积核矩阵执行展开操作生成第二中间矩阵,第一中间矩阵与第二中间矩阵之间的行数及列数均一致。
本实施例的重点在于在获取到样本数据矩阵以及与样本数据矩阵对应的卷积核矩阵,并在利用卷积核矩阵对样本数据矩阵进行卷积运算之前,先对样本数据矩阵以及卷积核矩阵进行预处理,也就是分别对样本数据矩阵以及卷积核矩阵进行展开操作,展开操作的目的是获取到行数以及列数对应一致的第一中间矩阵和第二中间矩阵。其中,第一中间矩阵等效于样本数据矩阵,第二中间矩阵等效于卷积核矩阵,由于第一中间矩阵与第二中间矩阵的行数以及列数分别相同,因此能够保证在执行后续卷积操作的过程中,第一中间矩阵与第二中间矩阵之间在单位时间内具有较大的数据卷积次数。此外,本步骤中的展开操作可以具体是按行展开。
步骤S12:通过第二中间矩阵对第一中间矩阵执行卷积操作,并生成卷积结果。
本步骤是在获取到第一中间矩阵与第二中间矩阵后,进一步通过第二中间矩阵对第一中间矩阵执行卷积操作,进而生成相应的卷积结果。
本发明所提供的卷积运算方法,首先在存储器中读取样本数据矩阵以及与该样本数据矩阵对应的卷积核矩阵,样本数据矩阵的行数或列数与卷积核矩阵的行数一致,进而对样本数据矩阵以及卷积核矩阵分别执行展开操作生成第一中间矩阵及第二中间矩阵,并且第一中间矩阵与第二中间矩阵的行数及列数均一致,最终通过卷积核矩阵展开得到的第二中间矩阵对样本数据矩阵展开得到的第一中间矩阵执行卷积操作,生成相应的卷积结果。由于本方法对样本数据矩阵以及卷积核矩阵进行展开操作后生成的第一中间矩阵等效于该样本数据矩阵,生成的第二中间矩阵等效于该卷积核矩阵,因此通过第二中间矩阵对第一中间矩阵执行卷积操作等同于卷积核矩阵对样本数据矩阵执行卷积操作,并能够提高单位时间内两个矩阵之间卷积的数据量,进而相对确保了卷积运算过程的整体效率。
在上述实施例的基础上,作为一种优选的实施方式,对样本数据矩阵执行展开操作生成第一中间矩阵,包括:
在样本矩阵中顺序提取与卷积核矩阵的尺寸相同的过程矩阵;
对过程矩阵的各行数据分别执行转置操作并依照行间顺序拼接为第一转置数据列;
依照各过程矩阵之间的相邻关系将对应的各第一转置数据列组合为第一中间矩阵。
需要说明的是,由于本实施方式中采用了矩阵转置拼接的方式,因此能够使变换得到的第一中间矩阵具有行优先计算的特点,进而具有在计算过程中产生的中间结果数据量小的优势,因此能达到缩减硬件资源开销的效果。
在上述实施方式的基础上,作为一种优选的实施方式,对卷积核矩阵执行展开操作生成第二中间矩阵,包括:
对卷积核矩阵的各行数据分别执行转置操作并依照行间顺序拼接为第二转置数据列;
基于多个第二转置数据列组合为第二中间矩阵。
需要说明的是,本实施方式能够基于根据第一中间矩阵的行列尺寸相对高效的生成第二中间矩阵,提高了卷积运算的整体效率。
为了加深对于上述实施方式中展开操作的理解,本实施例通过举例方式进行说明。在具体应用场景下,样本数据矩阵以及卷积核矩阵的展开操作的示意图分别如图2.a以及图2.b所示。
如图2.a所示,样本数据矩阵是3x11形式的矩阵,展开操作后的第一中间矩阵为9x9的排列方式。其中9x9排列方式的上部三行是3x11形式的第一行分三次,每次取9个数据而得到的,这三次选取数据的初始位置分别是第一个、第二个、第三个数据。以此类推可以得到9x9排列方式的下部六行。
如图2.b所示,卷积核矩阵是3x3形式的矩阵,展开操作是将3x3的数据按行的顺序排成一列,进一步扩展成9列而得。
在上述实施例的基础上,本发明还提供如下一系列优选的实施方式。
当样本数据矩阵的数量大于1时,请参见图3所示,本发明实施例公开了一种卷积运算方法,包括:
步骤S20:在存储器中读取样本数据矩阵以及与样本数据矩阵对应的卷积核矩阵。
步骤S21:对样本数据矩阵执行展开操作生成第一中间矩阵,并对卷积核矩阵执行展开操作生成第二中间矩阵,第一中间矩阵与第二中间矩阵之间的行数及列数均一致。
步骤S22:通过第二中间矩阵分别对各第一中间矩阵执行矩阵乘运算并生成相应的结果矩阵。
步骤S23:对各结果矩阵执行累加操作并生成卷积结果。
可以理解的是,当样本数据矩阵的数量大于1时,基于样本数据矩阵执行展开操作所生成的第一中间矩阵的数量同样大于1,因此卷积核矩阵对应的第二中间矩阵需要与所有的第一中间矩阵分别执行矩阵乘运算并生成相应的结果矩阵,进而再对各结果矩阵进行累加操作,以此生成全部样本数据矩阵综合的卷积结果,本实施能够相对确保当样本数据矩阵的数量大于1时,对样本数据矩阵执行卷积运算的整体准确性。
在上述实施例的基础上,作为一种优选的实施方式,在存储器中读取样本数据矩阵以及与样本数据矩阵对应的卷积核矩阵,包括:
在DDR存储器中读取样本数据矩阵,并在HBM2存储器中读取与样本数据矩阵对应的卷积核矩阵。
需要说明的是,在本实施方式中,样本数据矩阵与卷积核矩阵获取于不同的两个存储器,即在DDR存储器中读取样本数据矩阵,在HBM2存储器中读取与样本数据矩阵对应的卷积核矩阵,其中,DDR存储器与HBM2存储器可以同属一个运算芯片所有,例如DDR存储器以及HBM2存储器同属于FPGA芯片,在此情况下,FPGA芯片分别在本地的DDR芯片中获取样本数据矩阵,在本地的HBM2存储器获取卷积核矩阵,并在FPGA芯片中进行卷积核矩阵对样本数据矩阵的卷积运算。
本实施中的DDR存储器以及HBM2存储器均可以在与SDRAM存储器相同的总线频率下达到更高的数据传输率,因此本实施例能够进一步提高卷积运算的整体效率。
在上述实施例的基础上,作为一种优选的实施方式,通过第二中间矩阵对第一中间矩阵执行卷积操作,包括:
在DSP运算阵列中通过第二中间矩阵对第一中间矩阵执行卷积操作。
需要说明的是,DSP运算阵列,也称数字信号处理器,是一种具有特殊结构的微处理器。DSP芯片的内部采用程序和数据分开的结构,具有硬件乘法器,广泛采用流水线操作,提供的DSP指令,可以用来快速的实现各种数字信号处理算法,因此本实施方式在DSP运算阵列中通过第二中间矩阵对第一中间矩阵执行卷积操作,能够相对提高第二中间矩阵对第一中间矩阵执行卷积操作的整体效率。
此外,作为一种优选的实施方式,在生成卷积结果后,方法还包括:
将卷积结果存储至存储器中与样本数据矩阵对应的存储位置。
需要说明的是,由于考虑到在通过卷积核矩阵对样本数据矩阵执行卷积操作后,样本数据矩阵已经完成其在卷积运算中的作用,但是样本数据矩阵仍会持续占用存储器的空间,造成存储器的空间可用率降低,因此本实施方式在生成卷积结果后,进一步将卷积结果存储至存储器中与样本数据矩阵对应的存储位置,目的是通过卷积结果覆盖存储器中原有的样本数据矩阵,以此确保存储器的空间可用率,从而避免存储器空间的浪费,进而降低存储器的存储压力,确保了卷积运算的整体稳定性。
此外,在上述一系列实施方式的基础上,作为一种优选的实施方式,当样本数据矩阵的维度数量大于2时,对样本数据矩阵执行展开操作生成第一中间矩阵,包括:
基于样本数据中目标维度下的各个元素依次执行展开操作生成第一中间矩阵。
需要说明的是,当样本数据矩阵的维度数量大于2时,本实施方式基于样本数据中的目标维度下的各个元素依次执行展开操作,生成第一中间矩阵,进而通过第二中间矩阵对第一中间矩阵执行卷积操作,能够依次以目标维度中每个元素为单位执行第二中间矩阵与第一中间矩阵之间的卷积操作,相对减少了目标维度中同一元素对应的第二中间矩阵与第一中间矩阵进行卷积操作时所产生的中间数据的数量,进而达到缩减硬件资源开销的效果。
另一方面,本发明还提供了一种卷积运算装置。参见图4,其示出了一种卷积运算装置一个实施例的组成结构示意图,该装置包括:
矩阵读取模块10,用于在存储器中读取样本数据矩阵以及与样本数据矩阵对应的卷积核矩阵。
预处理模块11,用于对样本数据矩阵执行展开操作生成第一中间矩阵,并对卷积核矩阵执行展开操作生成第二中间矩阵,第一中间矩阵与第二中间矩阵之间的行数及列数均一致。
卷积执行模块12,用于通过第二中间矩阵对第一中间矩阵执行卷积操作,并生成卷积结果。
本发明所提供的卷积运算装置,首先在存储器中读取样本数据矩阵以及与该样本数据矩阵对应的卷积核矩阵,样本数据矩阵的行数或列数与卷积核矩阵的行数一致,进而对样本数据矩阵以及卷积核矩阵分别执行展开操作生成第一中间矩阵及第二中间矩阵,并且第一中间矩阵与第二中间矩阵的行数及列数均一致,最终通过卷积核矩阵展开得到的第二中间矩阵对样本数据矩阵展开得到的第一中间矩阵执行卷积操作,生成相应的卷积结果。由于本装置对样本数据矩阵以及卷积核矩阵进行展开操作后生成的第一中间矩阵等效于该样本数据矩阵,生成的第二中间矩阵等效于该卷积核矩阵,因此通过第二中间矩阵对第一中间矩阵执行卷积操作等同于卷积核矩阵对样本数据矩阵执行卷积操作,并能够提高单位时间内两个矩阵之间卷积的数据量,进而相对确保了卷积运算过程的整体效率。
此外,作为一种优选的实施方式,卷积执行模块,包括:
矩阵乘积模块,用于通过第二中间矩阵分别对各第一中间矩阵执行矩阵乘运算并生成相应的结果矩阵;
累加模块,用于对各结果矩阵执行累加操作。
此外,作为一种优选的实施方式,矩阵读取模块,包括:
存储器读取模块,用于在DDR存储器中读取样本数据矩阵,并在HBM2存储器中读取与样本数据矩阵对应的卷积核矩阵。
另一方面,本发明还提供了一种卷积运算设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现如上述的卷积运算方法的步骤。
本发明所提供的卷积运算设备,首先在存储器中读取样本数据矩阵以及与该样本数据矩阵对应的卷积核矩阵,样本数据矩阵的行数或列数与卷积核矩阵的行数一致,进而对样本数据矩阵以及卷积核矩阵分别执行展开操作生成第一中间矩阵及第二中间矩阵,并且第一中间矩阵与第二中间矩阵的行数及列数均一致,最终通过卷积核矩阵展开得到的第二中间矩阵对样本数据矩阵展开得到的第一中间矩阵执行卷积操作,生成相应的卷积结果。由于本设备对样本数据矩阵以及卷积核矩阵进行展开操作后生成的第一中间矩阵等效于该样本数据矩阵,生成的第二中间矩阵等效于该卷积核矩阵,因此通过第二中间矩阵对第一中间矩阵执行卷积操作等同于卷积核矩阵对样本数据矩阵执行卷积操作,并能够提高单位时间内两个矩阵之间卷积的数据量,进而相对确保了卷积运算过程的整体效率。
另一方面,本发明还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述的卷积运算方法的步骤。
本发明所提供的计算机可读存储介质,首先在存储器中读取样本数据矩阵以及与该样本数据矩阵对应的卷积核矩阵,样本数据矩阵的行数或列数与卷积核矩阵的行数一致,进而对样本数据矩阵以及卷积核矩阵分别执行展开操作生成第一中间矩阵及第二中间矩阵,并且第一中间矩阵与第二中间矩阵的行数及列数均一致,最终通过卷积核矩阵展开得到的第二中间矩阵对样本数据矩阵展开得到的第一中间矩阵执行卷积操作,生成相应的卷积结果。由于本计算机可读存储介质对样本数据矩阵以及卷积核矩阵进行展开操作后生成的第一中间矩阵等效于该样本数据矩阵,生成的第二中间矩阵等效于该卷积核矩阵,因此通过第二中间矩阵对第一中间矩阵执行卷积操作等同于卷积核矩阵对样本数据矩阵执行卷积操作,并能够提高单位时间内两个矩阵之间卷积的数据量,进而相对确保了卷积运算过程的整体效率。
以上对本发明所提供的一种卷积运算方法、装置、设备及存储介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (13)
1.一种卷积运算方法,其特征在于,包括:
在存储器中读取样本数据矩阵以及与所述样本数据矩阵对应的卷积核矩阵;
对所述样本数据矩阵执行展开操作生成第一中间矩阵,并对所述卷积核矩阵执行展开操作生成第二中间矩阵,所述第一中间矩阵与所述第二中间矩阵之间的行数及列数均一致;
通过所述第二中间矩阵对所述第一中间矩阵执行卷积操作,并生成卷积结果。
2.根据权利要求1所述的卷积运算方法,其特征在于,当所述样本数据矩阵的数量大于1时,所述通过所述第二中间矩阵对所述第一中间矩阵执行卷积操作,包括:
通过所述第二中间矩阵分别对各所述第一中间矩阵执行矩阵乘运算并生成相应的结果矩阵;
对各所述结果矩阵执行累加操作。
3.根据权利要求1所述的卷积运算方法,其特征在于,所述在存储器中读取样本数据矩阵以及与所述样本数据矩阵对应的卷积核矩阵,包括:
在DDR存储器中读取所述样本数据矩阵,并在HBM2存储器中读取与所述样本数据矩阵对应的卷积核矩阵。
4.根据权利要求1所述的卷积运算方法,其特征在于,所述通过所述第二中间矩阵对所述第一中间矩阵执行卷积操作,包括:
在DSP运算阵列中通过所述第二中间矩阵对所述第一中间矩阵执行所述卷积操作。
5.根据权利要求1所述的卷积运算方法,其特征在于,在所述生成卷积结果后,所述方法还包括:
将所述卷积结果存储至所述存储器中与所述样本数据矩阵对应的存储位置。
6.根据权利要求1所述的卷积运算方法,其特征在于,所述对所述样本数据矩阵执行展开操作生成第一中间矩阵,包括:
在所述样本矩阵中顺序提取与所述卷积核矩阵的尺寸相同的过程矩阵;
对所述过程矩阵的各行数据分别执行转置操作并依照行间顺序拼接为第一转置数据列;
依照各所述过程矩阵之间的相邻关系将对应的各所述第一转置数据列组合为所述第一中间矩阵。
7.根据权利要求6所述的卷积运算方法,其特征在于,所述对所述卷积核矩阵执行展开操作生成第二中间矩阵,包括:
对所述卷积核矩阵的各行数据分别执行转置操作并依照行间顺序拼接为第二转置数据列;
基于多个所述第二转置数据列组合为所述第二中间矩阵。
8.根据权利要求1至7任意一项所述的卷积运算方法,其特征在于,当所述样本数据矩阵的维度数量大于2时,所述对所述样本数据矩阵执行展开操作生成第一中间矩阵,包括:
基于所述样本数据中目标维度下的各个元素依次执行所述展开操作生成所述第一中间矩阵。
9.一种卷积运算装置,其特征在于,包括:
矩阵读取模块,用于在存储器中读取样本数据矩阵以及与所述样本数据矩阵对应的卷积核矩阵;
预处理模块,用于对所述样本数据矩阵执行展开操作生成第一中间矩阵,并对所述卷积核矩阵执行展开操作生成第二中间矩阵,所述第一中间矩阵与所述第二中间矩阵之间的行数及列数均一致;
卷积执行模块,用于通过所述第二中间矩阵对所述第一中间矩阵执行卷积操作,并生成卷积结果。
10.根据权利要求9所述的卷积运算装置,其特征在于,所述卷积执行模块,包括:
矩阵乘积模块,用于通过所述第二中间矩阵分别对各所述第一中间矩阵执行矩阵乘运算并生成相应的结果矩阵;
累加模块,用于对各所述结果矩阵执行累加操作。
11.根据权利要求9所述的卷积运算装置,其特征在于,所述矩阵读取模块,包括:
存储器读取模块,用于在DDR存储器中读取所述样本数据矩阵,并在HBM2存储器中读取与所述样本数据矩阵对应的卷积核矩阵。
12.一种卷积运算设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至8任一项所述的卷积运算方法的步骤。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至8任一项所述的卷积运算方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010065274.4A CN111310891A (zh) | 2020-01-20 | 2020-01-20 | 一种卷积运算方法、装置、设备及存储介质 |
PCT/CN2020/087105 WO2021147196A1 (zh) | 2020-01-20 | 2020-04-27 | 一种卷积运算方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010065274.4A CN111310891A (zh) | 2020-01-20 | 2020-01-20 | 一种卷积运算方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111310891A true CN111310891A (zh) | 2020-06-19 |
Family
ID=71146891
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010065274.4A Pending CN111310891A (zh) | 2020-01-20 | 2020-01-20 | 一种卷积运算方法、装置、设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111310891A (zh) |
WO (1) | WO2021147196A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111882029A (zh) * | 2020-06-22 | 2020-11-03 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107430537A (zh) * | 2015-03-27 | 2017-12-01 | 英特尔公司 | 从片上dram ecc中提取选择性信息 |
CN108122030A (zh) * | 2016-11-30 | 2018-06-05 | 华为技术有限公司 | 一种卷积神经网络的运算方法、装置和服务器 |
CN108171327A (zh) * | 2017-12-25 | 2018-06-15 | 郑州云海信息技术有限公司 | 一种基于卷积运算的矩阵转化方法、装置及介质 |
CN109871510A (zh) * | 2019-01-08 | 2019-06-11 | 广东浪潮大数据研究有限公司 | 二维卷积运算处理方法、系统、设备及计算机存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190073582A1 (en) * | 2015-09-23 | 2019-03-07 | Yi Yang | Apparatus and method for local quantization for convolutional neural networks (cnns) |
-
2020
- 2020-01-20 CN CN202010065274.4A patent/CN111310891A/zh active Pending
- 2020-04-27 WO PCT/CN2020/087105 patent/WO2021147196A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107430537A (zh) * | 2015-03-27 | 2017-12-01 | 英特尔公司 | 从片上dram ecc中提取选择性信息 |
CN108122030A (zh) * | 2016-11-30 | 2018-06-05 | 华为技术有限公司 | 一种卷积神经网络的运算方法、装置和服务器 |
CN108171327A (zh) * | 2017-12-25 | 2018-06-15 | 郑州云海信息技术有限公司 | 一种基于卷积运算的矩阵转化方法、装置及介质 |
CN109871510A (zh) * | 2019-01-08 | 2019-06-11 | 广东浪潮大数据研究有限公司 | 二维卷积运算处理方法、系统、设备及计算机存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111882029A (zh) * | 2020-06-22 | 2020-11-03 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2021147196A1 (zh) | 2021-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109784372B (zh) | 一种基于卷积神经网络的目标分类方法 | |
CN110020639B (zh) | 视频特征提取方法及相关设备 | |
JP6373489B2 (ja) | カスケーディングスタイルシートファイルの圧縮 | |
CN111639699B (zh) | 一种图像特征提取的方法、系统、设备及可读存储介质 | |
EP3771999B1 (en) | Method and apparatus for extracting image data in parallel from multiple convolution windows, device, and computer-readable storage medium | |
CN110866862B (zh) | 基于缓冲器的数据处理方法、装置、存储介质及电子设备 | |
CN111310891A (zh) | 一种卷积运算方法、装置、设备及存储介质 | |
CN111639701B (zh) | 一种图像特征提取的方法、系统、设备及可读存储介质 | |
CN111028136B (zh) | 一种人工智能处理器处理二维复数矩阵的方法和设备 | |
CN112561074A (zh) | 一种机器学习可解释方法、装置及存储介质 | |
CN113361537B (zh) | 基于通道注意力的图像语义分割方法及装置 | |
CN113128583B (zh) | 基于多尺度机制和残差注意力的医学图像融合方法及介质 | |
CN111967478B (zh) | 一种基于权重翻转的特征图重构方法、系统、存储介质及终端 | |
CN111027670B (zh) | 特征图处理方法、装置、电子设备及存储介质 | |
EP3591608A1 (en) | Method and system for image reconstruction using deep dictionary learning (ddl) | |
CN110059563B (zh) | 一种文本处理方法和装置 | |
CN107862316A (zh) | 卷积运算方法及装置 | |
CN110414663B (zh) | 神经网络的卷积实现方法及相关产品 | |
CN114220132A (zh) | 指纹图像降噪方法及其装置 | |
CN116010313A (zh) | 一种通用、可配置的图像滤波计算多行输出系统和方法 | |
CN113496228B (zh) | 一种基于Res2Net、TransUNet和协同注意力的人体语义分割方法 | |
CN110032564B (zh) | 一种数据表关联关系的确定方法和装置 | |
CN111079643A (zh) | 基于神经网络的人脸检测方法、装置和电子设备 | |
CN112765542A (zh) | 运算装置 | |
CN112950462B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200619 |
|
RJ01 | Rejection of invention patent application after publication |