掌桥专利:专业的专利平台
掌桥专利
首页

神经网络的搜索方法、装置及电子设备

文献发布时间:2023-06-19 10:24:22


神经网络的搜索方法、装置及电子设备

技术领域

本申请涉及人工智能技术领域,尤其涉及深度学习与计算机视觉技术领域,提出一种神经网络的搜索方法、装置及电子设备。

背景技术

深度学习目前广泛应用在图像处理、自然语言处理、推荐等计算机应用领域。由于深度学习模型通常需要较多的计算资源,因此对于计算资源受限的电子设备,通常需要轻量级的神经网络模型实现高效运算。

相关技术中,可以通过人工方式设计轻量级的神经网络模型,但是效率较低。

发明内容

本申请提供了一种用于神经网络的搜索方法、装置、电子设备、存储介质以及计算机程序产品。

根据本申请的一方面,提供了一种神经网络的搜索方法,包括:从搜索空间中,获取神经网络对应的各个候选网络结构,其中,每个所述候选网络结构中包含各个层对应的算子编码;基于预设的各算子编码在各类设备中的运行耗时及各个层对应的算子编码,确定每个所述候选网络结构的总耗时;获取每个所述候选网络结构在测试集上的精度;根据每个所述候选网络结构在测试集上的精度及总耗时,确定所述神经网络对应的目标网络结构。

根据本申请的另一方面,提供了一种神经网络的搜索装置,包括:第一获取模块,用于从搜索空间中,获取神经网络对应的各个候选网络结构,其中,每个所述候选网络结构中包含各个层对应的算子编码;第一确定模块,用于基于预设的各算子编码在各类设备中的运行耗时及各个层对应的算子编码,确定每个所述候选网络结构的总耗时;第二获取模块,用于获取每个所述候选网络结构在测试集上的精度;第二确定模块,用于根据每个所述候选网络结构在测试集上的精度及总耗时,确定所述神经网络对应的目标网络结构。

根据本申请的再一方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如前所述的神经网络的搜索方法。

根据本申请的又一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行如前所述的神经网络的搜索方法。

根据本申请的又一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如前所述的神经网络的搜索方法。

根据本申请的技术方案,解决了相关技术中,通过人工方式设计轻量级的神经网络模型,效率较低的问题。通过从搜索空间中,获取神经网络对应的各个候选网络结构,其中,每个候选网络结构中包含各个层对应的算子编码,并基于预设的各算子编码在各类设备中的运行耗时及各个层对应的算子编码,确定每个候选网络结构的总耗时,之后获取每个候选网络结构在测试集上的精度,进而根据每个候选网络结构在测试集上的精度及总耗时,确定神经网络对应的目标网络结构。由此,通过在搜索空间中进行神经网络搜索,并根据候选网络结构中的各算子编码在各类设备中的运行耗时与各候选网络结构的精度,确定适合于当前测试集的、且可在异构设备中运行的最佳网络结构,从而不仅提升了神经网络结构的构建效率,而且可以充分利用异构设备的计算资源,提升了神经网络的计算效率和精度。

应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。

附图说明

附图用于更好地理解本方案,不构成对本申请的限定。其中:

图1为本申请实施例所提供的一种神经网络的搜索方法的流程示意图;

图2为一种本身实施例所提供的一种搜索空间的结构示意图;

图3为一种网络结构对应的基因编码序列的示意图;

图4为本申请实施例所提供的另一种神经网络的搜索方法的流程示意图;

图5为本申请实施例所提供的再一种神经网络的搜索方法的流程示意图;

图6为本申请实施例所提供的又一种神经网络的搜索方法的流程示意图;

图7为本申请实施例提供的一种神经网络的搜索装置的结构示意图;

图8为用来实现本申请实施例的神经网络的搜索方法的电子设备的框图。

具体实施方式

以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

以下对本申请的方案涉及的技术领域进行简要说明:

人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,既有硬件层面的技术也有软件层面的技术。人工智能硬件技术一般包括计算机视觉技术、语音识别技术、自然语言处理技术以及机器学习/深度学习、大数据处理技术、知识图谱技术等几大方向。

深度学习是机器学习领域中一个新的研究方向,它被引入机器学习使其更接近于最初的目标——人工智能。深度学习是学习样本数据的内在规律和表示层次,这些学习过程中获得的信息对诸如文字,图像和声音等数据的解释有很大的帮助。它的最终目标是让机器能够像人一样具有分析学习能力,能够识别文字、图像和声音等数据。深度学习在搜索技术,数据挖掘,机器学习,机器翻译,自然语言处理,多媒体学习,语音,推荐和个性化技术,以及其他相关领域都取得了很多成果。

计算机视觉是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取“信息”的人工智能系统。这里所指的“信息”指香农定义的,可以用来帮助做一个“决定”的信息。因为感知可以看作是从感官信号中提取信息,所以计算机视觉也可以看作是研究如何使人工系统从图像或多维数据中“感知”的科学。

本申请实施例针对相关技术中,通过人工方式设计轻量级的神经网络模型,效率较低的问题,提出一种神经网络的搜索方法。

下面参考附图对本申请提供的神经网络的搜索方法、装置、电子设备、存储介质及计算机程序产品进行详细描述。

图1为本申请实施例所提供的一种神经网络的搜索方法的流程示意图。

如图1所示,该神经网络的搜索方法,包括以下步骤:

步骤101,从搜索空间中,获取神经网络对应的各个候选网络结构,其中,每个候选网络结构中包含各个层对应的算子编码。

需要说明的是,本申请实施例的神经网络的搜索方法可以由本申请实施例的神经网络的搜索装置执行,本申请实施例的神经网络的搜索装置可以配置在任意电子设备中,以执行本申请实施例的神经网络的搜索方法。

在本申请实施例中,本申请实施例的神经网络的搜索方法可以应用在任意的需要生成神经网络模型的场景中,比如,可以应用在图像语义分割、图像分类、视频分类、人体关键点检测等图像处理应用场景、自然语言处理场景,等等,以生成需要的图像处理模型或自然语言处理模型等。

其中,搜索空间,可以是指预先建立的神经网络结构。

作为一种示例,搜索空间可以是如图2所示的神经网络模型结构。其中,图2中的实线框内中的内容为1个段(stage),虚线框内的内容为1个块(block),圆形为室(cell),室之间的实线为固定连接,室之间的虚线为可学习连接。搜索空间从宏观角度来说,由段(stage)、块(block)、室(cell)组成。需要说明的是,室与本申请中的层相同。图2所示的搜索空间,每个段处理的特征图的分辨率相同,段与段之间特征图的分辨率减半;在每个段内部由若干个块组成,同一个块内部处理的特征图的通道数相同;在每个块内部,由两条(或任意条,允许块中的室在多少个类型的设备中计算,就可以具有几条分支)分支组成;在每个分支内,由固定连接关联所有室;在分支之间,采用可学习的连接进行关联。

其中,候选网络结构,是指确定出搜索空间对应的神经网络结构中的各个层对应的算子,以及各算子之间是否具有可学习连接之后,生成的网络结构。

其中,层可以为图2中所示的室。需要说明的是,搜索空间中的每个层可以通过其对应的算子对输入该层的数据进行运算。

在本申请实施例中,可以根据实际需要预设多个待选择的算子,并对每个待选择的算子进行编码,以生成每个待选择的算子对应的算子编码。比如,一共有5个待选择的算子,则各待选择的算子对应的算子编码可以为1、2、3、4、5。对于搜索空间中的每个层可以从多个待选择的算子中选择任意一个算子作为该层对应的算子,以进行实际的网络计算,以及选择不同分支之间的可学习连接是否激活,进而根据搜索空间中各层对应的算子编码以及不同分支中各层间的可学习连接是否激活,生成多个基因编码序列。其中,每个基因编码序列对应一个神经网络结构。

举例来说,如图3所示为一种网络结构对应的基因编码序列的示意图。其中,该基因编码序列包括两个部分,301是指该神经网络结构中每个层对应的算子编码,302是指该候选网络结构中不同分支的各层之间的可学习连接是否激活对应的编码;其中,在算子编码中,1可以代表为该层选择的算子的编码为1,2可以代表为该层选择的算子的编码为2;在分支间可学习连接编码中,0可以表示阻止此可学习连接,1可以表示激活可学习连接。

在本申请实施例中,根据搜索空间的结构以及待选择的算子生成各个基因编码序列之后,可以将对各个基因编码序列对应的神经网络结构进行超网络训练,并将对各神经网络结构进行超网络训练之后生成的网络结构,确定为各候选网络结构。

步骤102,基于预设的各算子编码在各类设备中的运行耗时及各个层对应的算子编码,确定每个候选网络结构的总耗时。

其中,各类设备,可以包括CPU(Central Processing Unit,中央处理器)、GPU(Graphics Processing Unit,图形处理器)、DSP(Digital Signal Process,数字信号处理器)、NPU(Neural-network Processing Unit,网络处理器),等等,本申请实施例对此不做限定。

在本申请实施例中,可以根据经验或实验数据确定各算子在各类设备中的运行耗时,以生成预设的各算子编码在各类设备中的运行耗时。作为一种示例,可以以表格的方式表示预设的各算子编码在各类设备中的运行耗时,从而可以根据预设的各算子编码在各类设备中的运行耗时,生成耗时查找表,其中耗时查找表中可以包括算子编码与其在各类设备中的运行耗时的对应关系,如表1所示。

表1

从而,在从搜索空间中获取到各个候选网络结构之后,对于每个候选网络结构中的每个层对应的算子编码,可以从查找表中获取每个层在各类设备中的运行耗时,并确定该候选网络结构中每个层在各类设备中的最小耗时,进而将该候选网络结构中每个层在各类设备中的最小耗时之和,确定为该候选网络结构的总耗时。按照上述相同的方式,可以确定出所有候选网络结构的总耗时。

步骤103,获取每个候选网络结构在测试集上的精度。

其中,测试集,是指根据当前的实际业务场景确定的测试数据集。比如,当前的业务场景为图像分类,则测试集中可以包括大量不同类型的图像数据,以及各图像数据对应的标注数据,其中图像数据对应的标注数据可以用于指示该图像数据的类型。

在本申请实施例中,从搜索空间中获取到各候选网络结构之后,可以将测试集中的各数据依次输入各候选网络结构,以根据各候选网络结构的输出确定各候选网络结构的精度。

作为一种示例,对于一个候选网络结构,可以将测试集中的各数据输入候选网络结构,以使该候选网络结构输出每个数据对应的预测数据,进而根据测试集中每个数据对应的预测数据与标注数据的差异,确定该候选网络结构的损失值,进而根据该候选网络结构的损失值,确定该候选网络结构的精度。可选的,可以将候选网络结构在测试集上的损失值确定为该候选网络结构的精度。同理,可以按照上述方式,确定出所有候选网络结构在测试集上的精度。

举例来说,当前的业务场景为图像分类场景,测试集中包括大量图像数据,以及各图像数据对应的标注类型数据,从而可以将测试集中的各图像数据输入候选网络结构,以使该候选网络结构输出各图像数据对应的预测类型数据,进而可以根据每个图像数据对应的预测类型数据与标注类型数据之间的差异,确定该候选网络结构的损失值,并将该候选网络结构的损失值确定该候选网络结构在测试集上的精度。

步骤104,根据每个候选网络结构在测试集上的精度及总耗时,确定神经网络对应的目标网络结构。

在本申请实施例中,可以通过候选网络结构在测试集上的精度和总耗时两个指标,衡量候选网络结构的性能,以同时提升神经网络的准确度和效率。因此,可以根据每个候选网络结构在测试集上的精度和总耗时,确定神经网络对应的目标网络结构。

作为一种可能的实现方式,可以将候选网络结构的总耗时越大说明候选网络结构的计算效率越低;在将候选网络结构在测试集上的损失值确定为候选网络结构在测试集上的精度时,候选网络结构在测试集上的精度越小,说明候选网络结构在测试集上的准确度越高。因此,作为一种示例,可以将确定出每个候选网络结构在测试集上的精度和总耗时之和,分别确定为每个候选网络结构的得分;或者,还可以将每个候选网络结构在测试集上的精度和总耗时的均值,分别确定为每个候选网络结构的得分;或者,还可以根据实际业务需求对候选网络结构在测试集上的精度和总耗时分配不同的权重,并将每个候选网络结构在测试集上的精度和总耗时的加权和,分别确定为每个候选网络结构的得分。进而将得分最低的一个或多个候选网络结构确定为神经网络对应的目标网络结构。

需要说明的是,在对候选网络结构在测试集上的精度和总耗时分配权重时,若当前业务场景对神经网络结构的准确度要求较高,而神经网络的计算效率要求较低,则可以将精度对应的权重确定为较大的值,并可以将总耗时对应的权重确定为较小的值;反之,则可以将精度对应的权重确定为较小的值,并可以将总耗时对应的权重确定为较大的值。

在本申请实施例中,由于涉及图像处理的神经网络模型通常需要占用较大的计算资源,而手机、平板电脑等便携式电子设备计算资源比较有限,因此本申请实施例的神经网络的搜索方法可以用于设计图像处理的神经网络模型的构建,从而不仅可以提升模型的构建效率,而且通过充分利用异构设备的计算资源,提升了图像处理的效率和精度,降低了对图像处理设备的硬件要求。

根据本申请实施例的技术方案,通过从搜索空间中,获取神经网络对应的各个候选网络结构,其中,每个候选网络结构中包含各个层对应的算子编码,并基于预设的各算子编码在各类设备中的运行耗时及各个层对应的算子编码,确定每个候选网络结构的总耗时,之后获取每个候选网络结构在测试集上的精度,进而根据每个候选网络结构在测试集上的精度及总耗时,确定神经网络对应的目标网络结构。由此,通过在搜索空间中进行神经网络搜索,并根据候选网络结构中的各算子编码在各类设备中的运行耗时与各候选网络结构的精度,确定适合于当前测试集的、且可在异构设备中运行的最佳网络结构,从而不仅提升了神经网络结构的构建效率,而且可以充分利用异构设备的计算资源,提升了神经网络的计算效率和精度。

在本申请一种可能的实现形式中,由于可以允许候选网络结构中的各层在不同的设备中进行计算,因此在相邻层在不同的设备中进行计算时,会产生调度耗时,因此在确定候选网络结构的总耗时时,还可以考虑层之间的调度耗时,以进一步提升神经网络搜索的可靠性。

下面结合图4,对本申请实施例提供的神经网络的搜索方法进行进一步说明。

图4为本申请实施例所提供的另一种神经网络的搜索方法的流程示意图。

如图4所示,该神经网络的搜索方法,包括以下步骤:

步骤401,从搜索空间中,获取神经网络对应的各个候选网络结构,其中,每个候选网络结构中包含各个层对应的算子编码。

上述步骤401的具体实现过程及原理,可以参照上述实施例的详细描述,此处不再赘述。

步骤402,基于预设的各算子编码在各类设备中的运行耗时及各个层对应的算子编码,确定每个候选网络结构中每个层对应的计算耗时。

在本申请实施例中,可以根据经验或实验数据确定各算子在各类设备中的运行耗时,以生成预设的各算子编码在各类设备中的运行耗时。作为一种示例,可以以表格的方式表示预设的各算子编码在各类设备中的运行耗时,从而可以根据预设的各算子编码在各类设备中的运行耗时,生成耗时查找表,其中耗时查找表中可以包括算子编码与其在各类设备中的运行耗时的对应关系,如表1所示。

作为一种可能的实现方式,在从搜索空间中获取到各个候选网络结构之后,对于每个候选网络结构中的每个层对应的算子编码,可以从查找表中获取每个层在各类设备中的运行耗时,并将该候选网络结构中每个层在各类设备中的最小耗时分别确定为每个层对应的计算耗时。

步骤403,确定各个层间的调度耗时。

在本申请实施例中,由于候选网络结构中的各层可能在不同的设备中进行计算,因此在相邻层在不同的设备中进行计算时,相邻层间会产生调度耗时,因此在确定候选网络结构的总耗时时,还可以考虑层之间的调度耗时,以进一步提升神经网络搜索的可靠性。

作为一种可能的实现方式,还可以根据候选网络结构中每个层的算子编码和在各类设备中的运行耗时,确定各个层间是否存在设备调度,以及根据各层之间的连接关系,确定各个层间的调度耗时。即在本申请实施例一种可能的实现方式中,上述候选网络结构中还可以包括各个层间的关系编码;相应的,上述步骤403,可以包括:

基于预设的各算子编码在各类设备中的运行耗时及各个层对应的算子编码,确定每个候选网络结构中每个层对应的目标设备类型;

根据每个候选网络结构中各个层间的关系编码及每个层对应的目标设备类型,确定每个候选网络结构对应的各类设备间的调度关系;

根据每个候选网络结构对应的各类设备间的调度关系、及预设的各类设备间的调度耗时,确定各个层间的调度耗时。

其中,层对应的目标设备类型,可以是指是使得该层对应的运行耗时最小的设备类型。

其中,各个层间的关系编码,可以是根据各个层间的可学习连接是否激活生成的。比如,层A与层B之间的可学习连接的状态为“阻止”时,层A与层B之间的关系编码可以为“0”;层A与层B之间的可学习连接的状态为“激活”时,层A与层B之间的关系编码可以为“1”。

在本申请实施例中,可以根据预设的各算子编码在各类设备中的运行耗时及各个层对应的算子编码,确定各个层对应的算子编码在各类设备中的最小运行耗时,确定为各个层对应的计算耗时,并把该计算耗时对应的设备类型确定各个层对应的目标设备类型。之后,可以在相邻层对应的目标设备类型不同,且该相邻层之间的关系编码指示该相邻层之间的可学习连接为激活时,确定该相邻层之间存在设备调度;并否则,确定该相邻层之间不存在设备调度,从而确定出候选网络结构对应的各类设备间的调度关系。

在本申请实施例中,可以根据经验或者实验数据确定各类设备间的调度耗时,以生成预设的各类设备间的调度耗时,进而可以根据候选网络结构对应的各类设备间的调度关系,各层对应的目标设备类型,确定候选网络结构各个层间的调度耗时。

举例来说,假设候选网络结构中包含3个层,层A与层B相邻,层B与层C相邻,各类设备包括CPU与GPU,层A对应的算子编码在CPU中的耗时为0.2ms、在GPU中的耗时为0.3ms,层B对应的算子编码在CPU中的耗时为0.31ms、在GPU中的耗时为0.25ms,层C对应的算子编码在CPU中的耗时为0.1ms、在GPU中的耗时为0.22ms;层A与层B之间的关系编码为1,层B与层C之间的关系编码为1。从而,可以确定层A对应的目标设备类型为CPU,层B对应的目标设备类型为GPU,层C对应的目标设备类型为CPU,进而可以确定层A与层B之间存在调度关系,层B与层C之间存在调度关系。并且,根据预设的各类设备间的调度耗时确定CPU与GPU之间的调度耗时为0.1ms,从而可以确定层A与层B之间的调度耗时为0.1ms,层B与层C之间的调度耗时为0.1ms

步骤404,根据每个候选网络结构中每个层对应的计算耗时及各个层间的调度耗时,确定每个候选网络结构的总耗时。

在本申请实施例中,在确定出每个候选网络结构中每个层对应的计算耗时,以各个层间的调度耗时之后,可以将每个候选网络结构中每个层对应的计算耗时与各个层间的调度耗时之和,分别确定为每个候选网络结构的总耗时。

步骤405,获取每个候选网络结构在测试集上的精度。

步骤406,根据每个候选网络结构在测试集上的精度及总耗时,确定神经网络对应的目标网络结构。

上述步骤405-406的具体实现过程及原理,可以参照上述实施例的详细描述,此处不再赘述。

根据本申请实施例的技术方案,通过从搜索空间中,获取神经网络对应的各个候选网络结构,其中,每个候选网络结构中包含各个层对应的算子编码,并确定每个候选网络结构中每个层对应的计算耗时与各个层间的调度耗时,确定每个候选网络结构的总耗时,之后获取每个候选网络结构在测试集上的精度,进而根据每个候选网络结构在测试集上的精度及总耗时,确定神经网络对应的目标网络结构。由此,通过在搜索空间中进行神经网络搜索,并根据候选网络结构中的各层的计算耗时、各层间的调度耗时与各候选网络结构的精度,确定适合于当前测试集的、且可在异构设备中运行的最佳网络结构,从而不仅可以充分利用异构设备的计算资源,提升了神经网络的计算效率和精度,而且进一步提升了神经网络搜索的可靠性。

在本申请一种可能的实现形式中,可以从搜索空间中抽取部分精度较高的神经网络结构,并将抽取出的神经网络结构进行交叉、变异处理,以生成候选网络结构,从而降低无效搜索范围,提升神经网络结构搜索的效率。

下面结合图5,对本申请实施例提供的神经网络的搜索方法进行进一步说明。

图5为本申请实施例所提供的再一种神经网络的搜索方法的流程示意图。

如图5所示,该神经网络的搜索方法,包括以下步骤:

步骤501,确定搜索空间中各初始网络结构在测试集上的第一精度值。

在本申请实施例中,从搜索空间中可以获取到数量庞大的网络结构,从而将搜索空间中所有可能的网络结构作为候选网络结构进行搜索,会使得搜索范围过大,影响神经网络结构的搜索效率。因此,作为一种可能的实现方式可以利用遗传算法对精度较高的网络结构进行交叉、变异处理,以生成在测试集上精度较高的候选网络结构,以降低无效搜索范围。

其中,初始网络结构,可以是指对基因编码序列对应的网络结构进行超网络训练后,生成的网络结构。

其中,第一精度值,可以反映初始网络结构在测试集上的准确性。

在本申请实施例中,根据搜索空间的结构以及待选择的算子生成各个基因编码序列之后,可以将对各个基因编码序列对应的神经网络结构进行超网络训练,并将对各神经网络结构进行超网络训练之后生成的网络结构,确定为各初始网络结构。进而,在获取到实际的业务场景对应的测试集之后,可以将测试集中的每个数据输入各初始网络结构,以确定各初始网络结构在测试集上的损失值。

作为一种可能的实现方式,由于初始网络结构在测试集上的损失值,与初始网络结构在测试集上的准确性呈负相关关系,因此可以将初始网络结构在测试集上的损失值,确定为该初始网络结构在测试集上的第一精度值,以提升第一精度值确定的简便性。

作为另一种可能的实现方式,由于初始网络结构在测试集上的损失值,与初始网络结构在测试集上的准确性呈负相关关系,因此还可以将使得初始网络结构在测试集上的第一精度值与初始网络结构在测试集上的损失值呈负相关关系,以使初始网络结构在测试集上的第一精度值与初始网络结构在测试集上的准确性呈正相关关系,从而使得第一精度值可以直接标识初始网络结构在测试集上的准确性。比如,可以将初始网络结构在测试集上的第一精度值,确定为1-L,其中,L为初始网络结构在测试集上的损失值。

需要说明的是,实际使用时,可以根据实际需要及具体的应用场景,选择第一精度值的确定方式,本申请实施例对此不做限定。以下以初始网络结构在测试集上的第一精度值与初始网络结构在测试集上的准确性呈正相关关系为例,进行具体说明。

步骤502,根据每个初始网络结构在测试集上的第一精度值,从各个初始网络结构中选取待交叉的初始网络结构。

作为一种可能的实现方式,可以通过NSGAII(Non Dominated Sorting GeneticAlgorithm-II,第二代非支配排序遗传算法),对精度较高的初始网络结构进行交叉、变异处理,以生成候选网络结构。由于初始网络结构在测试集上的第一精度值越大,说明初始网络结构在测试集上的准确性越高,因此,可以将每个初始网络结构在测试集上的第一精度值,分别确定为每个初始网络结构的个体适应度。

作为一种示例,由于初始网络结构的个体适应度越大,被选择作为待交叉的初始网络结构的概率越大,因此可以利用NSGAII遗传算法根据每个初始网络结构的个体适应度,从初始网络结构中选取出各个待交叉的初始网络结构。

步骤503,将待交叉的初始网络结构进行交叉处理,以生成新的网络结构。

在本申请实施例中,对一个待交叉的初始网络结构A进行交叉处理时,可以从其他待交叉的初始网络结构中选取与初始网络结构A的基因编码序列之间的差异性最大的初始网络结构B,并将初始网络B对应的基因编码序列中的部分编码与初始网络结构A对应的基因编码序列中相应位置的编码进行交换,以实现对初始网络结构A与初始网络结构B的交叉处理,以生成初始网络结构A对应的新的网络结构,以及初始网络结构B对应的新的网络结构。同样的,按照上述相同的方式,可以将各个待交叉的初始网络结构进行交叉处理,以生成各个待交叉的初始网络结构对应的新的网络结构。

作为一种示例,由于对待交叉的初始网络结构进行交叉处理时,是利用与其差异性最大的待交叉的初始网络结构中的部分层对应的算子编码,对该初始网络结构中的部分层对应的算子编码进行替换,而本申请实施例中的网络结构是由段、块、室三种粒度的结构构成的,因此在对待交叉的初始网络结构进行交叉处理时,可以首先确定待交叉的算子编码所在的段,之后在待交叉的算子编码所在的段中确定待交叉的算子编码所在的块,进而在待交叉的算子编码所在的块中确定待交叉的算子编码,以降低无效搜索范围,提升交叉处理的效率。

需要说明的是,对待交叉的初始网络结构进行交叉处理时,发生替换的算子编码可以是采用随机方式确定的,本申请实施例对此不做限定。

步骤504,根据新的网络结构在测试集上的第二精度值,将新的网络结构进行变异处理,以生成变异后的网络结构。

其中,第二精度值,可以反映新的网络结构在测试集上的准确性。

在本申请实施例中,可以将测试集中的各数据依次输入新的网络结构,以根据新的网络结构在测试集上的损失值,确定新的网络结构在测试集上的第三损失值。

需要说明的是,确定新的网络结构在测试集上的第二精度值的方式,与确定初始网络结构在测试集上的第一精度值的方式相同,此处不再赘述。作为一种示例,以下以新的网络结构在测试集上的第二精度值与新的网络结构在测试集上的准确性呈正相关关系为例,进行具体说明。

在本申请实施例中,可以将新的网络结构在测试集上的第二精度值,确定为新的网络结构的个体适应度,并对各个新的网络结构的个体适应度进行归一化处理。由于新的网络结构的个体适应度越高,新的网络结构进行变异的概率越低,因此可以将新的网络结构中变异位的比例α确定为1-C,即α=1-C,其中,C为新的网络结构的个体适应度。之后,可以按照变异位的比例α从新的网络结构中随机选取相应数量的层进行变异处理,以生成变异后的网络结构。

作为一种示例,由于对新的网络结构进行变异处理时,是对网络结构中的层进行变异处理,而本申请实施例中的网络结构是由段、块、室三种粒度的结构构成的,因此在对新的网络结构进行变异处理时,可以首先确定待变异的层所在的段,之后在待变异的层所在的段中确定待变异的层所在的块,进而在待变异的层所在的块中确定待变异的层,以降低无效搜索范围,提升变异处理的效率。

步骤505,获取变异后的网络结构在测试集上的第三精度值。

其中,第三精度值,可以反映变异后的网络结构在测试集上的准确性。

在本申请实施例中,可以将测试集中的各数据依次输入变异后的网络结构,以根据变异后的网络结构在测试集上的损失值,确定变异后的网络结构在测试集上的第三损失值。

需要说明的是,确定变异后的网络结构在测试集上的第三精度值的方式,与确定初始网络结构在测试集上的第一精度值的方式相同,此处不再赘述。作为一种示例,以下以变异后的网络结构在测试集上的第三精度值与变异后的网络结构在测试集上的准确性呈正相关关系为例,进行具体说明。

步骤506,基于各变异后的网络结构分别对应的各第三精度值,将各变异后的网络结构进行交叉、变异处理,直至生成的各候选网络结构满足预设的收敛条件。

其中,预设的收敛条件,可以是变异后的网络结构在测试集上的第三精度值大于或等于精度阈值,但不仅限于此。

在本申请实施例中,若变异后的网络结构对应的第三精度值较大,即变异后的网络结构满足预设的收敛条件,则可以将变异后的网络结构确定为候选网络结构;若变异后的网络结构对应的第三精度值较小,即变异后的网络结构不满足预设的收敛条件,则可以按照步骤501-505中对网络结构进行交叉、变异处理的方式继续对变异后的网络结构进行交叉、变异处理,直至变异后的网络结构在测试集上的第三精度值满足预设的收敛条件,则可以将该变异后的网络结构确定为候选网络结构。

需要说明的是,实际使用时,不仅可以将满足预设的收敛条件的变异后的网络结构确定为候选网络结构,还可以将步骤502中选取出的待交叉的初始网络结构确定为候选网络结构。

步骤507,基于预设的各算子编码在各类设备中的运行耗时及各个层对应的算子编码,确定每个候选网络结构的总耗时。

步骤508,获取每个候选网络结构在测试集上的精度。

步骤509,根据每个候选网络结构在测试集上的精度及总耗时,确定神经网络对应的目标网络结构。

上述步骤507-509的具体实现过程及原理,可以参照上述实施例的详细描述,此处不再赘述。

根据本申请实施例的技术方案,通过对搜索空间中精度较高的各初始网络结构进行交叉、变异处理,生成各候选网络结构,并基于预设的各算子编码在各类设备中的运行耗时及各个层对应的算子编码,确定每个候选网络结构的总耗时,之后获取每个候选网络结构在测试集上的精度,进而根据每个候选网络结构在测试集上的精度及总耗时,确定神经网络对应的目标网络结构。由此,通过从搜索空间中抽取部分精度较高的网络结构进行交叉、变异处理,以生成候选网络结构,并根据候选网络结构中的各算子编码在各类设备中的运行耗时与各候选网络结构的精度,确定适合于当前测试集的、且可在异构设备中运行的最佳网络结构,从而不仅可以充分利用异构设备的计算资源,提升了神经网络的计算效率和精度,而且进一步提升了神经网络结构搜索和构建的效率。

在本申请一种可能的实现形式中,由于从搜索空间中选择的网络结构的参数量不同,而低参数量网络结构和高参数量网络结构参与梯度调整时具有不公平性,因此在超网络训练时,高参数量网络结构容易出现欠训练的情况,从而影响了神经网络结构的精度。

下面结合图6,对本申请实施例提供的神经网络的搜索方法进行进一步说明。

图6为本申请实施例所提供的又一种神经网络的搜索方法的流程示意图。

如图6所示,该神经网络的搜索方法,包括以下步骤:

步骤601,根据每个锚点网络结构对应的目标输出特征及损失约束,对每个锚点网络结构进行超网络训练,以生成锚点网络结构对应的候选网络结构。

其中,锚点网络结构,可以是指根据搜索空间的网络结构和待选择的算子,生成的复杂性较高的网络结构。

其中,锚点网络结构对应的目标输出特征,可以包括将锚点网络结构训练至收敛状态时,锚点网络结构中各层对应的输出特征。

在本申请实施例中,根据搜索空间的网络结构和待选择的算子生成的各网络结构的参数量不同,而低参数量网络结构和高参数量网络结构参与梯度调整时具有不公平性,即高参数量网络结构需要经过更多次的梯度调整,才能达到收敛。因此,在对各网络结构进行超网络训练时,低参数量网络结构达到收敛状态(或近收敛状态)时,高参数量网络结构还处于欠训练状态,因此可以将高参数量网络结构作为锚点网络结构进行提前训练,以提升高参数量网络结构在超网络训练阶段的训练效果。

作为一种可能的实现方式,在超网络训练阶段,可以在每次迭代时以一定概率采样锚点网络结构,并根据锚点网络结构在超网络训练时每层的输出特征与相应层对应的目标输出特征之间的差异,生成损失函数的取值,并根据损失函数的取值对锚点网络结构进行梯度调整,实现锚点网络结构的超网络训练,并将进行超网络训练后的锚点网络结构作为候选网络结构;比如,可以采用L2范数损失函数约束锚点网络结构的超网络训练。从而,通过损失函数约束锚点网络结构在超网络训练时每层的输出与相应层对应的目标输出特征保持一致,以改善超网络训练时高参数量网络结构与低参数量网络结构梯度调整不公平的情况,提升高参数量网络结构的训练效果。

进一步的,可以根据各个网络结构中包含的算子及算子间的连接关系,选取锚点网络结构。即在本申请实施例一种可能的实现方式中,上述步骤601之前,还可以包括:

根据搜索空间内各个网络结构中包含的算子数量、类型及各算子间的连接关系,确定锚点网络结构;

利用预设的训练集,对每个锚点网络结构进行训练,以确定每个锚点网络结构对应的目标输出特征。

作为一种可能的实现方式,由于网络结构中包含的算子数量越多、包含的计算复杂性高的算子类型越多、算子间的连接关系越复杂,说明网络结构的计算复杂性越高,即网络结构中的参数量越多。因此,可以根据搜索空间内各个网络结构中包含的算子数量、类型及各算子间的连接关系,确定各个网络结构的计算复杂性,进而根据各个网络结构的计算复杂性,确定锚点网络结构。即在本申请实施例一种可能的实现方式中,上述根据搜索空间内各个网络结构中包含的算子数量、类型及各算子间的连接关系,确定锚点网络结构,可以包括:

根据搜索空间内各个网络结构中包含的算子数量、类型及各算子间的连接关系,确定各个网络结构对应的计算复杂性;

根据每个网络结构对应的计算复杂性,将搜索空间内的各个网络结构进行分类,以生成多个网络结构集合,其中,每个网络结构集合中包含的网络结构内的计算复杂性相似;

分别从每个网络结构集合中抽取至少一个锚点网络结构。

作为一种示例,可以按照网络结构对应的计算复杂度与网络结构中包含的算子数量、各类算子类型的计算复杂性、各算子之间的连接关系的复杂性呈正相关关系的原则,确定出各个网络结构对应的计算复杂性。之后,将搜索空间中的各个网络结构按照计算复杂性进行分类,以将计算复杂性相似的网络结构划分至同一个网络结构集合;进而,在每个网络结构集合中抽取至少一个网络结构作为锚点网络结构,从而,使得不同计算复杂性的网络结构中均包含锚点网络结构。

作为另一种示例,将搜索空间中的各个网络结构根据计算复杂性划分至多个网络结构集合之后,还可以根据预设的复杂性阈值,从计算复杂性大于复杂性阈值的各个网络集合中选取至少一个网络结构,作为锚点网络结构,以使锚点网络结构为高参数量的网络结构。

需要说明的是,将搜索空间中的各个网络结构根据计算复杂性划分至多个网络结构集合时,可以将网络结构的计算复杂性划分为多个数值范围,并将计算复杂性处于同一数值范围的网络结构,划分至同一个网络结构结合,从而实现网络结构的分类。

在本申请实施例中,确定出锚点网络结构之后,为提升锚点网络结构在超网络训练阶段的训练效果,可以利用预设的训练集提前对每个锚点网络结构进行训练,以使每个锚点网络结构在预设的训练集上处于收敛状态,并将每个锚点网络结构处于收敛状态时各层对应的输出特征,分别确定为每个锚点网络结构对应的目标输出特征。

步骤602,根据每个普通网络结构对应的损失约束,对每个普通网络结构进行超网络训练,以生成普通网络结构对应的候选网络结构。

其中,普通网络结构,是指搜索空间中除锚点网络结构之外的其他网络结构,可以使搜索空间中参数量较少的网络结构。

在本申请实施例中,在超网络训练阶段,每次迭代可以从搜索空间中随机选择一个普通网络结构,并按照该普通网络结构对应的损失约束对该普通网络结构进行梯度调整,以实现对该普通网络结构的超网络训练,进而将进行超网络训练之后的各普通网络结构,确定为候选网络结构。

步骤603,基于预设的各算子编码在各类设备中的运行耗时及各个层对应的算子编码,确定每个候选网络结构的总耗时。

步骤604,获取每个候选网络结构在测试集上的精度。

步骤605,根据每个候选网络结构在测试集上的精度及总耗时,确定神经网络对应的目标网络结构。

上述步骤603-605的具体实现过程及原理,可以参照上述实施例的详细描述,此处不再赘述。

根据本申请实施例的技术方案,通过根据每个锚点网络结构对应的目标输出特征及损失约束,对每个锚点网络结构进行超网络训练,以生成锚点网络结构对应的候选网络结构,以及根据每个普通网络结构对应的损失约束,对每个普通网络结构进行超网络训练,以生成普通网络结构对应的候选网络结构,并基于预设的各算子编码在各类设备中的运行耗时及各个层对应的算子编码,确定每个候选网络结构的总耗时,之后获取每个候选网络结构在测试集上的精度,进而根据每个候选网络结构在测试集上的精度及总耗时,确定神经网络对应的目标网络结构。由此,通过提前将高参数量的锚点网络结构训练至收敛状态,并根据锚点网络结构在收敛状态的目标输出特征对锚点网络结构的超训练过程进行约束,以生成各候选网络结构,并根据候选网络结构中的各算子编码在各类设备中的运行耗时与各候选网络结构的精度,确定适合于当前测试集的、且可在异构设备中运行的最佳网络结构,从而不仅提升了神经网络结构的构建效率,充分利用了异构设备的计算资源,而且提升了神经网络的精度。

为了实现上述实施例,本申请还提出一种神经网络的搜索装置。

图7为本申请实施例提供的一种神经网络的搜索装置的结构示意图。

如图7所示,该神经网络的搜索装置70,包括:

第一获取模块71,用于从搜索空间中,获取神经网络对应的各个候选网络结构,其中,每个候选网络结构中包含各个层对应的算子编码;

第一确定模块72,用于基于预设的各算子编码在各类设备中的运行耗时及各个层对应的算子编码,确定每个候选网络结构的总耗时;

第二获取模块73,用于获取每个候选网络结构在测试集上的精度;

第二确定模块74,用于根据每个候选网络结构在测试集上的精度及总耗时,确定神经网络对应的目标网络结构。

在实际使用时,本申请实施例提供的神经网络的搜索装置,可以被配置在任意电子设备中,以执行前述神经网络的搜索方法。

根据本申请实施例的技术方案,通过从搜索空间中,获取神经网络对应的各个候选网络结构,其中,每个候选网络结构中包含各个层对应的算子编码,并基于预设的各算子编码在各类设备中的运行耗时及各个层对应的算子编码,确定每个候选网络结构的总耗时,之后获取每个候选网络结构在测试集上的精度,进而根据每个候选网络结构在测试集上的精度及总耗时,确定神经网络对应的目标网络结构。由此,通过在搜索空间中进行神经网络搜索,并根据候选网络结构中的各算子编码在各类设备中的运行耗时与各候选网络结构的精度,确定适合于当前测试集的、且可在异构设备中运行的最佳网络结构,从而不仅提升了神经网络结构的构建效率,而且可以充分利用异构设备的计算资源,提升了神经网络的计算效率和精度。

在本申请一种可能的实现形式中,上述第一确定模块72,包括:

第一确定单元,用于基于预设的各算子编码在各类设备中的运行耗时及各个层对应的算子编码,确定每个候选网络结构中每个层对应的计算耗时;

第二确定单元,用于确定各个层间的调度耗时;

第三确定单元,用于根据每个候选网络结构中每个层对应的计算耗时及各个层间的调度耗时,确定每个候选网络结构的总耗时。

进一步的,在本申请另一种可能的实现形式中,上述每个候选网络结构中还包括各个层间的关系编码,上述第二确定单元,包括:

第一确定子单元,用于基于预设的各算子编码在各类设备中的运行耗时及各个层对应的算子编码,确定每个候选网络结构中每个层对应的目标设备类型;

第二确定子单元,用于根据每个候选网络结构中各个层间的关系编码及每个层对应的目标设备类型,确定每个候选网络结构对应的各类设备间的调度关系;

第三确定子单元,用于根据每个候选网络结构对应的各类设备间的调度关系、及预设的各类设备间的调度耗时,确定各个层间的调度耗时。

进一步的,在本申请再一种可能的实现形式中,上述第一获取模块71,包括:

第四确定单元,用于确定搜索空间中各初始网络结构在测试集上的第一精度值;

选取单元,用于根据每个初始网络结构在测试集上的第一精度值,从各个初始网络结构中选取待交叉的初始网络结构;

交叉处理单元,用于将待交叉的初始网络结构进行交叉处理,以生成新的网络结构;

变异处理单元,用于根据新的网络结构在测试集上的第二精度值,将新的网络结构进行变异处理,以生成变异后的网络结构;

获取单元,用于获取变异后的网络结构在测试集上的第三精度值;

迭代单元,用于基于各变异后的网络结构分别对应的各第三精度值,将各变异后的网络结构进行交叉、变异处理,直至生成的各候选网络结构满足预设的收敛条件。

进一步的,在本申请又一种可能的实现形式中,上述搜索空间中包括普通网络结构、锚点网络结构及每个锚点网络结构对应的目标输出特征,上述第一获取模块71,包括:

第一训练单元,用于根据每个锚点网络结构对应的目标输出特征及损失约束,对每个锚点网络结构进行超网络训练,以生成锚点网络结构对应的候选网络结构;

第二训练单元,用于根据每个普通网络结构对应的损失约束,对每个普通网络结构进行超网络训练,以生成普通网络结构对应的候选网络结构。

进一步的,在本申请又一种可能的实现形式中,上述神经网络的搜索装置70,还包括:

第三确定模块,用于根据搜索空间内各个网络结构中包含的算子数量、类型及各算子间的连接关系,确定锚点网络结构;

第四确定模块,用于利用预设的训练集,对每个锚点网络结构进行训练,以确定每个锚点网络结构对应的目标输出特征。

进一步的,在本申请另一种可能的实现形式中,上述第三确定模块,包括:

第五确定单元,用于根据搜索空间内各个网络结构中包含的算子数量、类型及各算子间的连接关系,确定各个网络结构对应的计算复杂性;

生成单元,用于根据每个网络结构对应的计算复杂性,将搜索空间内的各个网络结构进行分类,以生成多个网络结构集合,其中,每个网络结构集合中包含的网络结构内的计算复杂性相似;

抽取单元,用于分别从每个网络结构集合中抽取至少一个锚点网络结构。

需要说明的是,前述对图1、图4、图5、图6所示的神经网络的搜索方法实施例的解释说明也适用于该实施例的神经网络的搜索装置70,此处不再赘述。

根据本申请实施例的技术方案,通过从搜索空间中,获取神经网络对应的各个候选网络结构,其中,每个候选网络结构中包含各个层对应的算子编码,并确定每个候选网络结构中每个层对应的计算耗时与各个层间的调度耗时,确定每个候选网络结构的总耗时,之后获取每个候选网络结构在测试集上的精度,进而根据每个候选网络结构在测试集上的精度及总耗时,确定神经网络对应的目标网络结构。由此,通过在搜索空间中进行神经网络搜索,并根据候选网络结构中的各层的计算耗时、各层间的调度耗时与各候选网络结构的精度,确定适合于当前测试集的、且可在异构设备中运行的最佳网络结构,从而不仅可以充分利用异构设备的计算资源,提升了神经网络的计算效率和精度,而且进一步提升了神经网络搜索的可靠性。

根据本申请的实施例,本申请还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。

图8示出了可以用来实施本申请的实施例的示例电子设备800的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。

如图8所示,设备800包括计算单元801,其可以根据存储在只读存储器(ROM)802中的计算机程序或者从存储单元808加载到随机访问存储器(RAM)803中的计算机程序,来执行各种适当的动作和处理。在RAM 803中,还可存储设备800操作所需的各种程序和数据。计算单元801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。

设备800中的多个部件连接至I/O接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。

计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和处理,例如神经网络的搜索方法。例如,在一些实施例中,神经网络的搜索方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由ROM802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序加载到RAM803并由计算单元801执行时,可以执行上文描述的神经网络的搜索方法的一个或多个步骤。备选地,在其他实施例中,计算单元801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行神经网络的搜索方法。

本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。

用于实施本申请的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。

在本申请的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。

可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、互联网和区块链网络。

计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS(VirtualPrivate Server,虚拟专用服务器)服务中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。

根据本申请实施例的技术方案,通过从搜索空间中,获取神经网络对应的各个候选网络结构,其中,每个候选网络结构中包含各个层对应的算子编码,并基于预设的各算子编码在各类设备中的运行耗时及各个层对应的算子编码,确定每个候选网络结构的总耗时,之后获取每个候选网络结构在测试集上的精度,进而根据每个候选网络结构在测试集上的精度及总耗时,确定神经网络对应的目标网络结构。由此,通过在搜索空间中进行神经网络搜索,并根据候选网络结构中的各算子编码在各类设备中的运行耗时与各候选网络结构的精度,确定适合于当前测试集的、且可在异构设备中运行的最佳网络结构,从而不仅提升了神经网络结构的构建效率,而且可以充分利用异构设备的计算资源,提升了神经网络的计算效率和精度。

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。

上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

相关技术
  • 神经网络架构搜索方法、装置、存储介质及电子设备
  • 神经网络架构搜索方法、装置、电子设备及存储介质
技术分类

06120112531840