CN110443357B - 卷积神经网络计算优化方法、装置、计算机设备及介质 - Google Patents
卷积神经网络计算优化方法、装置、计算机设备及介质 Download PDFInfo
- Publication number
- CN110443357B CN110443357B CN201910727117.2A CN201910727117A CN110443357B CN 110443357 B CN110443357 B CN 110443357B CN 201910727117 A CN201910727117 A CN 201910727117A CN 110443357 B CN110443357 B CN 110443357B
- Authority
- CN
- China
- Prior art keywords
- input
- feature map
- size
- output
- neural network
- 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
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/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
Abstract
本发明实施例公开了一种卷积神经网络计算优化方法、装置、计算机设备及介质。所述方法包括:获取优化后的卷积神经网络的待输入特征图;根据所述优化后的卷积神经网络对应的特征图最优尺寸与所述待输入特征图的尺寸的关系,确定匹配的输入调整方式,对所述待输入特征图的尺寸进行调整;将调整后的待输入特征图输入到所述优化后的卷积神经网络中,得到所述优化后的卷积神经网络输出的输出特征图;根据所述输入调整方式确定所述输出特征图的输出调整方式,并对所述输出特征图进行调整,将调整后的输出特征图作为所述卷积神经网络的目标输出特征图结果。本发明实施例可以使卷积神经网络适配硬件设备的加速性能,提高卷积神经网络的计算速度。
Description
技术领域
本发明实施例涉及数据处理领域,尤其涉及一种卷积神经网络计算优化方法、装置、计算机设备及介质。
背景技术
随着大数据的高速发展,对神经网络模型的需求越来越多。通常神经网络模型需要经过样本数据训练形成预设功能的模型,以进行未知样本预测等数据处理操作。
目前,随着数据量越来越大,神经网路模型的运算量也变得越来越大,导致神经网络模型的运算效率低。为了解决上述问题,现有的方式是采用硬件方式进行加速。例如,在卷积神经网络模型中,可以针对卷积设计硬件电路,如张量核心(Tensor Core),以加快卷积的运算速度,从而加快整个卷积神经网络模型的运算速度。
但基于减少芯片面积和功耗以及降低硬件设计复杂度的考虑,往往Tensor Core的设计只会针对部分特定的卷积形状(卷积核的行和列)做极致的加速,而对于一些不符合特定形状的卷积,Tensor Core的加速性能较差。若改变卷积神经网络模型的已经训练好的参数以适配Tensor Core,会导致卷积神经网络需要重新进行训练,反而增加了卷积神经网络的运算量,降低卷积神经网络的使用效率。
发明内容
本发明实施例提供一种卷积神经网络计算优化方法、装置、计算机设备及介质,可以提高卷积神经网络的计算速度。
第一方面,本发明实施例提供了一种卷积神经网络计算优化方法,包括:
获取优化后的卷积神经网络的待输入特征图;
根据所述优化后的卷积神经网络对应的特征图最优尺寸与所述待输入特征图的尺寸的关系,确定匹配的输入调整方式,对所述待输入特征图的尺寸进行调整;
将调整后的待输入特征图输入到所述优化后的卷积神经网络中,得到所述优化后的卷积神经网络输出的输出特征图;
根据所述输入调整方式确定所述输出特征图的输出调整方式,并对所述输出特征图进行调整,将调整后的输出特征图作为所述卷积神经网络的目标输出特征图结果;
其中,所述优化后的卷积神经网络是基于本机设备的所述特征图最优尺寸和卷积核最优尺寸对所述卷积神经网络进行调整得到的,所述优化后的卷积神经网络的卷积层中的输入特征图的尺寸为所述特征图最优尺寸;所述优化后的卷积神经网络的卷积层中的卷积核的尺寸为所述卷积核最优尺寸。
第二方面,本发明实施例提供了一种卷积神经网络计算优化方法,应用与本机设备适配的卷积神经网络中,包括:
通过第一节点获取待输入特征图,并基于特征图最优尺寸与所述待输入特征图的尺寸的关系,确定匹配的输入调整方式,对所述待输入特征图的尺寸进行调整;
将调整后的待输入特征图输入到优化后的卷积层进行卷积计算,得到输出特征图;
通过第二节点根据所述输入调整方式确定输出调整方式,并对所述输出特征图进行调整,将调整后的输出特征图作为所述卷积神经网络的目标输出特征图结果输出;
其中,所述优化后的卷积层是基于本机设备的所述特征图最优尺寸和卷积核最优尺寸对所述卷积层进行调整得到的,所述优化后的卷积层中的输入特征图的尺寸为所述特征图最优尺寸;所述优化后的卷积层中的卷积核的尺寸为所述卷积核最优尺寸。
第三方面,本发明实施例提供了一种卷积神经网络计算优化装置,包括:
待输入特征图获取模块,用于获取优化后的卷积神经网络的待输入特征图;
输入调整方式确定模块,用于根据所述优化后的卷积神经网络对应的特征图最优尺寸与所述待输入特征图的尺寸的关系,确定匹配的输入调整方式,对所述待输入特征图的尺寸进行调整;
卷积计算模块,用于将调整后的待输入特征图输入到所述优化后的卷积神经网络中,得到所述优化后的卷积神经网络输出的输出特征图;
输出调整方式确定模块,用于根据所述输入调整方式确定所述输出特征图的输出调整方式,并对所述输出特征图进行调整,将调整后的输出特征图作为所述卷积神经网络的目标输出特征图结果;其中,所述优化后的卷积神经网络是基于本机设备的所述特征图最优尺寸和卷积核最优尺寸对所述卷积神经网络进行调整得到的,所述优化后的卷积神经网络的卷积层中的输入特征图的尺寸为所述特征图最优尺寸;所述优化后的卷积神经网络的卷积层中的卷积核的尺寸为所述卷积核最优尺寸。
第四方面,本发明实施例提供了一种卷积神经网络计算优化装置,应用与本机设备适配的卷积神经网络中,包括:
输入特征图调整模块,用于通过第一节点获取待输入特征图,并基于特征图最优尺寸与所述待输入特征图的尺寸的关系,确定匹配的输入调整方式,对所述待输入特征图的尺寸进行调整;
卷积计算模块,用于将调整后的待输入特征图输入到优化后的卷积层进行卷积计算,得到输出特征图;
输出特征图调整模块,用于通过第二节点根据所述输入调整方式确定输出调整方式,并对所述输出特征图进行调整,将调整后的输出特征图作为所述卷积神经网络的目标输出特征图结果输出;其中,所述优化后的卷积层是基于本机设备的所述特征图最优尺寸和卷积核最优尺寸对所述卷积层进行调整得到的,所述优化后的卷积层中的输入特征图的尺寸为所述特征图最优尺寸;所述优化后的卷积层中的卷积核的尺寸为所述卷积核最优尺寸。
第五方面,本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如本发明实施例中任一所述的卷积神经网络计算优化方法。
第六方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例中任一所述的卷积神经网络计算优化方法。
本发明实施例通过获取针对输入特征图尺寸以及卷积尺寸进行优化后的卷积神经网络,同时,优化后的卷积神经网络卷积层中的输入特征图的尺寸为特征图最优尺寸,以及卷积层中的卷积核的尺寸为卷积核最优尺寸,将待输入特征图调整成匹配的优化后的卷积神经网络对应的特征图最优尺寸,反馈至卷积神经网络中,以使卷积神经网络以输入特征图最优尺寸进行卷积计算,从而实现卷积神经网络以硬件电路最适合的输入特征图形状以及卷积核形状进行卷积运算,解决了现有技术中卷积神经网络的卷积层的输入特征图形状以及卷积核形状无法适配硬件电路匹配的输入特征图最优尺寸和卷积核最优尺寸,导致卷积神经网络的速度无法提高的问题,可以适配硬件电路匹配的输入特征图最优尺寸和卷积核最优尺寸进行卷积计算,从而提高卷积神经网络的计算速度,提高卷积神经网络的兼容性以及性能。
附图说明
图1是本发明实施例一中的一种卷积神经网络计算优化方法的流程图;
图2a是本发明实施例二中的一种卷积神经网络计算优化方法的流程图;
图2b是本发明实施例二中的一种输入分割处理的适用场景的示意图;
图2c是本发明实施例二中的一种输出拼接处理的适用场景的示意图;
图2d是本发明实施例二中的一种输入拼接处理的适用场景的示意图;
图2e是本发明实施例二中的一种输出分割处理的适用场景的示意图;
图2f是本发明实施例二中的一种卷积核分割处理的适用场景的示意图;
图2g是本发明实施例二中的一种卷积核补零处理的适用场景的示意图;
图2h是本发明实施例二中的一种输出剔零处理的适用场景的示意图;
图3是本发明实施例三中的一种卷积神经网络计算优化方法的流程图;
图4是本发明实施例四中的一种卷积神经网络计算优化装置的结构示意图;
图5是本发明实施例五中的一种卷积神经网络计算优化装置的结构示意图;
图6是本发明实施例六中的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一中的一种卷积神经网络计算优化方法的流程图,本实施例可适用于针对尺寸优化的卷积神经网络进行卷积计算的情况,该方法可以由本发明实施例提供的卷积神经网络计算优化装置来执行,该装置可采用软件和/或硬件的方式实现,并一般可集成电子设备中,例如,终端设备或服务器等。如图1所示,本实施例的方法具体包括:
S110,获取优化后的卷积神经网络的待输入特征图;其中,所述优化后的卷积神经网络是基于本机设备的所述特征图最优尺寸和卷积核最优尺寸对所述卷积神经网络进行调整得到的,所述优化后的卷积神经网络的卷积层中的输入特征图的尺寸为所述特征图最优尺寸;所述优化后的卷积神经网络的卷积层中的卷积核的尺寸为所述卷积核最优尺寸。
卷积神经网络可以是指一类包含卷积计算且具有深度结构的前馈神经网络(Feedforward Neural Networks),是深度学习(Deep Learning)的代表算法之一。具体的,卷积神经网络的结构包括输入层、隐含层和输出层,其中,隐含层包括卷积层、池化层和全连接层。卷积层的功能是对输入数据进行特征提取,内部包含多个卷积核,卷积参数包括卷积核尺寸、步长和填充。其中,卷积神经网络可以具备任意功能,例如,计算机视觉(如图像识别、物体识别、姿态估计或神经风格转换等)、自然语言处理(如文字识别)和语音处理(如语音识别)等,此外,卷积神经网络还具备其他功能,对此,本发明实施例不作具体限制。
在本发明实施例中,卷积神经网络的输入数据需要进行预处理(如归一化),得到输入特征图,与卷积层中的卷积核进行卷积计算。
优化后的卷积神经网络实际是与本机设备适配的卷积神经网络,其内部的输入特征图尺寸为本机适配的特征图最优尺寸,内部的卷积核的尺寸为本机适配的卷积核最优尺寸。其中,本机设备可以是指运行卷积神经网络的计算机设备,如台式计算机。
优化后的卷积神经网络可以是指尺寸参数修改为最优尺寸参数,其他参数不变的卷积神经网络。其中,最优尺寸可以是指适配本机设备的加速最佳的尺寸。
可以理解的是,本机设备仅会针对部分特定的卷积形状做加速,对于除特定的卷积形状之外的卷积形状的加速效果差,其中,卷积形状包括输入特征图形状和卷积核形状。从而,本机设备的特征图最优尺寸可以是指本机设备匹配的加速效果最好的特征图的尺寸,同时本机设备的卷积核最优尺寸可以是指本机设备匹配的加速效果最好的卷积核的尺寸。具体的,尺寸包括行和列。
需要说明的是,加速效果最好的特征图的尺寸或加速效果最好的卷积核的尺寸可以包括两个尺寸数值或者更多个尺寸数值,可以随机选择一个作为最优尺寸,或者根据原有的卷积神经网络的输入特征图的尺寸或卷积核的尺寸,选择最接近的尺寸作为最优尺寸,此外,还有其他方式确定最优尺寸,对此,本发明实施例不做具体限制。
其中,优化后的卷积神经网络仅有尺寸参数进行修改而卷积计算的语义仍保持一致,输出结果完全相同,其他参数没有修改,也即,优化后的卷积神经网络中预先训练得到的参数也没有修改,从而,优化后的卷积神经网络还可以采用之前训练结果进行执行后续训练任务或者识别任务,从而,避免优化后的卷积神经网络在优化后需要进行重新训练,反而增加了卷积神经网络的运算量,降低卷积神经网络的使用效率的情况,提高卷积神经网络与本机设备的适配程度,加快卷积神经网络的卷积运算速度,从而提高卷积神经网络的计算速度。
待输入特征图可以是指用于卷积计算的输入特征图。其中,待输入特征图是待卷积计算的输入特征图,实际上,待输入特征图适配于优化前的卷积神经网络的尺寸,也即待输入特征图的尺寸不适配优化后的卷积神经网络,从而,需要对待输入特征图进行调整,得到待输入特征图对应的至少一个与输入特征图最优尺寸匹配的输入特征图,用于卷积计算,从而实现本机设备支持的加速运算。
实际上,优化后的卷积神经网络实现的功能与优化前的卷积神经网络实现的功能相同,这需要保证优化后的卷积神经网络的获取的待输入特征图与优化前的卷积神经网络的获取的待输入特征图相同,而且优化后的卷积神经网络的获取的输出特征图与优化前的卷积神经网络的获取的输出特征图相同,也即需要保证优化后的卷积神经网络的卷积计算的语义与优化前的卷积神经网络的卷积计算的语义相同。从而,需要在优化后的卷积神经网络进行卷积计算前将待输入特征图调整成适配特征图最优尺寸的输入特征图单元,以使优化后的卷积神经网络基于输入特征图单元进行卷积计算。同时,还需要在优化后的卷积神经网络进行卷积计算之后将得到的输出特征图调整成与优化前的卷积神经网络的获取的输出特征图尺寸相同的目标输出特征图结果,以保证优化后的卷积神经网络的卷积计算的速度最大,且不改变原有卷积计算的语义。其中,卷积计算的语义用于描述卷积计算的内容,具体可以包括输入属性和输出属性等。
S120,根据所述优化后的卷积神经网络对应的特征图最优尺寸与所述待输入特征图的尺寸的关系,确定匹配的输入调整方式,对所述待输入特征图的尺寸进行调整。
具体的,特征图最优尺寸与待输入特征图的尺寸的关系用于描述特征图最优尺寸与待输入特征图的尺寸之间的大小关系。当待输入特征图的尺寸大于特征图的最优尺寸时,输入调整方式可以是:将待输入特征图拆分成多个与特征图的最优尺寸相同的输入特征图;当待输入特征图的尺寸小于特征图的最优尺寸时,输入调整方式可以是:将多个待输入特征图组合成与特征图的最优尺寸相同的输入特征图。
此外,还可以有其他调整方式,例如,仅有待输入特征图中的行大于特征图的最优尺寸中的行或仅有待输入特征图中的列大于特征图的最优尺寸中的列,输入调整方式可以是:将待输入特征图拆分成与特征图的最优尺寸相同的输入特征图,并在行方向的相邻区域或者列方向的相邻进行补零操作。对此,本发明实施例不做具体限制。
S130,将调整后的待输入特征图输入到所述优化后的卷积神经网络中,得到所述优化后的卷积神经网络输出的输出特征图。
调整后的待输入特征图可以是指与特征图最优尺寸相同的输入特征图。将调整后的待输入特征图输入到优化后的卷积神经网络中用于卷积计算,此时,卷积神经网络中进行卷积运算的输入特征图的尺寸为特征图最优尺寸,以及卷积核的尺寸为卷积核最优尺寸,从而,卷积神经网络的卷积计算为最优尺寸的输入特征图与最优尺寸的卷积核之间的卷积计算,本机设备可以对前述卷积计算进行最大程度的加速,提高卷积计算的速度,从而,提高卷积神经网络的计算速度。
输出特征图具体是指为待输入特征图与卷积核运算得到的特征图,用于描述输入数据提取的特征。可以理解的是,若输出特征图的尺寸与优化前的卷积神经网络得到的输出特征图的尺寸不一致,由于卷积神经网络其他参数未修改,会导致卷积神经网络之前的训练参数均无法适用于当前输出特征图,从而导致卷积神经网络针对输出特征图的后续操作(例如池化)出现错误等。由此,需要将调整后的待输入特征图经过卷积计算得到的输出特征图进行调整,得到与优化前的卷积神经网络得到的输出特征图相同的输出特征图,保证卷积神经网络的原本的卷积运算语义,也即卷积神经网络不会因为优化而出现错误以及无法使用之前预先训练得到的训练参数等,从而,提高卷积神经网络优化后的稳定性和质量。
S140,根据所述输入调整方式确定所述输出特征图的输出调整方式,并对所述输出特征图进行调整,将调整后的输出特征图作为所述卷积神经网络的目标输出特征图结果。
针对待输入特征图的调整方式,对输出特征图进行逆调整,保证输出特征图与优化前的卷积神经网络中对应的输出特征图相同,避免优化操作造成的不良影响,如输出特征图的尺寸参数改变造成后续池化操作的结果与优化前的结果不同,进而影响最后的卷积神经网络的最终识别结果。
示例性的,待输入特征图的调整方式为:将待输入特征图拆分成多个与特征图的最优尺寸相同的输入特征图,相应的,输出特征图的调整方式为:根据拆分方式和拆分后的多个输出特征图,组合形成一个输出特征图;输入特征图的调整方式为:将多个待输入特征图组合成与特征图的最优尺寸相同的输入特征图,相应的,输出特征图的调整方式为:根据组合方式和组合后的输出特征图,拆分形成多个输出特征图。此外,还有其他输出调整方式,对此,本发明实施例不作具体限制。
目标输出特征图结果与优化前的卷积神经网络中对应的输出特征图相同,用于优化后的卷积神经网络进行后续操作。实际上,优化后的卷积神经网络在得到目标输出特征图结果之后进行的后续操作与优化前的卷积神经网络对应的后续操作相同,也即优化后的卷积神经网络仅仅是在卷积计算时,将卷积层的输入特征图与卷积核的卷积计算优化为最优尺寸的输入特征图与最优尺寸的卷积核的卷积计算,以适配本机设备的加速性能的尺寸需求。
本发明实施例通过获取针对输入特征图尺寸以及卷积尺寸进行优化后的卷积神经网络,同时,优化后的卷积神经网络卷积层中的输入特征图的尺寸为特征图最优尺寸,以及卷积层中的卷积核的尺寸为卷积核最优尺寸,将待输入特征图调整成匹配的优化后的卷积神经网络对应的特征图最优尺寸,反馈至卷积神经网络中,以使卷积神经网络以输入特征图最优尺寸进行卷积计算,从而实现卷积神经网络以硬件电路最适合的输入特征图形状以及卷积核形状进行卷积运算,解决了现有技术中卷积神经网络的卷积层的输入特征图形状以及卷积核形状无法适配硬件电路匹配的输入特征图最优尺寸和卷积核最优尺寸,导致卷积神经网络的速度无法提高的问题,可以适配硬件电路匹配的输入特征图最优尺寸和卷积核最优尺寸进行卷积计算,从而提高卷积神经网络的计算速度,提高卷积神经网络的兼容性以及运算性能。
实施例二
图2a为本发明实施例二中的一种卷积神经网络计算优化方法的流程图,本实施例以上述实施例为基础进行具体化,将步骤根据所述优化后的卷积神经网络对应的特征图最优尺寸与所述待输入特征图的尺寸的关系,确定匹配的输入调整方式,具体化为:若所述待输入特征图的尺寸大于所述特征图最优尺寸,确定所述输入调整方式为输入分割处理;所述输入分割处理用于将所述待输入特征图分割成与所述特征图最优尺寸相同的多个输入特征图单元,在所述待输入特征图中处于相邻状态的两个输入特征图单元不全相同;若所述待输入特征图的尺寸小于所述特征图最优尺寸,确定所述调整方式为输入拼接处理;所述输入拼接处理用于将至少一个所述待输入特征图拼接成与所述特征图最优尺寸相同的输入特征图单元;所述输入特征图单元中每两个相邻输入特征图之间间隔区域为零。具体的,本实施例的方法具体包括:
S210,获取优化后的卷积神经网络的待输入特征图;其中,所述优化后的卷积神经网络是基于本机设备的所述特征图最优尺寸和卷积核最优尺寸对所述卷积神经网络进行调整得到的,所述优化后的卷积神经网络的卷积层中的输入特征图的尺寸为所述特征图最优尺寸;所述优化后的卷积神经网络的卷积层中的卷积核的尺寸为所述卷积核最优尺寸。
本实施例中的优化后的卷积神经网络、待输入特征图、本机设备、特征图最优尺寸、卷积核最优尺寸、输出特征图、输出特征图结果、输入调整方式和输出调整方式均可以参考前述实施例的描述。
S220,若所述待输入特征图的尺寸大于所述特征图最优尺寸,确定所述输入调整方式为输入分割处理;所述输入分割处理用于将所述待输入特征图分割成与所述特征图最优尺寸相同的多个输入特征图单元,在所述待输入特征图中处于相邻状态的两个输入特征图单元不全相同。
具体的,待输入特征图的尺寸大于特征图最优尺寸可以包括:待输入特征图的行大于特征图最优尺寸中的行,和/或待输入特征图的列大于特征图最优尺寸中的列。
在待输入特征图中处于相邻状态的两个输入特征图单元不全相同,具体是指相邻状态的两个输入特征图单元部分重叠,也即处于相邻状态的两个输入特征图单元存在设定行数量的行相同,或者存在设定列数量的列相同。例如,相邻状态的两个输入特征图单元中有2行相同,或者有3列相同。
在一个具体的例子中,图2b为对待输入特征图进行输入分割处理的适用场景的示意图。待输入特征图的参数为:[N*H*W*Cin],其中,N表示待输入特征图的样本数,H表示待输入特征图的行数,W表示待输入特征图的列数,Cin表示输入通道数。经过变换后形成输入特征图单元的参数为:[(N*Nt)*Ht*Wt*Cin],其中,N*Nt表示待输入特征图的样本数,Ht表示待输入特征图的行数,Wt表示待输入特征图的列数,Cin表示输入通道数。具体如图2b所示,将待输入特征图的H行调整为输入特征图单元Ht行,将待输入特征图W列调整为输入特征图单元Wt列。具体的,将待输入特征图分割成Nt=n×n个输入特征图单元。其中,输入特征图单元0_0与输入特征图单元0_1重叠了S-1列,输入特征图单元0_0与输入特征图单元1_0重叠了R-1行。其中,Nt=ceil(H/(Ht-(R-1)))*ceil(W/(Wt-(S-1))),其中,ceil表示向上取整。在各输入特征图单元之间设置重叠区域是为了保证原计算中每个完整的窗口里面的计算不会因为分割操作而丢失数据,从而保证数据的完整性,以及保证卷积计算的准确性。
其中,S为卷积核的列数(宽)或卷积窗的列数(宽),R为卷积核的行数(高)或卷积窗的行数(高)。也即重叠区域的大小由卷积核的行和列决定,具体的,重叠区域的行数由卷积核的行数确定,重叠区域的列数由卷积核的列数确定。重叠区域的行数等于卷积核的行数减1得到的结果,重叠区域的列数等于卷积核的列数减1得到的结果。
在上述例子的基础上,以Nt输入特征图单元分别与卷积核进行卷积计算,得到Nt个输出特征图,也即,此时输出特征图的参数为:[(N*Nt)*Ht*Wt*Cout]。由此可见,每个输出特征图的所有数据并不是最终全部的有效数据。最终的卷积运算结果需要对Nt个输出特征图的结果进行拼接。
需要说明的是,如果Nt个输入特征图单元拼接形成区域的面积小于输入特征图的面积,但若此时增加任何一个输入特征图单元所形成的区域无法包含于输入特征图,也即此时形成的区域与输入特征图部分重叠,也就是说输入特征图无法正好分割成Nt个输入特征图单元。可以通过对Nt个输入特征图单元形成的区域的边缘进行补零,形成与输入特征图的面积相同的区域。
可选的,所述根据所述输入调整方式确定所述输出特征图的输出调整方式,包括:如果存在所述输入调整方式,且所述输入调整方式为对所述输入特征图的输入分割处理,则所述输出调整方式包括输出拼接处理,所述输出拼接处理用于根据每两个所述输入特征图单元的重叠区域对所述输入特征图匹配的至少两个所述输出特征图进行拼接。
实际上,可以基于预先标注的重叠区域的标记信息进行输出特征图的拼接。或者可以基于预先标注的输入特征图单元的标记信息进行输出特征图的拼接。其中,标记信息用于确定重叠区域的在待输入特征图中的位置,或者用于确定输入特征图单元在待输入特征图中的位置。示例性的,根据每个重叠区域的位置信息或每个输入特征图单元的位置信息,确定对应的输出特征图的位置信息,从而,根据各输出特征图的位置信息,确定各输出特征图的位置关系,将各输出特征图置于相应的位置处,进行拼接,形成目标输出特征图。
在一个具体的例子中,图2c为对输出特征图进行输出拼接处理的适用场景的示意图。如前例,待输入特征图的参数为:[N*H*W*Cin],经过变换后形成输入特征图单元的参数为:[(N*Nt)*Ht*Wt*Cin];相应的,输入特征图单元对应的输出特征图的参数为:[(N*Nt)*Ht*Wt*Cout],而待输入特征图对应的输出特征图的参数为:[N*H*W*Cout],其中,Cout为输出通道数。为了保证卷积神经网络的卷积计算的语义在优化前后的一致性,需要将输出特征图进行拼接,得到目标输出特征图结果。
实际上,由于相邻的两个输入特征图单元存在重叠区域,对应的两个输出特征图中也存在重叠区域,实际上,两个输出特征图中的部分重叠区域实际是无效数据,可以将有效数据的区域进行拼接,得到卷积语义相同的目标输出特征图结果。
具体如图2c所示,将输出特征图中的重叠区域删除,得到有效输出特征图,将有效输出特征图按照匹配的输入特征图单元的位置关系进行拼接,得到目标输出特征图结果。具体的,针对每两个相邻的输入特征图单元对应的输出特征图,分别针对输出特征图确定无效数据区域进行删除得到有效输出特征图。其中,将在卷积窗移动到与输入特征图单元部分重叠的位置时计算得到的卷积计算结果作为无效数据,无效数据组成的区域即为无效数据区域。
示例性的,卷积窗的列数为S列,卷积窗的步长为1,卷积窗需要从左往右以步长为1进行移动,在水平方向上存在左右相邻的两个输入特征图单元,在水平方向上的重叠区域的列数为S-1列。当卷积窗的最右边一列与左边输入特征图单元的最右边一列重叠时,也即,卷积窗的最右边一列与重叠区域中的最右边一列重叠,此时计算得到的数据为有效数据,当卷积窗再向右移动一列,此时,卷积窗与左边输入特征图单元部分重叠,此时,得到的卷积计算结果为左边输入特征图单元对应的无效数据。以此类推,卷积窗继续往右边,得到的卷积计算结果均为左边输入特征图单元对应的无效数据。对于右边输入特征图单元来说,当卷积窗的最右边一列与左边输入特征图单元的最右边一列重叠时,卷积窗与右边输入特征图单元部分重叠,此时,得到的卷积计算结果为右边输入特征图单元对应的无效数据。当卷积窗再向右移动一列,此时,卷积窗的最左边一列与右边输入特征图单元的最左边一列重叠,也即卷积窗在右边输入特征图单元的区域范围内,得到的卷积计算结果为右边输入特征图单元对应的有效数据。从而,将左边输入特征图单元卷积计算得到的有效输出特征图单元与右边输入特征图单元卷积计算得到的有效输出特征图单元拼接,也即通过右边输入特征图单元的重叠区域的有效的卷积计算结果替换左边输入特征图单元的重叠区域的无效的卷计算结果。由此,左边输入特征图单元的有效数据的范围是,从卷积窗第一次与左边输入特征图单元完整重叠到卷积窗最后一次与左边输入特征图单元能够完整重叠的卷积运算为止,之后的有效数据就需要从右边输入特征图单元的卷积运算结果中取得。这样,可以直接得到完整的原始语义的有效输出数据,从而避免数据计算错误或丢失。相应的,在行的方向上,也是相同原理,此处不再赘述。
将Nt个有效输出特征图进行拼接得到一个输出特征图,作为目标输出特征图结果。
通过根据输入分割处理确定输出调整方式为输出拼接处理,对分割形成的多个输入特征图单元分别经过卷积计算得到的多个输出特征图进行拼接,得到卷积语义相同的输出特征图结果,保证优化前后卷积神经网络的卷积语义保持一致,提高卷积神经网络优化的稳定性,以及保证优化后的卷积神经网络的准确率。
S230,若所述待输入特征图的尺寸小于所述特征图最优尺寸,确定所述调整方式为输入拼接处理;所述输入拼接处理用于将至少一个所述待输入特征图拼接成与所述特征图最优尺寸相同的输入特征图单元;所述输入特征图单元中每两个相邻输入特征图之间间隔区域为零。
具体的,待输入特征图的尺寸小于特征图最优尺寸可以包括:待输入特征图的行小于特征图最优尺寸中的行,且待输入特征图的列小于特征图最优尺寸中的列。间隔区域可以是指,相邻两个输入特征图中间的区域。如果相邻的两个输入特征图是无缝拼接,该相邻两个输入特征图之间的间隔区域为空。
当待输入特征图尺寸小于特征图最优尺寸时,可以通过组合多个输入特征图的方式形成特征图最优尺寸的输入特征图单元。需要说明的是,如果待输入特征图尺寸大于特征图最优尺寸的一半,则直接对待输入特征图进行补零处理,得到特征图最优尺寸的输入特征图单元,其中,待输入特征图尺寸大于特征图最优尺寸的一半是指,待输入特征图的行大于特征图最优尺寸中的行的一半,或待输入特征图的列大于特征图最优尺寸中的列的一半。
在一个具体的例子中,图2d为对待输入特征图进行输入拼接处理的适用场景的示意图。待输入特征图的参数为:[N*H*W*Cin],其中,N表示样本数,H表示行数(又称图像高度),W表示列数(又称图像宽度),Cin表示通道数。经过变换后形成输入特征图单元的参数为:[(N/Nt)*Ht*Wt*Cin],其中,N/Nt表示样本数,Ht表示行数,Wt表示列数,Cin表示通道数。具体如图2d所示,将待输入特征图的H行调整为输入特征图单元Ht行,将待输入特征图W列调整为输入特征图单元Wt列。具体的,将Nt=n×n个待输入特征图拼接成一个输入特征图单元。其中,输入特征图单元0_0与输入特征图单元0_1之间的间隔区域的列数为S-1,并均填充(padding)了零,输入特征图单元0_0与输入特征图单元1_0之间的间隔区域的行数为R-1行,并均填充了零。其中,Nt=ceil(Ht/(H+(R-1)))*ceil(Wt/(W+(S-1))),其中,ceil表示向上取整。其中,补充零的间隔区域在进行卷积核计算时,得到的计算结果还是零,这样,当卷积窗一部分落在间隔区域,另一部分落在输入特征图有效数据区域时,卷积窗落在输入特征图有效数据区域的部分与该有效数据区域进行卷积计算时,为有效数据对应的卷积计算结果,从而,整个卷积窗与输入特征图的卷积计算结果为有效数据对应的卷积计算结果与零之和,也即有效数据对应的卷积计算结果,由此,补充零的间隔区域不会干扰输入特征图单元中的有效数字区域的卷积计算结果,保证待输入特征图卷积计算的语义与输入特征图单元的卷积计算的语义相同。
其中,间隔区域的大小由卷积核的行和列决定,具体的,间隔区域的行数由卷积核的行数确定,间隔区域的列数由卷积核的列数确定。间隔区域的行数等于卷积核的行数减1得到的结果,间隔区域的列数等于卷积核的列数减1得到的结果。
需要说明的是,如果Nt个输入特征图拼接形成区域的面积小于输入特征图单元的面积,但若此时增加任何一个输入特征图所形成的区域无法包含于输入特征图,也即此时形成的区域与输入特征图部分重叠,也就是说Nt个输入特征图拼接形成区域无法正好与输入特征图单元相同。可以通过对Nt个输入特征图形成的区域的边缘进行补零,形成与输入特征图单元的面积相同的区域。
在上述例子的基础上,以得到的输入特征图单元与卷积核进行卷积计算,得到对应的输出特征图,此时输出特征图的参数为:[(N/Nt)*Ht*Wt*Cout]。需要在输出特征图中截取有效数据,得到原本的输出特征图作为目标特征图结果。
可选的,所述根据所述输入调整方式确定所述输出特征图的输出调整方式,包括:如果存在所述输入调整方式,且所述输入调整方式为对所述输入特征图的输入拼接处理,则所述输出调整方式包括输出分割处理,所述输出分割处理用于根据每两个所述输入特征图单元的间隔区域对所述输出特征图进行分割。
实际上,每个间隔区域经过卷积核进行卷积计算得到的结果均为零。可以基于预先标注的间隔区域的标记信息进行输出特征图的分割。或者可以基于预先标注的输入特征图的标记信息进行输出特征图的分割。其中,标记信息用于确定间隔区域的在输入特征图单元中的位置,或者用于确定待输入特征图在输入特征图单元中的位置。示例性的,根据每个间隔区域的位置信息或每个待输入特征图的位置信息,确定输出特征图中待分割的位置点,也即确定各目标输出特征图的位置信息,从而,根据各目标输出特征图的位置信息,对输出特征图进行分割,形成多个目标输出特征图。
在一个具体的例子中,图2e为对输出特征图进行输出分割处理的适用场景的示意图。
如前例,待输入特征图的参数为:[N*H*W*Cin],经过变换后形成输入特征图单元的参数为:[(N/Nt)*Ht*Wt*Cin];相应的,输入特征图单元对应的输出特征图的参数为:[(N/Nt)*Ht*Wt*Cout],而待输入特征图对应的输出特征图的参数为:[N*H*W*Cout]。为了保证卷积神经网络的卷积计算的语义在优化前后的一致性,需要将输出特征图进行分割,得到目标输出特征图结果。
实际上,填充零的间隔区域是无效数据,可以确定输出特征图中的间隔区域,并根据间隔区域的位置信息进行分割处理,得到的多个输出特征图,作为目标输出特征图结果。
具体如图2e所示,以输出特征图中的间隔区域为基准,删除间隔区域,得到多个的有效输出特征图,作为目标输出特征图结果。具体的,可以确定待输入特征图对应的输出特征图的尺寸,在输出特征图中,进行截取,实现将间隔区域剔除,从而得到Nt个有效输出特征图,作为目标输出特征图结果。
通过根据输入拼接处理确定输出调整方式为输出分割处理,对拼接形成的输入特征图单元分别经过卷积计算得到的输出特征图进行分割,得到卷积语义相同的输出特征图结果,保证优化前后卷积神经网络的卷积语义保持一致,提高卷积神经网络优化的稳定性,以及保证优化后的卷积神经网络的准确率。
S240,将调整后的待输入特征图输入到所述优化后的卷积神经网络中,得到所述优化后的卷积神经网络输出的输出特征图。
S250,根据所述输入调整方式确定所述输出特征图的输出调整方式,并对所述输出特征图进行调整,将调整后的输出特征图作为所述卷积神经网络的目标输出特征图结果。
本发明实施例通过根据待输入特征图的尺寸与特征图最优尺寸的大小关系确定输入调整方式为输入分割处理或输入拼接处理,实现在待输入特征图的尺寸小于特征图最优尺寸时,将多个待输入特征图拼接形成与特征图最优尺寸相同的输入特征图单元;以及在待输入特征图的尺寸大于特征图最优尺寸时,将一个待输入特征图分割形成与特征图最优尺寸相同的输入特征图单元,将原本的待输入特征图调整成适配特征图最优尺寸的输入特征图单元输入到优化后的卷积神经网络进行卷积计算,以使优化后的卷积神经网络的卷积计算适配本机设备,达到加速最快的效果,从而,加快卷积神经网络的卷积计算。
在上述实施例的基础上,可选的,所述优化后的卷积神经网络的卷积层中的卷积核通过卷积核调整方式调整形成;所述卷积核调整方式基于所述卷积核的尺寸与所述卷积核最优尺寸的关系确定;其中,所述卷积核调整方式包括卷积核补零处理或卷积核分割处理,所述卷积核分割处理用于在所述卷积核的尺寸大于所述卷积核最优尺寸时,将所述卷积核分割成与所述卷积核最优尺寸相同的卷积核单元,每个卷积核单元不同;所述卷积核补零处理用于在所述卷积核的尺寸小于所述卷积核最优尺寸时,在所述卷积核的相邻区域中补零,以得到与所述卷积核最优尺寸相同的卷积核单元。
具体的,卷积核的尺寸大于卷积核最优尺寸可以包括:卷积核的行大于卷积核最优尺寸中的行,和/或待卷积核的列大于卷积核最优尺寸中的列。
卷积核的尺寸小于卷积核最优尺寸可以包括:卷积核的行小于卷积核最优尺寸中的行,且待卷积核的列小于卷积核最优尺寸中的列。
其中,输入特征图的参数具体包括四个维度:样本数、行数、列数和通道数。而卷积核的参数具体包括四个维度:行数、列数、输入通道数和输出通道数。卷积计算的过程具体为:以卷积核尺寸相同的卷积窗在输入特征图中以设定步长进行平移,并在每个位置处确定输入特征图中对应区域,在卷积窗内,翻转后的卷积核与该对应区域进行乘积求和计算,得到该位置处的计算结果,将全部位置对应的计算结果作为卷积计算结果,形成输出特征图。
当卷积核的尺寸大于卷积核最优尺寸时,采用卷积核分割处理,将卷积核分割成与卷积核最优尺寸相同的卷积核单元,每个卷积核单元不同。需要说明的是,由于每个卷积核单元均进行乘积求和运算,若两个卷积核单元存在重叠区域,两个重叠区域的乘积运算的结果相同,但经过求和运算之后,得到的结果不同,由此无法将重叠区域对应的结果从两个卷积核单元的乘积求和运算分离出来,会导致造成卷积计算不准确的问题。由此,分割后的卷积核单元各不相同,可以避免卷积计算错误,从而,提高卷积计算的准确率。
在一个具体的例子中,图2f为对卷积核进行卷积核分割处理的适用场景的示意图。待输入特征图的参数为:[N*H*W*Cin],卷积核的参数为:[R*S*Cin*Cout],其中,R表示卷积核的行数,S表示卷积核的列数,Cin表示输入通道数,Cout表示输出通道数。分割后的卷积核单元的参数为:[Rt*St*(Cin-t*Cin)*Cout],其中,Cin-t*Cin表示输入通道数,Cin-t=ceil(R/Rt)*ceil(S/St)。其中,目标特征区域为在卷积计算过程中输入特征图中与卷积窗对应的区域。
按照卷积计算的过程,卷积核在卷积窗内与输入特征图中对应区域进行乘积之后,还需要对各乘积结果做求和计算,也即,卷积核在卷积窗内,以不同输入通道分别进行乘积,并将全部的乘积结果做求和计算,得到卷积核在该卷积窗内的卷积计算结果。为了保持分割前后卷积计算的语义一致,在该卷积窗内的求和计算的语义转变为在一个更小的卷积窗内先做求和计算,然后在抽象出的新的通道上再做求和计算,在确保不同的卷积核单元对应的待输入特征图的数据正确前提下,卷积计算的语义在卷积核分割前后不发生变化。
也就是说,在卷积核分割成卷积核单元之后,在卷积计算时,需要对输入特征图进行相应调整,才能保持卷积核分割前后得到的输出特征图的结果一致。
具体如图2f所示,实际上,卷积核分割成多个卷积核单元,在原本卷积核的卷积计算过程中,卷积核针对原生输入特征图中卷积窗内对应的目标特征区域进行乘积求和计算,相应的,每个卷积核单元仅针对在目标特征区域中的部分区域进行乘积求和计算。由此,可以根据卷积核单元相对于卷积核的位置信息对原生输入特征图中对应的目标区域进行分割,从目标区域中截取与卷积核单元对应的区域进行卷积计算,同时,将目标区域中该区域以外的区域填充零,也即将不需要进行卷积计算的区域填充零,形成每个卷积核单元对应的目标输入特征图,其中,零区的乘积计算结果为零,从输出特征图中截取有效数据作为卷积核单元匹配的输出特征图,这样可以避免零区计算结果影响到输出特征图。由此,实现卷积核单元与原生输入特征图的卷积窗中对应区域的一一对应。再将每个卷积核单元的乘积求和计算结果进行求和,作为在该卷积窗内的卷积计算结果,由此,得到的卷积计算结果与原输出特征图一致,从而,保证卷积核调整后的输出特征图的结果准确。
实际上,经过等效变换后,原生的卷积计算为:
转换成:
此外,卷积核由R*S变成Rt*St*Cin-t。若Rt可以被R整除,且St可以被S整除,则卷积核不需要在填充零来改变尺寸,以便为了形成整数个卷积核单元。而输入特征图的尺寸需要扩展为原生尺寸的Cin-t,输出特征图的尺寸不发生变化。
实际上,上述每个卷积核单元与匹配的目标输入特征图进行卷积计算结果是原生卷积核在某个卷积窗当前在输入特征图中对应的数据区域的乘积求和计算的过程数据。也就是说,每个卷积核单元与匹配的目标特征图进行卷积计算得到的乘积求和计算结果是原生卷积核在该卷积窗当前对应的数据区域进行的更小的卷积窗内做的乘积求和计算。将每个卷积核单元与匹配的目标输入特征图进行卷积计算结果进行求和计算,得到的结果为原生卷积核在该卷积窗当前对应的数据区域内进行的卷积计算的最终结果。下一步,卷积窗可以在原生输入特征图中进行平移,得到该卷积窗平移一步对应的数据区域,并确定每个卷积核单元与新的匹配的目标输入特征图,重复上述步骤,确定该卷积窗当前对应的数据区域内进行的卷积计算的最终结果,由此,不断循环,直到卷积窗将原生待输入特征图遍历完成。此时,卷积核与待输入特征图的卷积计算完成。
另一方面,当卷积核的尺寸小于卷积核最优尺寸时,采用卷积核补零处理,将卷积核扩展到与卷积核最优尺寸相同的卷积核单元,卷积核以外的区域均填充零。为了保持卷积计算的语义不发生变化,输入特征图需要作出相应的填充零的操作,补零区域的尺寸与卷积核单元中的补零区域的尺寸相同,输入特征图的尺寸由[H*W]转变成[Hnew*Wnew],得到目标输入特征图。经过卷积运算之后,输出特征图的尺寸为[Hnew*Wnew],具体如图2g-图2h所示,可以根据输入特征图在目标输入特征图中的位置关系,确定输出特征图的位置信息,从而确定输出特征图中的目标特征图的位置信息,以从输出特征图中截取出来,作为目标特征图结果。
通过对卷积核进行调整,以使调整后的卷积核单元的尺寸为卷积核最优尺寸,实现对卷积神经网络的优化,使卷积神经网络的卷积核的尺寸调整为本机设备可支持的加速性能最好的尺寸,从而加快卷积神经网络的卷积计算速度。
可选的,所述根据所述输入调整方式确定所述输出特征图的输出调整方式,包括:根据所述输入调整方式和所述卷积核调整方式确定所述输出特征图的输出调整方式。
可以理解的是,输入调整方式包括待输入特征图尺寸的调整,卷积核调整方式包括卷积核尺寸的调整,由于在卷积计算中输出特征图的参数是由输出特征图的参数和卷积核的参数共同决定的,相应的,输出特征图的输出调整方式同样由输入调整方式和卷积核调整方式共同决定。
具体的,根据输入调整方式和卷积核调整方式确定输出特征图的输出调整方式,可以是指,当仅存在输入调整方式时,也即此时卷积核调整方式为零调整,非零调整的输入调整方式结合零调整的卷积核调整方式确定输出调整方式,也可以理解为仅由输入调整方式确定输出调整方式;当仅存在卷积核调整方式时,也即此时输入调整方式为零调整,零调整的输入调整方式结合非零调整的卷积核调整方式确定输出调整方式,也可以理解为仅由卷积核调整方式确定输出调整方式;当同时存在输入调整方式和卷积核调整方式时,由非零调整的输入调整方式和非零调整的卷积核调整方式同时确定输出调整方式。
通过输入调整方式和卷积核调整方式共同确定输出调整方式,同时考虑待输入特征图和卷积核,实现全面考虑输出特征图的影响因素,准确确定输出调整方式。
可选的,所述根据所述输入调整方式和所述卷积核调整方式确定所述输出特征图的输出调整方式,包括下述至少一项:如果存在所述输入调整方式,且所述输入调整方式为对所述待输入特征图的输入分割处理,则所述输出调整方式包括输出拼接处理,所述输出拼接处理用于根据每两个所述输入特征图单元的重叠区域对所述待输入特征图匹配的至少两个所述输出特征图进行拼接;如果存在所述输入调整方式,且所述输入调整方式为对所述待输入特征图的输入拼接处理,则所述输出调整方式包括输出分割处理,所述输出分割处理用于根据每两个所述输入特征图单元的间隔区域对所述输出特征图进行分割;如果存在所述卷积核调整方式,且所述卷积核调整方式为对所述卷积层的卷积核补零处理,则所述输出调整方式包括输出剔零处理,所述输出剔零处理用于将所述输出特征图中的无效区域剔除出去;以及如果存在所述卷积核调整方式,且所述卷积核调整方式为对所述卷积层的卷积核分割处理,则所述输出调整方式包括输出求和处理,所述输出求和处理用于将匹配的至少两个所述输出特征图进行求和计算。
具体的,输入调整方式为待输入特征图的输入分割处理,实际是将待输入特征图分割成与输入特征图最优尺寸相同的多个输入特征图单元,其中,相邻输入特征图单元部分重叠。将多个输入特征图单元分别与卷积核进行卷积计算,对应得到多个输出特征图。实际上,原输出特征图是多个输出特征图组合而成,由此,输出调整方式包括输出拼接处理,用于将多个输出特征图按照匹配的输入特征图单元在待输入特征图的位置关系,进行拼接,得到目标输出特征图结果。
输入调整方式为待输入特征图的输入拼接处理,实际是将多个待输入特征图拼接成与输入特征图最优尺寸相同的输入特征图单元。将该输入特征图单元与卷积核进行卷积计算,对应得到一个输出特征图。实际上,原输出特征图是该输出特征图的部分区域,由此,输出调整方式包括输出分割处理,用于将一个输出特征图按照输入特征图单元中各待输入特征图的位置信息,进行分割,得到与每个待输入特征图的匹配目标输出特征图结果。
实际上,输出分割处理用于保留输出特征图对应的卷积计算结果中的有效数据,将无效数据剔除。具体的,判断卷积计算结果是否为有效数据,取决于卷积窗落在间隔区域的区域面积与一个间隔区域面积的大小关系。如果卷积窗落在间隔区域的面积小于等于一个间隔面积,则此时得到的卷积计算结果为有效数据,需要保留到最终的输出特征图中;如果卷积窗落在间隔区域的面积大于一个间隔面积,则此时得到的卷积计算结果为无效数据,需要被剔除。其中,卷积窗可以与多个间隔区域重叠。
卷积核调整方式为卷积核补零处理,实际是将卷积核相邻区域补零,扩展为与卷积核最优尺寸相同的卷积核单元,相应的,将与该卷积核进行卷积计算的输入特征图相邻区域也进行补零,得到目标输入特征图,将卷积核单元与目标输入特征图进行卷积计算得到输出特征图。实际上,原输出特征图是该输出特征图的部分区域,由此,输出调整方式包括输出剔零处理,用于将一个输出特征图按照卷积核单元中的补零区域对应的无效区域删除,得到与卷积核的匹配目标输出特征图结果。其中,无效区域用于描述输出特征图中剔除区域,具体是指除输出特征图中有效数据区域之外的区域,有效数据区域实际为与输入特征图相对于目标输入特征图的位置关系匹配的区域。示例性的,如图2g-图2h所示,目标输入特征图的补零区域在输入特征图的下边和右边,也即输入特征图位于目标输入特征图的左上角,且行数为H,列数为W。相应的,输出特征图中的无效区域在输出特征图的下边和右边,目标输出特征图结果位于输出特征图的左上角,且行数为H,列数为W。
卷积核调整方式为卷积核分割处理,实际是将卷积核分割成互不相同,且与卷积核最优尺寸相同的卷积核单元。相应的,将在当前卷积窗对应的区域内与每个卷积核单元匹配的区域的相邻区域分别进行填充零,形成与每个卷积核单元匹配的目标输入特征图,其中,所述目标输入特征图的尺寸与原生卷积核进行卷积计算的输入特征图的尺寸相同。卷积计算为每个卷积核单元与匹配的目标输入特征图之间的卷积计算。需要说明的是,每个卷积核单元经过卷积计算得到的输出特征图包含无效区域,从而,需要从输出特征图中截取有效数据区域作为该卷积核单元匹配的目标输出特征图,将每个卷积核单元匹配的目标输出特征图进行求和计算,得到的结果为当前卷积窗对应的区域的卷积计算结果。后续卷积窗继续遍历,直至将待输入特征图遍历完成,得到卷积窗在每个位置下的卷积计算结果,形成目标输出特征图结果。
需要说明的是,如果同时存在输入调整方式和卷积核调整方式,由于卷积核调整会相应带来输入特征图的调整,先进行卷积核调整方式,在卷积核调整完成,以及相应的输入特征图调整完成后,比较调整后的待输入特征图与特征图最优尺寸。并在输入特征图的尺寸与特征图最优尺寸不同时,基于输入调整方式,对输入特征图继续进行调整,最终实现卷积计算过程中的输入特征图的尺寸与特征图最优尺寸相同,卷积核的尺寸与特征图最优尺寸相同。也即,在输入调整方式对待输入特征图进行调整之前,根据卷积核调整方式对待输入特征图进行调整,并基于调整后的待输入特征图与特征图最优尺寸,并根据调整后的待输入特征图与特征图最优尺寸之间的尺寸关系,确定输入调整方式,对输入特征图继续进行调整,其中,输入调整方式可以是零调整或非零调整。相应的,输出调整方式中,先基于输入调整方式匹配的输出调整方式得到第一目标输出特征图,再基于卷积核调整方式匹配的输出调整方式对第一目标输出特征图进行调整,得到第二目标输出特征图,将第二目标输出特征图作为目标输出特征图结果。
通过判断调整方式的类型,确定与类型匹配的输出调整方式,实现针对性确定输出调整方式,提高输出调整方式确定的准确性,而且采用准确的输出调整方式可以保证卷积计算在卷积神经网络优化前后的语义保持一致,提高卷积神经网络的卷积计算的准确性。
实施例三
图3为本发明实施例三中的一种卷积神经网络计算优化方法的流程图,本实施例可适用于针对尺寸优化的卷积神经网络进行卷积计算的情况,该方法应用于与本机设备适配的卷积神经网络中,该方法可以由本发明实施例提供的卷积神经网络计算优化装置来执行,该装置可采用软件和/或硬件的方式实现,并一般可集成电子设备中,例如,终端设备或服务器等。如图3所示,本实施例的方法具体包括:
S310,通过第一节点获取待输入特征图,并基于特征图最优尺寸与所述待输入特征图的尺寸的关系,确定匹配的输入调整方式,对所述待输入特征图的尺寸进行调整。
具体的,卷积神经网络包括多个节点,每个节点的功能不同。
第一节点用于在卷积计算之前对输入特征图进行调整。
本发明实施例中的待输入特征图、特征图最优尺寸、输入调整方式、卷积神经网络、输出调整方式、目标输出特征图结果、卷积核最优尺寸和卷积核等可以参考前述实施例的描述。
具体的,输入调整方式用于调整待输入特征图,以使待输入特征图的尺寸与特征图最优尺寸相同。
S320,将调整后的待输入特征图输入到优化后的卷积层进行卷积计算,得到输出特征图。
S330,通过第二节点根据所述输入调整方式确定输出调整方式,并对所述输出特征图进行调整,将调整后的输出特征图作为所述卷积神经网络的目标输出特征图结果输出;其中,所述优化后的卷积层是基于本机设备的所述特征图最优尺寸和卷积核最优尺寸对所述卷积层进行调整得到的,所述优化后的卷积层中的输入特征图的尺寸为所述特征图最优尺寸;所述优化后的卷积层中的卷积核的尺寸为所述卷积核最优尺寸。
第二节点用于确定输出调整方式以及在卷积计算之后对输出特征图进行调整,得到目标输出特征图结果。
具体的,输出调整方式用于调整输出特征图,以使输出特征图的尺寸与原输出特征图的尺寸相同,其中,原输出特征图可以是指优化前的卷积神经网络中待输入特征图与原生卷积核的卷积计算得到的输出特征图。或者,输出调整方式用于将输出特征图调整成参数与原输出特征图的参数相同的目标输出特征图结果。实际上输出调整方式用于确保优化前后输出特征图不发生改变。
可选的,所述基于特征图最优尺寸与所述待输入特征图的尺寸的关系,确定匹配的输入调整方式,包括:若所述待输入特征图的尺寸大于所述特征图最优尺寸,确定所述输入调整方式为输入分割处理;所述输入分割处理用于将所述待输入特征图分割成与所述特征图最优尺寸相同的多个输入特征图单元,在所述待输入特征图中处于相邻状态的两个输入特征图单元不全相同;若所述待输入特征图的尺寸小于所述特征图最优尺寸,确定所述调整方式为输入拼接处理;所述输入拼接处理用于将至少一个所述待输入特征图拼接成与所述特征图最优尺寸相同的输入特征图单元;所述输入特征图单元中每两个相邻输入特征图之间间隔区域为零。
可选的,所述优化后的卷积神经网络的卷积层中的卷积核通过第三节点进行卷积核调整方式调整形成;所述卷积核调整方式基于所述卷积核的尺寸与所述卷积核最优尺寸的关系确定;其中,所述卷积核调整方式包括卷积核补零处理或卷积核分割处理,所述卷积核分割处理用于在所述卷积核的尺寸大于所述卷积核最优尺寸时,将所述卷积核分割成与所述卷积核最优尺寸相同的卷积核单元,每个卷积核单元不同;所述卷积核补零处理用于在所述卷积核的尺寸小于所述卷积核最优尺寸时,在所述卷积核的相邻区域中补零,以得到与所述卷积核最优尺寸相同的卷积核单元。
可选的,所述根据所述输入调整方式确定输出调整方式,包括:根据所述输入调整方式和所述卷积核调整方式确定所述输出特征图的输出调整方式。
可选的,所述根据所述输入调整方式和所述卷积核调整方式确定所述输出特征图的输出调整方式,包括下述至少一项:如果存在所述输入调整方式,且所述输入调整方式为对所述待输入特征图的输入分割处理,则所述输出调整方式包括输出拼接处理,所述输出拼接处理用于根据每两个所述输入特征图单元的重叠区域对所述待输入特征图匹配的至少两个所述输出特征图进行拼接;如果存在所述输入调整方式,且所述输入调整方式为对所述待输入特征图的输入拼接处理,则所述输出调整方式包括输出分割处理,所述输出分割处理用于根据每两个所述输入特征图单元的间隔区域对所述输出特征图进行分割;如果存在所述卷积核调整方式,且所述卷积核调整方式为对所述卷积层的卷积核补零处理,则所述输出调整方式包括输出剔零处理,所述输出剔零处理用于将所述输出特征图中的无效区域剔除出去;以及如果存在所述卷积核调整方式,且所述卷积核调整方式为对所述卷积层的卷积核分割处理,则所述输出调整方式包括输出求和处理,所述输出求和处理用于将匹配的至少两个所述输出特征图进行求和计算。
本发明实施例通过第一节点将卷积神经网络的待输入特征图的尺寸调整成与特征图最优尺寸相同,并对调整后的待输入特征图与优化后的卷积层中的卷积核进行卷积计算,其中,优化后的卷积层中的卷积核的尺寸为卷积核最优尺寸,实现卷积神经网络中的卷积计算中的待输入特征图与卷积核均为本机设备适配的最优尺寸,极大提高卷积神经网络的卷积计算速度,同时,通过第二节点,基于待输入特征图的输入调整方式确定输出特征图的输出调整方式,将输出特征图调整成与原输出特征图相同的特征图,保证卷积计算的语义与优化前的语义相同,以使优化后的卷积神经网络基于与原输出特征图相同的目标输出特征图结果继续执行后续操作,实现优化后的卷积神经网络沿用原训练参数,从而提高优化后的卷积神经网络的稳定性。
实施例四
图4为本发明实施例四中的一种卷积神经网络计算优化装置的示意图。实施例四是实现本发明上述实施例提供的卷积神经网络计算优化方法的相应装置,该装置可采用软件和/或硬件的方式实现,并一般可集成电子设备中,例如,计算机设备等。
相应的,本实施例的装置可以包括:
待输入特征图获取模块410,用于获取优化后的卷积神经网络的待输入特征图;
输入调整方式确定模块420,用于根据所述优化后的卷积神经网络对应的特征图最优尺寸与所述待输入特征图的尺寸的关系,确定匹配的输入调整方式,对所述待输入特征图的尺寸进行调整;
卷积计算模块430,用于将调整后的待输入特征图输入到所述优化后的卷积神经网络中,得到所述优化后的卷积神经网络输出的输出特征图;
输出调整方式确定模块440,用于根据所述输入调整方式确定所述输出特征图的输出调整方式,并对所述输出特征图进行调整,将调整后的输出特征图作为所述卷积神经网络的目标输出特征图结果;其中,所述优化后的卷积神经网络是基于本机设备的所述特征图最优尺寸和卷积核最优尺寸对所述卷积神经网络进行调整得到的,所述优化后的卷积神经网络的卷积层中的输入特征图的尺寸为所述特征图最优尺寸;所述优化后的卷积神经网络的卷积层中的卷积核的尺寸为所述卷积核最优尺寸。
本发明实施例通过获取针对输入特征图尺寸以及卷积尺寸进行优化后的卷积神经网络,同时,优化后的卷积神经网络卷积层中的输入特征图的尺寸为特征图最优尺寸,以及卷积层中的卷积核的尺寸为卷积核最优尺寸,将待输入特征图调整成匹配的优化后的卷积神经网络对应的特征图最优尺寸,反馈至卷积神经网络中,以使卷积神经网络以输入特征图最优尺寸进行卷积计算,从而实现卷积神经网络以硬件电路最适合的输入特征图形状以及卷积核形状进行卷积运算,解决了现有技术中卷积神经网络的卷积层的输入特征图形状以及卷积核形状无法适配硬件电路匹配的输入特征图最优尺寸和卷积核最优尺寸,导致卷积神经网络的速度无法提高的问题,可以适配硬件电路匹配的输入特征图最优尺寸和卷积核最优尺寸进行卷积计算,从而提高卷积神经网络的计算速度,提高卷积神经网络的兼容性以及性能。
进一步的,所述输入调整方式确定模块420,包括:待输入特征图尺寸判断单元,用于若所述待输入特征图的尺寸大于所述特征图最优尺寸,确定所述输入调整方式为输入分割处理;所述输入分割处理用于将所述待输入特征图分割成与所述特征图最优尺寸相同的多个输入特征图单元,在所述待输入特征图中处于相邻状态的两个输入特征图单元不全相同;若所述待输入特征图的尺寸小于所述特征图最优尺寸,确定所述调整方式为输入拼接处理;所述输入拼接处理用于将至少一个所述待输入特征图拼接成与所述特征图最优尺寸相同的输入特征图单元;所述输入特征图单元中每两个相邻输入特征图之间间隔区域为零。
进一步的,所述优化后的卷积神经网络的卷积层中的卷积核通过卷积核调整方式调整形成;所述卷积核调整方式基于所述卷积核的尺寸与所述卷积核最优尺寸的关系确定;其中,所述卷积核调整方式包括卷积核补零处理或卷积核分割处理,所述卷积核分割处理用于在所述卷积核的尺寸大于所述卷积核最优尺寸时,将所述卷积核分割成与所述卷积核最优尺寸相同的卷积核单元,每个卷积核单元不同;所述卷积核补零处理用于在所述卷积核的尺寸小于所述卷积核最优尺寸时,在所述卷积核的相邻区域中补零,以得到与所述卷积核最优尺寸相同的卷积核单元。
进一步的,所述输出调整方式确定模块440,包括:输出调整方式确定单元,用于根据所述输入调整方式和所述卷积核调整方式确定所述输出特征图的输出调整方式。
进一步的,所述输出调整方式确定单元,包括:卷积核和输入调整判断子单元,用于下述至少一项:如果存在所述输入调整方式,且所述输入调整方式为对所述待输入特征图的输入分割处理,则所述输出调整方式包括输出拼接处理,所述输出拼接处理用于根据每两个所述输入特征图单元的重叠区域对所述待输入特征图匹配的至少两个所述输出特征图进行拼接;如果存在所述输入调整方式,且所述输入调整方式为对所述待输入特征图的输入拼接处理,则所述输出调整方式包括输出分割处理,所述输出分割处理用于根据每两个所述输入特征图单元的间隔区域对所述输出特征图进行分割;如果存在所述卷积核调整方式,且所述卷积核调整方式为对所述卷积层的卷积核补零处理,则所述输出调整方式包括输出剔零处理,所述输出剔零处理用于将所述输出特征图中的无效区域剔除出去;以及如果存在所述卷积核调整方式,且所述卷积核调整方式为对所述卷积层的卷积核分割处理,则所述输出调整方式包括输出求和处理,所述输出求和处理用于将匹配的至少两个所述输出特征图进行求和计算。
上述卷积神经网络计算优化装置可执行本发明实施例所提供的卷积神经网络计算优化方法,具备执行的卷积神经网络计算优化方法相应的功能模块和有益效果。
实施例五
图5为本发明实施例五中的一种卷积神经网络计算优化装置的示意图。实施例五是实现本发明上述实施例提供的卷积神经网络计算优化方法的相应装置,应用在与本机设备适配的卷积神经网络中,该装置可采用软件和/或硬件的方式实现,并一般可集成电子设备中,例如,计算机设备等。
相应的,本实施例的装置可以包括:
输入特征图调整模块510,用于通过第一节点获取待输入特征图,并基于特征图最优尺寸与所述待输入特征图的尺寸的关系,确定匹配的输入调整方式,对所述待输入特征图的尺寸进行调整;
卷积计算模块520,用于将调整后的待输入特征图输入到优化后的卷积层进行卷积计算,得到输出特征图;
输出特征图调整模块530,用于通过第二节点根据所述输入调整方式确定输出调整方式,并对所述输出特征图进行调整,将调整后的输出特征图作为所述卷积神经网络的目标输出特征图结果输出;其中,所述优化后的卷积层是基于本机设备的所述特征图最优尺寸和卷积核最优尺寸对所述卷积层进行调整得到的,所述优化后的卷积层中的输入特征图的尺寸为所述特征图最优尺寸;所述优化后的卷积层中的卷积核的尺寸为所述卷积核最优尺寸。
本发明实施例通过第一节点将卷积神经网络的待输入特征图的尺寸调整成与特征图最优尺寸相同,并对调整后的待输入特征图与优化后的卷积层中的卷积核进行卷积计算,其中,优化后的卷积层中的卷积核的尺寸为卷积核最优尺寸,实现卷积神经网络中的卷积计算中的待输入特征图与卷积核均为本机设备适配的最优尺寸,极大提高卷积神经网络的卷积计算速度,同时,通过第二节点,基于待输入特征图的输入调整方式确定输出特征图的输出调整方式,将输出特征图调整成与原输出特征图相同的特征图,保证卷积计算的语义与优化前的语义相同,以使优化后的卷积神经网络基于与原输出特征图相同的目标输出特征图结果继续执行后续操作,实现优化后的卷积神经网络沿用原训练参数,从而提高优化后的卷积神经网络的稳定性。
上述卷积神经网络计算优化装置可执行本发明实施例所提供的卷积神经网络计算优化方法,具备执行的卷积神经网络计算优化方法相应的功能模块和有益效果。
实施例六
图6为本发明实施例六提供的一种计算机设备的结构示意图。图6示出了适于用来实现本发明实施方式的示例性计算机设备12的框图。图6显示的计算机设备12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图6所示,计算机设备12以通用计算设备的形式表现。计算机设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。计算机设备12可以是挂接在总线上的设备。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry StandardArchitecture,ISA)总线,微通道体系结构(Micro Channel Architecture,MCA)总线,增强型ISA总线、视频电子标准协会(Video Electronics Standards Association,VESA)局域总线以及外围组件互连(Peripheral Component Interconnect,PCI)总线。
计算机设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图6未显示,通常称为“硬盘驱动器”)。尽管图6中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM),数字视盘(Digital Video Disc-Read Only Memory,DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。系统存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如系统存储器28中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机设备12交互的设备通信,和/或与使得该计算机设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(Input/Output,I/O)接口22进行。并且,计算机设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(Local AreaNetwork,LAN),广域网(Wide Area Network,WAN)通信。如图所示,网络适配器20通过总线18与计算机设备12的其它模块通信。应当明白,尽管图6中未示出,可以结合计算机设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、(Redundant Arrays of Inexpensive Disks,RAID)系统、磁带驱动器以及数据备份存储系统等。
处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明任意实施例所提供的一种卷积神经网络计算优化方法。
实施例七
本发明实施例七提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请所有发明实施例提供的卷积神经网络计算优化方法:
也即,该程序被处理器执行时实现:获取优化后的卷积神经网络的待输入特征图;根据所述优化后的卷积神经网络对应的特征图最优尺寸与所述待输入特征图的尺寸的关系,确定匹配的输入调整方式,对所述待输入特征图的尺寸进行调整;将调整后的待输入特征图输入到所述优化后的卷积神经网络中,得到所述优化后的卷积神经网络输出的输出特征图;根据所述输入调整方式确定所述输出特征图的输出调整方式,并对所述输出特征图进行调整,将调整后的输出特征图作为所述卷积神经网络的目标输出特征图结果;其中,所述优化后的卷积神经网络是基于本机设备的所述特征图最优尺寸和卷积核最优尺寸对所述卷积神经网络进行调整得到的,所述优化后的卷积神经网络的卷积层中的输入特征图的尺寸为所述特征图最优尺寸;所述优化后的卷积神经网络的卷积层中的卷积核的尺寸为所述卷积核最优尺寸。
或该程序被处理器执行时实现:通过第一节点获取待输入特征图,并基于特征图最优尺寸与所述待输入特征图的尺寸的关系,确定匹配的输入调整方式,对所述待输入特征图的尺寸进行调整;将调整后的待输入特征图输入到优化后的卷积层进行卷积计算,得到输出特征图;通过第二节点根据所述输入调整方式确定输出调整方式,并对所述输出特征图进行调整,将调整后的输出特征图作为所述卷积神经网络的目标输出特征图结果输出;其中,所述优化后的卷积层是基于本机设备的所述特征图最优尺寸和卷积核最优尺寸对所述卷积层进行调整得到的,所述优化后的卷积层中的输入特征图的尺寸为所述特征图最优尺寸;所述优化后的卷积层中的卷积核的尺寸为所述卷积核最优尺寸。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、RAM、只读存储器(Read OnlyMemory,ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式CD-ROM、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、无线电频率(Radio Frequency,RF)等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括LAN或WAN——连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (9)
1.一种卷积神经网络计算优化方法,其特征在于,包括:
获取优化后的卷积神经网络的待输入特征图;
根据所述优化后的卷积神经网络对应的特征图最优尺寸与所述待输入特征图的尺寸的关系,确定匹配的输入调整方式,对所述待输入特征图的尺寸进行调整;
将调整后的待输入特征图输入到所述优化后的卷积神经网络中,得到所述优化后的卷积神经网络输出的输出特征图;
根据所述输入调整方式确定所述输出特征图的输出调整方式,并对所述输出特征图进行调整,将调整后的输出特征图作为所述卷积神经网络的目标输出特征图结果;
其中,所述优化后的卷积神经网络是基于本机设备的所述特征图最优尺寸和卷积核最优尺寸对所述卷积神经网络进行调整得到的,所述优化后的卷积神经网络的卷积层中的输入特征图的尺寸为所述特征图最优尺寸;所述优化后的卷积神经网络的卷积层中的卷积核的尺寸为所述卷积核最优尺寸,所述尺寸包括行和列,所述最优尺寸为基于适配本机设备的加速效果确定的尺寸,所述加速包括卷积运算速度的加速;
所述根据所述优化后的卷积神经网络对应的特征图最优尺寸与所述待输入特征图的尺寸的关系,确定匹配的输入调整方式,包括:
若所述待输入特征图的尺寸大于所述特征图最优尺寸,确定所述输入调整方式为输入分割处理;所述输入分割处理用于将所述待输入特征图分割成与所述特征图最优尺寸相同的多个输入特征图单元,在所述待输入特征图中处于相邻状态的两个输入特征图单元不全相同;
若所述待输入特征图的尺寸小于所述特征图最优尺寸,确定所述调整方式为输入拼接处理;所述输入拼接处理用于将至少一个所述待输入特征图拼接成与所述特征图最优尺寸相同的输入特征图单元;所述输入特征图单元中每两个相邻输入特征图之间间隔区域为零。
2.根据权利要求1所述的方法,其特征在于,所述优化后的卷积神经网络的卷积层中的卷积核通过卷积核调整方式调整形成;所述卷积核调整方式基于所述卷积核的尺寸与所述卷积核最优尺寸的关系确定;
其中,所述卷积核调整方式包括卷积核补零处理或卷积核分割处理,所述卷积核分割处理用于在所述卷积核的尺寸大于所述卷积核最优尺寸时,将所述卷积核分割成与所述卷积核最优尺寸相同的卷积核单元,每个卷积核单元不同;
所述卷积核补零处理用于在所述卷积核的尺寸小于所述卷积核最优尺寸时,在所述卷积核的相邻区域中补零,以得到与所述卷积核最优尺寸相同的卷积核单元。
3.根据权利要求2所述的方法,其特征在于,所述根据所述输入调整方式确定所述输出特征图的输出调整方式,包括:
根据所述输入调整方式和所述卷积核调整方式确定所述输出特征图的输出调整方式。
4.根据权利要求3所述的方法,其特征在于,所述根据所述输入调整方式和所述卷积核调整方式确定所述输出特征图的输出调整方式,包括下述至少一项:
如果存在所述输入调整方式,且所述输入调整方式为对所述待输入特征图的输入分割处理,则所述输出调整方式包括输出拼接处理,所述输出拼接处理用于根据每两个所述输入特征图单元的重叠区域对所述待输入特征图匹配的至少两个所述输出特征图进行拼接;
如果存在所述输入调整方式,且所述输入调整方式为对所述待输入特征图的输入拼接处理,则所述输出调整方式包括输出分割处理,所述输出分割处理用于根据每两个所述输入特征图单元的间隔区域对所述输出特征图进行分割;
如果存在所述卷积核调整方式,且所述卷积核调整方式为对所述卷积层的卷积核补零处理,则所述输出调整方式包括输出剔零处理,所述输出剔零处理用于将所述输出特征图中的无效区域剔除出去;以及
如果存在所述卷积核调整方式,且所述卷积核调整方式为对所述卷积层的卷积核分割处理,则所述输出调整方式包括输出求和处理,所述输出求和处理用于将匹配的至少两个所述输出特征图进行求和计算。
5.一种卷积神经网络计算优化方法,其特征在于,应用与本机设备适配的卷积神经网络中,包括:
通过第一节点获取待输入特征图,并基于特征图最优尺寸与所述待输入特征图的尺寸的关系,确定匹配的输入调整方式,对所述待输入特征图的尺寸进行调整;
将调整后的待输入特征图输入到优化后的卷积层进行卷积计算,得到输出特征图;
通过第二节点根据所述输入调整方式确定输出调整方式,并对所述输出特征图进行调整,将调整后的输出特征图作为所述卷积神经网络的目标输出特征图结果输出;
其中,所述优化后的卷积层是基于本机设备的所述特征图最优尺寸和卷积核最优尺寸对所述卷积层进行调整得到的,所述优化后的卷积层中的输入特征图的尺寸为所述特征图最优尺寸;所述优化后的卷积层中的卷积核的尺寸为所述卷积核最优尺寸,所述尺寸包括行和列,所述最优尺寸为基于适配本机设备的加速效果确定的尺寸,所述加速包括卷积运算速度的加速;
所述基于特征图最优尺寸与所述待输入特征图的尺寸的关系,确定匹配的输入调整方式,包括:若所述待输入特征图的尺寸大于所述特征图最优尺寸,确定所述输入调整方式为输入分割处理;所述输入分割处理用于将所述待输入特征图分割成与所述特征图最优尺寸相同的多个输入特征图单元,在所述待输入特征图中处于相邻状态的两个输入特征图单元不全相同;若所述待输入特征图的尺寸小于所述特征图最优尺寸,确定所述调整方式为输入拼接处理;所述输入拼接处理用于将至少一个所述待输入特征图拼接成与所述特征图最优尺寸相同的输入特征图单元;所述输入特征图单元中每两个相邻输入特征图之间间隔区域为零。
6.一种卷积神经网络计算优化装置,其特征在于,包括:
待输入特征图获取模块,用于获取优化后的卷积神经网络的待输入特征图;
输入调整方式确定模块,用于根据所述优化后的卷积神经网络对应的特征图最优尺寸与所述待输入特征图的尺寸的关系,确定匹配的输入调整方式,对所述待输入特征图的尺寸进行调整;
卷积计算模块,用于将调整后的待输入特征图输入到所述优化后的卷积神经网络中,得到所述优化后的卷积神经网络输出的输出特征图;
输出调整方式确定模块,用于根据所述输入调整方式确定所述输出特征图的输出调整方式,并对所述输出特征图进行调整,将调整后的输出特征图作为所述卷积神经网络的目标输出特征图结果;其中,所述优化后的卷积神经网络是基于本机设备的所述特征图最优尺寸和卷积核最优尺寸对所述卷积神经网络进行调整得到的,所述优化后的卷积神经网络的卷积层中的输入特征图的尺寸为所述特征图最优尺寸;所述优化后的卷积神经网络的卷积层中的卷积核的尺寸为所述卷积核最优尺寸,所述尺寸包括行和列,所述最优尺寸为基于适配本机设备的加速效果确定的尺寸,所述加速包括卷积运算速度的加速;
所述输入调整方式确定模块,包括:待输入特征图尺寸判断单元,用于若所述待输入特征图的尺寸大于所述特征图最优尺寸,确定所述输入调整方式为输入分割处理;所述输入分割处理用于将所述待输入特征图分割成与所述特征图最优尺寸相同的多个输入特征图单元,在所述待输入特征图中处于相邻状态的两个输入特征图单元不全相同;若所述待输入特征图的尺寸小于所述特征图最优尺寸,确定所述调整方式为输入拼接处理;所述输入拼接处理用于将至少一个所述待输入特征图拼接成与所述特征图最优尺寸相同的输入特征图单元;所述输入特征图单元中每两个相邻输入特征图之间间隔区域为零。
7.一种卷积神经网络计算优化装置,其特征在于,应用在与本机设备适配的卷积神经网络中,包括:
输入特征图调整模块,用于通过第一节点获取待输入特征图,并基于特征图最优尺寸与所述待输入特征图的尺寸的关系,确定匹配的输入调整方式,对所述待输入特征图的尺寸进行调整;
卷积计算模块,用于将调整后的待输入特征图输入到优化后的卷积层进行卷积计算,得到输出特征图;
输出特征图调整模块,用于通过第二节点根据所述输入调整方式确定输出调整方式,并对所述输出特征图进行调整,将调整后的输出特征图作为所述卷积神经网络的目标输出特征图结果输出;其中,所述优化后的卷积层是基于本机设备的所述特征图最优尺寸和卷积核最优尺寸对所述卷积层进行调整得到的,所述优化后的卷积层中的输入特征图的尺寸为所述特征图最优尺寸;所述优化后的卷积层中的卷积核的尺寸为所述卷积核最优尺寸,所述尺寸包括行和列,所述最优尺寸为基于适配本机设备的加速效果确定的尺寸,所述加速包括卷积运算速度的加速;
所述输入特征图调整模块,具体用于若所述待输入特征图的尺寸大于所述特征图最优尺寸,确定所述输入调整方式为输入分割处理;所述输入分割处理用于将所述待输入特征图分割成与所述特征图最优尺寸相同的多个输入特征图单元,在所述待输入特征图中处于相邻状态的两个输入特征图单元不全相同;若所述待输入特征图的尺寸小于所述特征图最优尺寸,确定所述调整方式为输入拼接处理;所述输入拼接处理用于将至少一个所述待输入特征图拼接成与所述特征图最优尺寸相同的输入特征图单元;所述输入特征图单元中每两个相邻输入特征图之间间隔区域为零。
8.一种计算机设备,其特征在于,所述计算机设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-5中任一所述的卷积神经网络计算优化方法。
9.一种存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-5中任一所述的卷积神经网络计算优化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910727117.2A CN110443357B (zh) | 2019-08-07 | 2019-08-07 | 卷积神经网络计算优化方法、装置、计算机设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910727117.2A CN110443357B (zh) | 2019-08-07 | 2019-08-07 | 卷积神经网络计算优化方法、装置、计算机设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110443357A CN110443357A (zh) | 2019-11-12 |
CN110443357B true CN110443357B (zh) | 2020-09-15 |
Family
ID=68433950
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910727117.2A Active CN110443357B (zh) | 2019-08-07 | 2019-08-07 | 卷积神经网络计算优化方法、装置、计算机设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110443357B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11699081B2 (en) * | 2019-12-20 | 2023-07-11 | Meta Platforms, Inc. | Systems and methods for reducing data movement during convolution operations in artificial neural networks |
CN111260036B (zh) * | 2020-01-19 | 2023-01-10 | 苏州浪潮智能科技有限公司 | 一种神经网络加速方法和装置 |
CN111461135B (zh) * | 2020-03-31 | 2022-11-08 | 上海大学 | 利用卷积神经网络集成的数字图像局部滤波取证方法 |
CN112116066B (zh) * | 2020-08-27 | 2022-12-20 | 苏州浪潮智能科技有限公司 | 一种神经网络的计算方法、系统、设备以及介质 |
CN112116071B (zh) * | 2020-09-07 | 2024-07-23 | 地平线(上海)人工智能技术有限公司 | 神经网络计算方法、装置、可读存储介质以及电子设备 |
CN112132274B (zh) * | 2020-09-22 | 2024-05-28 | 地平线(上海)人工智能技术有限公司 | 特征图全连接卷积方法、装置、可读存储介质及电子设备 |
CN112215745A (zh) * | 2020-09-30 | 2021-01-12 | 深圳云天励飞技术股份有限公司 | 图像处理方法、装置及电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109086867A (zh) * | 2018-07-02 | 2018-12-25 | 武汉魅瞳科技有限公司 | 一种基于fpga的卷积神经网络加速系统 |
CN109190758A (zh) * | 2018-09-04 | 2019-01-11 | 地平线(上海)人工智能技术有限公司 | 用于展开卷积神经网络的张量数据的方法和装置 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104915322B (zh) * | 2015-06-09 | 2018-05-01 | 中国人民解放军国防科学技术大学 | 一种卷积神经网络硬件加速方法 |
US10311341B1 (en) * | 2015-08-27 | 2019-06-04 | Hrl Laboratories, Llc | System and method for online deep learning in an ultra-low power consumption state |
CN108073977A (zh) * | 2016-11-14 | 2018-05-25 | 耐能股份有限公司 | 卷积运算装置及卷积运算方法 |
CN107016175B (zh) * | 2017-03-23 | 2018-08-31 | 中国科学院计算技术研究所 | 适用神经网络处理器的自动化设计方法、装置及优化方法 |
CN107437110B (zh) * | 2017-07-11 | 2021-04-02 | 中国科学院自动化研究所 | 卷积神经网络的分块卷积优化方法及装置 |
WO2019127517A1 (zh) * | 2017-12-29 | 2019-07-04 | 深圳市大疆创新科技有限公司 | 数据处理方法、设备、dma控制器及计算机可读存储介质 |
CN108288075B (zh) * | 2018-02-02 | 2019-06-14 | 沈阳工业大学 | 一种改进ssd的轻量化小目标检测方法 |
CN108510063B (zh) * | 2018-04-08 | 2020-03-20 | 清华大学 | 一种应用于卷积神经网络的加速方法和加速器 |
CN108805267B (zh) * | 2018-05-28 | 2021-09-10 | 重庆大学 | 用于卷积神经网络硬件加速的数据处理方法 |
CN109117940B (zh) * | 2018-06-19 | 2020-12-15 | 腾讯科技(深圳)有限公司 | 基于卷积神经网络的目标检测方法、装置、终端及存储介质 |
CN108875917A (zh) * | 2018-06-28 | 2018-11-23 | 中国科学院计算技术研究所 | 一种用于卷积神经网络处理器的控制方法及装置 |
CN109359726A (zh) * | 2018-11-27 | 2019-02-19 | 华中科技大学 | 一种基于winograd算法的卷积神经网络优化方法 |
CN109948524B (zh) * | 2019-03-18 | 2020-04-14 | 北京航空航天大学 | 一种基于空基监视的交通车辆密度估计方法 |
-
2019
- 2019-08-07 CN CN201910727117.2A patent/CN110443357B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109086867A (zh) * | 2018-07-02 | 2018-12-25 | 武汉魅瞳科技有限公司 | 一种基于fpga的卷积神经网络加速系统 |
CN109190758A (zh) * | 2018-09-04 | 2019-01-11 | 地平线(上海)人工智能技术有限公司 | 用于展开卷积神经网络的张量数据的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110443357A (zh) | 2019-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110443357B (zh) | 卷积神经网络计算优化方法、装置、计算机设备及介质 | |
CN108345890B (zh) | 图像处理方法、装置和相关设备 | |
CN108229455B (zh) | 物体检测方法、神经网络的训练方法、装置和电子设备 | |
EP3627397B1 (en) | Processing method and apparatus | |
CN111582021B (zh) | 场景图像中的文本检测方法、装置及计算机设备 | |
WO2019152144A1 (en) | Object detection based on neural network | |
CN111444807B (zh) | 目标检测方法、装置、电子设备和计算机可读介质 | |
CN109255382B (zh) | 用于图片匹配定位的神经网络系统,方法及装置 | |
US11822900B2 (en) | Filter processing device and method of performing convolution operation at filter processing device | |
CN113095129A (zh) | 姿态估计模型训练方法、姿态估计方法、装置和电子设备 | |
CN110827301B (zh) | 用于处理图像的方法和装置 | |
CN113971727A (zh) | 一种语义分割模型的训练方法、装置、设备和介质 | |
CN112750139A (zh) | 图像处理方法及装置、计算设备、存储介质 | |
CN113780326A (zh) | 一种图像处理方法、装置、存储介质及电子设备 | |
CN113869371A (zh) | 模型训练方法、服装细粒度分割方法及相关装置 | |
CN109492697B (zh) | 图片检测网络训练方法及图片检测网络训练装置 | |
CN114565768A (zh) | 图像分割方法及装置 | |
CN113409307A (zh) | 基于异质噪声特性的图像去噪方法、设备及介质 | |
CN111815748B (zh) | 一种动画处理方法、装置、存储介质及电子设备 | |
CN113516697A (zh) | 图像配准的方法、装置、电子设备及计算机可读存储介质 | |
CN112990157A (zh) | 一种基于fpga的图像目标识别加速系统 | |
CN111027551B (zh) | 图像处理方法、设备和介质 | |
CN111949766A (zh) | 一种文本相似度的识别方法、系统、设备和存储介质 | |
CN116580407A (zh) | 文本检测模型的训练方法、文本检测方法及装置 | |
US20230196093A1 (en) | Neural network processing |
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 |