运行时间预测方法、模型搜索方法及系统与流程

文档序号:20756784发布日期:2020-05-15 17:29阅读:285来源:国知局
运行时间预测方法、模型搜索方法及系统与流程

本发明涉及网络优化技术领域,尤其涉及一种运行时间预测方法、模型搜索方法及系统。



背景技术:

深度神经网络凭借在图像分类、人脸检测等任务的优异表现,已经成为人工智能中一种不可缺少的技术。其中,以堆叠式沙漏网络(stackedhourglassnetwork)为代表的深度模型在人体关键点检测任务中也获得不错的效果。相比于图像分类任务的神经网络,用于人体关键点检测的网络中常用堆叠式结构,而且结构中为准对称性结构,因此网络结构更为复杂,大大增加了网络结构的人工设计难度。因此含有准对称性网络结构的自动设计方法显得尤为重要。

神经结构搜索(neuralarchitecturesearch,nas)是一种能够自动生成最优网络结构的优化方法。神经结构搜索的原理为在一个称为搜索空间的网络结构集合中,通过某种搜索策略找出满足一定约束或者性能要求的子网络结构。搜索空间包含网络中的层的类型和层与层之间的连接关系。现有的主流搜索策略有强化学习,遗传算法,和基于梯度的优化方法。

现有的神经网络结构搜索算法大多仍然只针对简单的图像分类任务,这些网络结构相对单一,网络结构中的分支较少,而且只存在特征尺度变小的路径而没有特征尺度变大的路径。但是在人体关键点检测任务的模型结构中常有准对称性结构。准对称性结构是指网络结构中同时存在特征提取的下采样路径和还原特征图的上采样路径,而且两条路径且上采样路径上的特征图需要和下采样路径上相同尺度的特征图进行融合。准对称性结构也存在于人体关键点检测任务中表现较好的堆叠式沙漏网络,但是该网络结构并没有被包含在上述的图像分类网络的搜索空间当中。因此使用用于图像分类任务的网络结构搜索方法并不能搜索出性能较好的用于人体关键点检测任务的神经网络结构。

再者,现有的网络结构搜索算法大部分只关注搜索模型的精度,搜索模型参数量的大小,如将网络参数的大小、训练时间和分布式训练时通信代价作为一种限定的代价作为一种惩罚反馈到控制网络搜索的循环神经网络当中。或者考虑到待搜索网络结构的硬件执行性能,将控制端每次搜索的网络结构转化成一个专用芯片上的配置信息,然后将该网络模型在芯片上真实运行,运行的时间反馈到控制端的网络结构搜索算法中。现也有一些方法以模型中不同算子的计算量大小对算子的运算时间进行简单的线性建模;比如将推论神经网络的硬件作为一个内部结构和运行数据流不可知的黑盒模块,但这样无法对模型在硬件上运行的细节进行准确建模,也没有深入地考虑如硬件的片上存储大小和片外存储带宽等对模型在硬件上的执行效率的影响。

名词解释:

准对称神经网络:为具有准对称性结构的神经网络,所述准对称性结构是指网络结构中同时存在特征提取的下采样路径和还原特征图的上采样路径,而且两条路径且上采样路径上的特征图需要和下采样路径上相同尺度的特征图进行融合。



技术实现要素:

为了解决上述技术问题之一,本发明的目的是提供一种基于模型中时延参数的运行时间预测方法、模型搜索方法及系统。

本发明所采用的第一技术方案是:

一种运行时间预测方法,包括以下步骤:

获取网络的结构信息、数据计算总量、数据传输总量以及计算平台的计算并行度和访存带宽;

结合结构信息、数据计算总量、数据传输总量、计算并行度和访存带宽预测网络在计算平台上的运行时间;

所述网络结构信息包括网络的层数信息和分支信息。

进一步,所述分支信息包括分支网络和无分支网络,所述结合结构信息、数据计算总量、数据传输总量、计算并行度和访存带宽预测网络在计算平台上的运行时间这一步骤,具体包括以下步骤:

结合数据计算总量和计算并行度获取数据计算时间;

结合数据传输总量和访存带宽获取权值参数的访存时间;

根据网络结构信息获取输入特征图的访存时间和输出特征图的访存时间;

当网络结构信息为分支网络,结合数据计算时间、权值参数的访存时间、输入特征图的访存时间、输出特征图的访存时间和第一公式获取运行时间;

当网络结构信息为无分支网络,结合数据计算时间、权值参数的访存时间、输入特征图的访存时间、输出特征图的访存时间和第二公式获取运行时间。

进一步,所述第一公式为:

其中,所述lat代表运行时间,所述代表网络中第i层的数据计算时间,所述代表权值参数的访存时间,所述代表输入特征图的访存时间,所述代表输出特征图的访存时间,所述ibrc和obrc分别表示可选的输入输出路径的使用参数,所述λi的数值范围[0,1]。

进一步,所述第二公式为:

其中,所述lat代表运行时间,所述代表网络中第i层的数据计算时间,所述代表权值参数的访存时间,所述代表输入特征图的访存时间,所述代表输出特征图的访存时间,所述λi的数值范围[0,1]。

本发明所采用的第二技术方案是:

一种运行时间预测系统,包括:

信息获取模块,用于获取网络的结构信息、数据计算总量、数据传输总量以及计算平台的计算并行度和访存带宽;

时间预测模块,用于结合结构信息、数据计算总量、数据传输总量、计算并行度和访存带宽预测网络在计算平台上的运行时间;

所述网络结构信息包括网络的层数信息和分支信息。

本发明所采用的第三技术方案是:

一种模型搜索方法,包括以下步骤:

对准对称神经网络的算子搜索空间进行定义;

根据准对称神经网络的结构约束建立待搜索结构;

对待搜索结构进行训练,在搜索空间获得若干个模型;

采用预设方法计算模型的在计算平台的运行时间,根据运行时时间获取并输出最终的模型结构;

其中,所述预设方法为上所述的一种运行时间预测方法。

进一步,所述对准对称神经网络的算子搜索空间进行定义这一步骤,具体为:

对准对称神经网络的算子搜索空间进行定义,以获取待搜索结构中的算子种类;

其中,准对称性结构包括下采样计算路径和上采样计算路径,所述下采样计算路径下采样操作算子和普通操作算子,所述上采样计算路径包括上采样操作算子、特征融合算子和普通操作算子。

进一步,所述采用预设方法计算模型的在计算平台的运行时间,根据运行时时间获取并输出最终的模型结构这一步骤,具体包括以下步骤:

根据预设的评估精确度对模型进行筛选,获得若干个初始模型;

采用预设方法分别计算各初始模型的运行时间;

判断初始模型的运行时间是否小于预设的最大运行时间,若是,输出该初始模型的网络结构作为最终的模型结构。

进一步,所述采用预设方法计算模型的在计算平台的运行时间,根据运行时时间获取并输出最终的模型结构这一步骤,具体包括以下步骤:

采用预设方法计算模型的运行时间;

将运行时间与模型的损失函数进行结合;

将结合后的损失函数对模型继续训练后,获得并输出最终的模型结构。

进一步,所述采用预设方法计算模型的在计算平台的运行时间,根据运行时时间获取并输出最终的模型结构这一步骤,具体包括以下步骤:

根据预设的评估精确度对模型进行筛选,获得若干个初始模型;

采用预设方法分别计算各初始模型的运行时间;

结合运行时间和预设公式计算初始模型的评估得分,获取评估得分最高的若干初始模型作为最终的模型结构。

本发明所采用的第四技术方案是:

一种模型搜索系统,包括:

定义模块,用于对准对称神经网络的算子搜索空间进行定义;

约束模块,用于根据准对称神经网络的结构约束建立待搜索结构;

训练模块,用于对待搜索结构进行训练,在搜索空间获得若干个模型;

评估模块,用于采用预设方法计算模型的在计算平台的运行时间,根据运行时时间获取并输出最终的模型结构;

其中,所述预设方法为上所述的一种运行时间预测方法。

本发明的有益效果是:本发明通过结合网络的参数和计算平台的参数,预测一个网络模型在硬件计算平台上运行一次推理运算的运行时间,为选出高准确度以及低延时的网络提供了基础。

本发明的另一有益效果是:本发明通过结合运行时间,在搜索空间中搜索出高准确度以及低延时的网络,能够广泛地应用于深度网络模型中。

附图说明

图1是具体实施方式中一种运行时间预测方法的步骤流程图;

图2是硬件计算平台的结构示意图;

图3是三种不同的网络结构示意图;

图4是带分支的深度网络模型中的层结构;

图5是分支路径上无操作的一种带分支网络结构以及变换后的结构示意图;

图6是分支路径上有操作的一种带分支网络结构以及变换后的结构示意图;

图7是具体实施方式中一种模型搜索方法的步骤流程图;

图8是捷径深度可分离卷积模块示意图;

图9是深度可分离卷积模块示意图;

图10是准对称结构约束下的待搜索结构的示意图;

图11是具体实施方式中一种运行时间预测系统的结构框图;

图12是具体实施方式中一种模型搜索系统的结构框图。

具体实施方式

如图1所示,本实施例提供了一种运行时间预测方法,包括以下步骤:

s101、获取网络的结构信息、数据计算总量、数据传输总量以及计算平台的计算并行度和访存带宽;

s102、结合结构信息、数据计算总量、数据传输总量、计算并行度和访存带宽预测网络在计算平台上的运行时间;

所述网络结构信息包括网络的层数信息和分支信息。

具体地,所述分支信息包括分支网络和无分支网络,步骤s102包括步骤a1~a5:

a1、结合数据计算总量和计算并行度获取数据计算时间;

a2、结合数据传输总量和访存带宽获取权值参数的访存时间;

a3、根据网络结构信息获取输入特征图的访存时间和输出特征图的访存时间;

a4、当网络结构信息为分支网络,结合数据计算时间、权值参数的访存时间、输入特征图的访存时间、输出特征图的访存时间和第一公式获取运行时间;

a5、当网络结构信息为无分支网络,结合数据计算时间、权值参数的访存时间、输入特征图的访存时间、输出特征图的访存时间和第二公式获取运行时间。

如图2所示,一个模型的前馈硬件计算平台中包含计算单元,片上存储器和片外存储器。其中,计算单元的数目表示该硬件计算平台的计算并行度,用pe表示,片上存储器的大小用memon表示,片外存储器的大小用memoff表示。片外存储器接口上的带宽表示片上存储器和片外存储器数据交换的速度,用bw表示。

在以下提出的所有公式中,如无特别声明,一个带下标i的变量表示该变量在一个深度网络中第i层的值。假设片上存储器的容量远小于片外存储器的容量,而且不能将在其上面运行模型的所有权值参数w或者所有的中间产生的特征图f进行缓存。但是能够缓存任一层网络的权值数据wi和任一层网络的输入特征图fi。

memoff>w>memon>wi#(1)

memoff>f>memon>fi#(2)

在该硬件模型和上述的假设下,提出延时的计算公式如式(3)。

其中,lat表示深度网络模型在硬件平台上运行一次推理运算所需的运行时间。总运行时间由两部分组成,有计算单元进行数据计算的时间latop和数据从片外存储器传输到片上存储器的时间,即访存时间latmem。参数λ反映了该硬件计算平台对访存延时隐藏量的多少,由硬件计算平台的架构设计决定,数值范围λ∈[0,1]。所谓访存延时隐藏量是指在硬件计算过程中,数据传输与计算模块同时进行,从而隐藏了在前后先行执行这两个过程的情况下系统给所花费的额外延时。在这种非理想情况下,λ=1,即表示硬件计算平台完全不能将访存延时隐藏在计算时间当中。访存时间包含权值参数的访存时间latw,输入特征图的访存时间latif和输出特征图的访存时间latof三部分。

以下提出一种计算时间和访存时间的计算方法。第i层的计算时间主要由第i层卷积层的总体计算量opi和计算平台的上的计算单元数目pe决定。如对于一个长、宽、通道数分别为iwi,ihi,ici的输入特征图和长、宽、通道数、个数分别为kwi,khi,ici,oci的卷积核进行卷积计算得到长、宽、通道数分别为owi,ohi,oci的输出特征图,那么计算时间可以用式(4)进行计算。访存时间中的每一项都可以由传输数据的总量amt(data)和硬件平台的访存带宽bw决定,以权值参数的访存时间为例,第i层的权值参数为长、宽、通道数、个数、数据宽度分别为kwi,khi,ici,oci,dw的卷积核,那么该层的权值参数访存时间可以用式(5)进行计算。

无分支的网络,即深度网络模型中每一层的输入特征图仅来自上一层的输出特征图,网络结构示意图如图3(a)所示。对于一个深度为n的无分支网络,上一层的输出结果可以直接作为下一层的输入数据,因此除了网络的第一层外的所有层都不需要从片外存储器传输输入特征图到片上存储器,即所以总体运行时间为:

有分支的网络,即深度网络模型中某一层的输入特征图不只是来自上一层的输出特征图,可能还有前若干层的输出特征图。网络结构示意图如图3(b)和(c)所示。当网络中某层出现分支的情况时,需要将特征图输出到片外存储器或从片外存储器输入到片上存储器。具体地,图4表示深度网络模型中一层,网络的每一层都有一组必要的输入输出路径i0/o0和一组可选的输入输出路径i1/o1。如果某一层使用了额外的输入/输出路径,由于硬件计算平台每次只能进行一层的计算操作,因此网络结构需要进行重新调整。参数ibrc和obrc分别表示可选的输入输出路径的使用情况。如果第i层网络只使用i0输入路径,则ibrci=0。如果第i层网络使用了i0,i1两个输入路径,而且分支路径上没有对特征图进行操作,则ibrci=1,图5展示了分支路径上无操作的一种分支网络结构(a)以及经过顺序变化后的网络结构(b)。如果第i层网络使用了i0,i1两个输入路径,而且分支路径上有对特征图进行操作,则ibrci=2,图6展示了分支路径上有操作的一种分支网络结构(a)以及经过顺序变化后的网络结构(b)。对于输出路径也是相同地对obrc进行赋值。因此总体的运行时间为:

如图11所示,本实施例还提供了一种运行时间预测系统,包括:

信息获取模块,用于获取网络的结构信息、数据计算总量、数据传输总量以及计算平台的计算并行度和访存带宽;

时间预测模块,用于结合结构信息、数据计算总量、数据传输总量、计算并行度和访存带宽预测网络在计算平台上的运行时间;

所述网络结构信息包括网络的层数信息和分支信息。

本实施例的一种运行时间预测系统,可执行本发明方法实施例所提供的一种运行时间预测方法,可执行方法实施例的任意组合实施步骤,具备该方法相应的功能和有益效果。

参照图7,本实施例还提供了一种模型搜索方法,包括以下步骤:

对准对称神经网络的算子搜索空间进行定义;

根据准对称神经网络的结构约束建立待搜索结构;

对待搜索结构进行训练,在搜索空间获得若干个模型;

采用预设方法计算模型的在计算平台的运行时间,根据运行时时间获取并输出最终的模型结构;

其中,所述预设方法为上所述的一种运行时间预测方法。

本实施例方法的模型搜索过程中,首先针对准对称神经网络的算子定义搜索空间,然后根据准对称性结构约束构建立待搜索结构,完成搜索空间构建之后开始训练待搜索结构,等待搜索结构训练收敛后,对某个子网络结构进行精度评估和硬件运行时间预估,得到一个总体评估得分,获得在该计算通路下最为高效的准对称人工神经网络模型。

具体地,第一步:对准对称神经网络的算子搜索空间进行定义,即确定待搜索结构中的算子种类。

准对称性结构中存在下采样路径和上采样两种类型的计算路径。本专利定义,下采样路径包含下采样操作算子和普通操作算子,上采样路径中包含上采样操作算子、特征融合算子和普通操作算子。

下采样操作算子指的是能够将特征图的长和宽都变成比原来要小的操作,缩小比例典型值为1/2。操作包含但不限于步长为2的1×1卷积、3×3卷积、深度可分离卷积(mobilenetv1基础组成模块)、捷径深度可分离卷积模块(mobilenetv2基础构成模块)、空洞卷积、最大池化、平均池化等。

上采样操作算子指的是能够将特征图的长和宽都变大的操作,放大比例典型值为2,操作包含但不限于扩大,双线性插值,反卷积、步长小于1的空洞卷积等。

普通操作算子指的是不修改特征图分辨率的操作算子,操作包含但不限于相等,步长为1的1×1卷积、3×3卷积、5×5卷积,深度可分离卷积、捷径深度可分离卷积模块等。

特征融合算子将两个输入的特征图通过一定的操作合成一个特征图,操作包含但不限于相加、连接(concatenate)、连接并通道混合(channelshuffle)等。

其中,上述的捷径深度可分离卷积模块包括:可设定通道扩展系数的升通道的逐点卷积(pointwiseconvolution)操作,批规范化,线性整流函数relu6;后面紧接可设定卷积核大小和步长的逐层卷积(depthwiseconvolution)操作,批规范化,线性整流函数relu6;最后连接逐点卷积(pointwiseconvolution)操作,批规范化。如逐层卷积操作的步长为1,则模块的输入和最后一层输出使用加法进行特征融合。层间结构关系如图8所示,其中,图8(a)为步长为1的结构,图8(b)为步长为2的结构。

深度可分离卷积包括:可设定卷积核大小和步长的逐层卷积(depthwiseconvolution)操作,批规范化,线性整流函数relu,逐点卷积(pointwiseconvolution)操作,批规范化,线性整流函数relu。层间结构关系如图9所示。

第二步:根据准对称结构的约束构建待搜索结构。

准对称性结构中最为重要的一个特征是在下采样路径和上采样路径之间尺寸一致的特征图存在融合操作。以下约束即对该特征进行具体描述。

上述提到的上采样路径上的特征图融合操作,其中一个输入特征图来自上一层的输出特征图,另一个输入特征图来自上层下采样路径上尺寸一致(即长、宽和通道数都相等)的一个输出特征图。因此下采样路径上算子都需要有两个输出路径。

拥有两个输出路径的模块称为分支模块。回顾图4描述的带分支网络的层结构,下采样路径上的分支模块存在必要的输出路径o0和可选的输出路径o1,而上采样路径上的特征融合算子则存在必要的输入路径i0和可选的输入路径i1。下采样路径中的分支模块的可选输出路径o1到上采样路径中的特征融合模块的可选输入路径i1之间的连接称为分支路径。在准对称结构中,分支路径上允许存在至多一个普通操作操作算子,即保证特征图在分支路径上尺寸不变。关于准对称结构约束下的待搜索结构的示意图如图10所示。

第三步:对上述构建的待搜索结构进行训练。

训练的具体过程如下:在每次训练的迭代中,通过随机的方式和不同路径下的算子约束确定下采样路径、上采样路径和分支路径上的算子类型,从而得到一个模型结构。然后对该模型进行训练。如果在之前的某次迭代得到的模型与本次迭代的模型在某些层上使用了相同的算子,则可以在本次训练开始前将这些层初始化为这些算子的操作。这个步骤可以加快待搜索结构训练的收敛速度,提高训练的效率。在待搜索路径中各搜索路径上的模型的评估精度不再有过大的提升时,则认为待搜索结构的训练已经收敛,待搜索结构训练结束。

第四步:基于运行时间预测方法指导子网络的搜索过程,从而得到一个在该硬件计算平台下运行的高效子网络。本实施例具体提出三种使用模型运行时间指导网络搜索的方法。

方法一,设定一个最大的预期网络运行时间latmax。在待搜索结构训练好之后,从中选择前n个(n>1)性能最优的网络结构,此处的性能优指的是该子网络能够满足目标任务的精度要求。然后根据运行时间计算公式对上述n个网络结构进行网络运行时间的预估,得到lat1~latn。如果该网络结构的预估运行时间比最大预期网络运行时间大,那么该网络结构应该被淘汰。剩余没有被淘汰的网络结构即在该硬件计算平台上高效运行的网络结构。

方法二,在待搜索结构的训练过程当中,当一个候选的网络结构被选择的时候,可以使用运行时间计算公式估算出候选网络结构在该计算平台上的运行时间,然后将运行时间以一定的方式结合到该网络结构的损失函数当中。一种损失函数于运行时间的结合方式如式(8)。

方法三,与方法一类似,在待搜索结构训练好之后,从中选择前n个(n>1)性能最优的网络结构,同样地,此处的性能优指的是该子网络能够满足目标任务的精度要求。然后通过运行时间计算公式对上述n个网络结构进行网络运行时间的预估,得到lat1~latn。结合子网络的评估精度以及其预估运行时间得到第n个子网络的评估得分scoreeval,n如式(9)。

其中,参数p是约束系数,用于调节硬件效率对评估过程的影响程度。参数latsuper是待搜索结构的一个运行时间,用于归一化子网络的运行时间。评估得分最高的m个(m≥1,m<n)网络结构即在该硬件计算平台上高效运行的网络结构。

综上所述,本实施例提出的方法可以为一个特定的硬件平台搜索出一个或者多个高准确度以及低延时的含分支结构或者准对称性结构的深度网络模型,所述深度网络模型包含但不限于能够实现人体关键点检测任务的深度网络模型。

如图12所示,本实施例还提供了一种模型搜索系统,包括:

定义模块,用于对准对称神经网络的算子搜索空间进行定义;

约束模块,用于根据准对称神经网络的结构约束建立待搜索结构;

训练模块,用于对待搜索结构进行训练,在搜索空间获得若干个模型;

评估模块,用于采用预设方法计算模型的在计算平台的运行时间,根据运行时时间获取并输出最终的模型结构;

其中,所述预设方法为上所述的一种运行时间预测方法。

本实施例的一种模型搜索系统,可执行本发明方法实施例所提供的一种模型搜索方法,可执行方法实施例的任意组合实施步骤,具备该方法相应的功能和有益效果。

以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1