网络结构搜索方法、装置、设备及计算机可读存储介质

文档序号:7808 发布日期:2021-09-17 浏览:44次 英文

网络结构搜索方法、装置、设备及计算机可读存储介质

技术领域

本申请实施例涉及互联网

技术领域

,涉及但不限于一种网络结构搜索方法、装置、设备及计算机可读存储介质。

背景技术

近些年,以深度神经网络为基础的深度学习基础引起了学术界和工业界的广泛关注,并在多个应用领域取得了突破性成果,包括图片识别、目标检测、语义分割、语音识别和自然语言处理等。然而,深度模型对应的网络结构往往有参数量大、计算复杂度高等问题,难以满足实际应用中的资源约束。因此,在特定约束的情况下找到合适的网络结构成为一个重要问题。

相关技术中搜索并生成网络结构的方法只考虑单一资源约束条件下的网络结构设计。然而,实际场景中往往需要考虑一系列的资源约束条件,以适应多种不同的应用场景,因此,相关技术中的方法不能实现在多个资源约束条件下同时进行搜索以生成网络结构,相关技术中针对于多个资源约束条件的搜索效率较低。

发明内容

本申请实施例提供一种网络结构搜索方法、装置、设备及计算机可读存储介质,涉及人工智能技术领域。由于针对于多个资源约束条件采样得到至少一个网络模块,且针对于多个资源约束条件选择每一网络模块的网络参数,并通过采样得到的网络模块和网络参数生成目标网络结构,如此,实现了在多个资源约束条件下同时进行搜索以生成目标网络结构,且针对于多个资源约束条件同时进行搜索,提高了搜索效率。

本申请实施例的技术方案是这样实现的:

本申请实施例提供一种网络结构搜索方法,包括:

接收网络结构搜索请求;所述网络结构搜索请求中包括至少两条资源约束条件;根据所述至少两条资源约束条件,在预设网络结构库中进行采样处理,得到至少一个网络模块;根据所述至少两条资源约束条件,在预设参数集合中选择每一所述网络模块的网络参数;通过所述至少一个网络模块和每一所述网络模块的网络参数,生成目标网络结构;将所述目标网络结构确定为所述网络结构搜索请求的搜索结果,并输出所述搜索结果。

本申请实施例提供一种网络结构搜索装置,包括:接收模块,用于接收网络结构搜索请求;所述网络结构搜索请求中包括至少两条资源约束条件;采样处理模块,用于根据所述至少两条资源约束条件,在预设网络结构库中进行采样处理,得到至少一个网络模块;选择模块,用于根据所述至少两条资源约束条件,在预设参数集合中选择每一所述网络模块的网络参数;生成模块,用于通过所述至少一个网络模块和每一所述网络模块的网络参数,生成目标网络结构;确定模块,用于将所述目标网络结构确定为所述网络结构搜索请求的搜索结果,并输出所述搜索结果。

在一些实施例中,所述装置还包括:处理模块,用于采用预先训练的控制器生成所述目标网络结构;其中,所述控制器通过以下步骤训练:获取至少两条样本约束条件;根据所述样本约束条件在预设网络结构库中进行采样处理,得到网络结构;确定所述网络结构的性能参数和计算复杂度;将所述性能参数和所述计算复杂度,分别与所述样本约束条件进行比较,得到用于评估所述网络结构的分值;根据所述分值对所述控制器进行优化训练,得到训练后的控制器。

在一些实施例中,所述控制器通过控制函数实现对所述目标网络结构的搜索;其中,所述控制函数通过以下公式表示:αT=f(T;θ);其中,α表示任一网络结构;T表示任一样本约束条件的上界,且满足所述样本约束条件T的网络结构表示为c(α)≤T;αT表示控制器输出的满足样本约束条件的上界T的网络结构;c(*)表示计算成本函数;f(*)表示需要学习的映射函数,θ表示所述映射函数中所包含的参数。

在一些实施例中,所述控制器还通过以下步骤训练:根据所述样本约束条件,依次选择所述网络结构的深度、宽度和卷积核大小;获取所述深度、所述宽度和所述卷积核大小分别对应的深度字符、宽度字符和卷积核大小字符;将所述深度字符、所述宽度字符和所述卷积核大小字符连接形成字符串;根据所述字符串生成所述网络结构。

在一些实施例中,所述控制器的目标函数通过以下公式表示:

其中,ΕT~τ表示针对于多条样本约束条件所计算得到的控制器的模型平均性能;π(·|T;θ)表示针对于任一样本约束条件的上界T的网络结构采样策略;Εα~π(·|T;θ)表示根据所学习到的网络结构采样策略采样多个网络结构后计算得到的结构平均性能;R(αT|T;w)表示在任一样本约束条件的上界T下任一网络结构αT的分值;w表示分值模型中的参数;τ表示T的分布;T~τ表示T的取值分布服从τ的分布;s.t.表示受约束。

在一些实施例中,所述控制器还通过以下步骤训练:通过所述目标函数,对所述性能参数和所述计算复杂度,分别与所述样本约束条件进行比较,得到用于评估所述网络结构的所述分值。

在一些实施例中,所述控制器还通过以下步骤训练:根据所述分值,对所述样本约束条件和所述网络结构的结构平均性能进行最大化处理,得到最大化处理后的样本约束条件和最大化处理后的网络结构的结构平均性能;根据所述最大化处理后的样本约束条件和最大化处理后的网络结构的结构平均性能,对所述控制器进行优化训练,得到训练后的控制器。

在一些实施例中,所述控制器还通过以下步骤训练:对所述至少两条样本约束条件进行分类,形成至少一个样本约束条件类,每一样本约束条件类中包括至少一个所述样本约束条件;获取每一所述样本约束条件类对应的所述目标函数;将每一所述样本约束条件类中的样本约束条件,输入至对应的所述目标函数中,得到每一样本约束条件类的子分值;对所述至少一个样本约束条件类所对应的至少一个子分值进行融合,得到用于评估所述网络结构的所述分值。

在一些实施例中,所述控制器还通过以下步骤训练:采用所述分值模型,确定用于评估所述网络结构的所述分值;其中,所述分值模型包括至少两个全连接层和至少两个非线性变换处理层,且每一所述全连接层之后连接一个所述非线性变换处理层。

在一些实施例中,所述控制器还通过以下步骤训练:将所述控制器输出的满足样本约束条件的上界的网络结构αT和所述样本约束条件的上界T,输入至所述分值模型中;通过所述分值模型中的所述全连接层和所述非线性变换处理层,对所述网络结构αT和所述样本约束条件的上界T,依次进行至少一次全连接处理和至少一次非线性变换处理,得到所述网络结构的所述分值。

在一些实施例中,所述装置还包括:比较模块,用于当通过所述采样处理得到多个网络结构时,按照以下公式对每两个网络结构进行比较:

其中,β1表示第一个网络结构,β2表示第二个网络结构;[*]表示指示函数,条件为真时输出1,条件为假时输出0;Acc[*]表示网络结构的准确率;c[*]表示网络结构的计算复杂度;g(β12,T)表示在样本约束条件的上界T下β1是否比β2好的比较结果;排序模块,用于根据每两个网络结构的比较结果,对所述多个网络结构进行排序,形成网络结构序列;分值确定模块,用于按照所述网络结构序列,依次确定每一网络结构的所述分值。

在一些实施例中,所述分值确定模块还用于:确定所述分值模型的目标函数,其中所述分值模型的目标函数通过以下公式表示:

其中,L(w)表示针对于分值模型中的参数w进行训练时的损失函数;K表示样本约束条件的数量;M表示所述多个网络结构的数量;φ(*)表示合叶损失函数;βi表示第i个网络结构;βj表示第j个网络结构;Tk表示第k个样本约束条件的上界;R(βi|Tk;w)表示在样本约束条件的上界Tk下网络结构βi的分值;R(βj|Tk;w)表示在样本约束条件的上界Tk下网络结构βj的分值;g(βij,Tk)表示在样本约束条件的上界Tk下βi是否比βj好的比较结果;对所述损失函数L(w)进行最小化处理,得到最小化处理结果;根据所述最小化处理结果,控制所述控制器采样得到的任意两个网络结构的奖励值之间的大小关系,与所述网络结构序列的顺序一致。

本申请实施例提供一种计算机程序产品或计算机程序,所述计算机程序产品或计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中;其中,计算机设备的处理器从所述计算机可读存储介质中读取所述计算机指令,所述处理器用于执行所述计算机指令,实现上述的网络结构搜索方法。

本申请实施例提供一种网络结构搜索设备,包括:存储器,用于存储可执行指令;处理器,用于执行所述存储器中存储的可执行指令时,实现上述的网络结构搜索方法。

本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行所述可执行指令时,实现上述的网络结构搜索方法。

本申请实施例具有以下有益效果:针对于多个资源约束条件,在预设网络结构库中进行采样处理,得到至少一个网络模块,且针对于多个资源约束条件,在预设参数集合中选择每一网络模块的网络参数,并通过采样得到的网络模块和网络参数生成目标网络结构,如此,实现了在多个资源约束条件下同时进行搜索以生成目标网络结构,且针对于多个资源约束条件同时进行搜索,提高了搜索效率。

附图说明

图1A是相关技术中的NAS系统框架图;

图1B是相关技术中的MobileNet的网络结构图;

图1C是相关技术中MnasNet考虑计算资源约束的网络结构搜索示意图;

图2是本申请实施例提供的网络结构搜索系统的一个可选的架构示意图;

图3是本申请实施例提供的服务器的结构示意图;

图4是本申请实施例提供的网络结构搜索方法的一个可选的流程示意图;

图5是本申请实施例提供的控制器训练方法的一个可选的流程示意图;

图6是本申请实施例提供的控制器训练方法的一个可选的流程示意图;

图7是本申请实施例提供的控制器训练方法的一个可选的流程示意图;

图8是本申请实施例提供的控制器训练方法的一个可选的流程示意图;

图9是本申请实施例提供的控制器训练方法的一个可选的流程示意图;

图10是本申请实施例提供的网络结构搜索系统的结构图;

图11是本申请实施例提供的LSTM生成用以表示网络结构的字符串的示意图;

图12是本申请实施例提供的神经网络结构评估器的模型结构图;

图13是本申请实施例在AutoML产品中的流程示意图。

具体实施方式

为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。

在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。除非另有定义,本申请实施例所使用的所有的技术和科学术语与属于本申请实施例的技术领域的技术人员通常理解的含义相同。本申请实施例所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。

为了更好地理解本申请实施例中提供的网络结构搜索方法,首先对相关技术中的网络结构搜索方法进行说明:

相关技术中的研究成果集中于网络结构搜索方法以及针对特定计算资源约束的网络结构设计方法。神经网络结构搜索方法使用一个控制器(Controller)来自动生成神经网络的结构。通过使用强化学习技术或者其他相关的技术来优化控制器,使得控制器能够生成最优的神经网络结构。

针对特定计算资源约束的网络结构设计,指的是根据特定的硬件平台的计算资源约束,设计或搜索满足资源约束条件的网络结构。

相关技术中的方法主要包括:网络结构搜索(NAS,Neural Architecture Search)和针对特定计算资源约束的网络结构设计。

其中,在网络结构搜索方法中,图1A是相关技术中的NAS系统框架图,在NAS系统中,包括控制器101和随机初始化模型102,控制器101可以是基于长短期记忆网络(LSTM,Long Short-Term Memory)的控制器。

NAS通过使用基于LSTM的控制器来生成神经网络的结构:例如对于卷积神经网络来说包括卷积的通道数目、卷积核的高度和宽度等;对于循环神经网络来说包括连接的节点以及激活函数等等。这样,可以得到一个可能的神经网络的具体网络结构和该控制器生成该网络结构的概率。使用该网络结构在具体的任务上训练模型的参数,得到该网络结构的性能。最后,通过随机初始化模型102计算和验证生成的网络结构的精度,根据精度确定生成的网络结构的性能,并将生成的网络结构的性能(一般是准确率)和生成该网络结构的概率反馈给控制器,并通过强化学习技术优化控制器101的性能,使得控制器101可以生成更好的网络结构。

经过不断重复上述过程,该控制器101生成的网络结构在具体的任务上性能会越来越好,这样就达到了使用计算机自动生成神经网络结构的目的。

在针对特定计算资源约束的网络结构设计方法中,目前针对特定计算资源约束的网络结构设计方法,主要包括人工设计的轻量级神经网络和依靠NAS自动搜索的满足约束的网络结构。为了得到轻量级网络,人工设计方法往往依赖丰富的人工设计经验,难以应用在不同的任务和场景中。例如在MobileNet中,每一层的计算方式和卷积核大小都需要仔细设计,如图1B所示,是相关技术中的MobileNet的网络结构图,在MobileNet网络结构中,至少包括第一卷积层120(conv_1×1)、可分离卷积层121(sep_conv_3×3)和第二卷积层122(conv_1×1)。

对于带约束的网络结构搜索方法,相关技术中的方法只能考虑单一计算约束。例如在MnasNet中,构造多目标奖励函数并引入特定的延时约束,以调整最终的奖励值,如图1C所示,是相关技术中MnasNet考虑计算资源约束的网络结构搜索示意图,控制器130采样得到网络结构,并将网络结构发送给模型训练器131,模型训练器131与移动设备132根据控制器130采样得到的网络结构的准确率和延时来进行多目标奖励133,并将奖励值发送给控制器130,从而实现了通过最大化奖励值找到满足计算约束的网络结构。

但是,相关技术中的方法至少存在以下缺点:相关技术中,大部分网络结构搜索算法不考虑实际场景的计算约束(即计算资源约束),难以直接应用到真实应用中。人工设计的轻量模型非常依赖设计者的设计经验,设计过程繁琐,很难广泛应用于多种不同的任务和不同的场景。对于带计算约束的网络结构搜索方法而言,当有一系列不同的计算约束时,需要将现有方法重复多次,从而为每一种情况找到合适的网络结构,导致这个过程非常的繁琐、低效。

为了解决相关技术中的网络结构搜索方法所存在的至少一个问题,本申请实施例提出一种网络结构搜索方法,设计一个通用的网络结构设计器(即控制器),给定任意计算资源约束,自动给出符合该计算资源约束的网络结构,从而降低实际场景模型设计的难度。

本申请实施例提供的网络结构搜索方法,首先,接收网络结构搜索请求;网络结构搜索请求中包括至少两条资源约束条件;然后,根据至少两条资源约束条件,在预设网络结构库中进行采样处理,得到至少一个网络模块;以及,根据至少两条资源约束条件,在预设参数集合中选择每一网络模块的网络参数;最后,通过至少一个网络模块和每一网络模块的网络参数,生成目标网络结构;并将目标网络结构确定为网络结构搜索请求的搜索结果,输出该搜索结果。如此,由于针对于多个资源约束条件,在预设网络结构库中进行采样处理和选择,得到最终的目标网络结构,实现了在多个资源约束条件下同时进行搜索以生成目标网络结构,且针对于多个资源约束条件同时进行搜索,提高了搜索效率。

下面说明本申请实施例的网络结构搜索设备的示例性应用,在一种实现方式中,本申请实施例提供的网络结构搜索设备可以实施为笔记本电脑,平板电脑,台式计算机,移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备)、智能机器人、智能视频监控或交通监测装置等任意的终端,在另一种实现方式中,本申请实施例提供的网络结构搜索设备还可以实施为服务器。下面,将说明网络结构搜索设备实施为服务器时的示例性应用。

参见图2,图2是本申请实施例提供的网络结构搜索系统10的一个可选的架构示意图。本申请实施例以目标网络结构为图像识别网络为例进行说明,为实现生成用于对图像进行识别的图像识别网络,本申请实施例提供的网络结构搜索系统10中包括终端100、网络200和服务器300,其中,终端100上运行有网络结构搜索应用,用户可以在网络结构搜索应用的客户端上请求生成特定类型的目标网络结构(例如图像识别网络),在实现的过程中,终端100通过网络200向服务器300发送网络结构搜索请求,网络结构搜索请求中包括至少两条资源约束条件,服务器300在接收到网络结构搜索请求之后,响应于网络结构搜索请求,根据至少两条资源约束条件,在预设网络结构库中进行采样处理,得到至少一个网络模块;根据至少两条资源约束条件,在预设参数集合中选择每一网络模块的网络参数;通过至少一个网络模块和每一网络模块的网络参数,生成目标网络结构;并将目标网络结构确定为网络结构搜索请求的搜索结果,将搜索结果发送给终端100。

本申请实施例提供的网络结构搜索方法还涉及人工智能技术领域,可以通过人工智能技术中的机器学习技术来实现。其中,机器学习(ML,Machine Learning)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。本申请实施例中,通过机器学习技术实现对网络结构搜索请求的响应,以自动搜索到目标网络结构,以及,实现对控制器和分值模型的训练和模型优化。

图3是本申请实施例提供的服务器300的结构示意图,图3所示的服务器300包括:至少一个处理器310、存储器350、至少一个网络接口320和用户接口330。服务器300中的各个组件通过总线系统340耦合在一起。可理解,总线系统340用于实现这些组件之间的连接通信。总线系统340除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图3中将各种总线都标为总线系统340。

处理器310可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。

用户接口330包括使得能够呈现媒体内容的一个或多个输出装置331,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口330还包括一个或多个输入装置332,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。

存储器350可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器350可选地包括在物理位置上远离处理器310的一个或多个存储设备。存储器350包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器350旨在包括任意适合类型的存储器。在一些实施例中,存储器350能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。

操作系统351,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;

网络通信模块352,用于经由一个或多个(有线或无线)网络接口320到达其他计算设备,示例性的网络接口320包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;

输入处理模块353,用于对一个或多个来自一个或多个输入装置332之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。

在一些实施例中,本申请实施例提供的装置可以采用软件方式实现,图3示出了存储在存储器350中的一种网络结构搜索装置354,该网络结构搜索装置354可以是服务器300中的网络结构搜索装置,其可以是程序和插件等形式的软件,包括以下软件模块:接收模块3541、采样处理模块3542、选择模块3543、生成模块3544和确定模块3545,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。

在另一些实施例中,本申请实施例提供的装置可以采用硬件方式实现,作为示例,本申请实施例提供的装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的网络结构搜索方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,ComplexProgrammable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable GateArray)或其他电子元件。

下面将结合本申请实施例提供的服务器300的示例性应用和实施,说明本申请实施例提供的网络结构搜索方法。参见图4,图4是本申请实施例提供的网络结构搜索方法的一个可选的流程示意图,将结合图4示出的步骤进行说明。

步骤S401,接收网络结构搜索请求;网络结构搜索请求中包括至少两条资源约束条件。

网络结构搜索请求用于请求进行网络结构搜索,以搜索得到满足该至少两条资源约束条件的网络结构。

本申请实施例中,用户可以通过终端向服务器发送网络结构搜索请求,终端上运行有网络结构搜索应用,或者终端上运行有特定类型的网络结构对应的应用,用户在终端上输入搜索要求(即资源约束条件),则终端将该资源约束条件封装于网络结构搜索请求中,并发送给服务器。

举例来说,本申请实施例的应用场景可以是,终端上运行有网络结构搜索应用,网络结构搜索应用能够实现自动搜索到用户需要的网络结构,那么,用户可以在应用的客户端上输入资源约束条件,这里的资源约束条件为多条,多条资源约束条件可以是不同用户关于同一类型的约束条件所设置的多条不同的约束值,也可以是同一用户关于不同类型的约束条件所设置的多条不同的约束值,还可以是不同用户关于不同类型的约束条件所设置的多条不同的约束值。终端接收到用户输入的约束值之后,将约束值作为资源约束条件封装于网络结构搜索请求中,并将网络结构搜索请求发送给服务器,以使得服务器对该网络结构搜索请求进行响应,以搜索到满足用户输入的约束值的目标网络结构。

又例如,本申请实施例的应用场景还可以是,终端上运行有图像识别应用,图像识别应用在进行图像识别时,需要通过一特定的图像识别网络进行图像识别,那么也可以采用本申请实施例的方法搜索到用于进行图像识别的目标网络结构。当然,本申请实施例的应用场景只是示例性的,终端上除了运行有图像识别应用,需要搜索到用于进行图像识别的目标网络结构之外,终端上还可以运行有文本处理应用,需要搜索到用于进行文本处理的目标网络结构等。

步骤S402,根据至少两条资源约束条件,在预设网络结构库中进行采样处理,得到至少一个网络模块。

这里,预设网络结构库中存储有多个网络模块,网络模块是用于形成网络结构的模块,不同的网络结构对应的网络模块不同,由于不同的资源约束条件所需要的目标网络结构不同,因此,采用不同的资源约束条件进行搜索得到的目标网络结构不同。例如,用于进行图像识别的网络结构对应的网络模块可以包括卷积模块和池化模块,用于语音识别的网络结构对应的网络模块可以包括循环模块。

本申请实施例中,服务器在预设网络结构库中进行采样处理,得到满足该至少两条资源约束条件的至少一个网络模块。这里需要说明的是,采样处理是指服务器在预设网络结构库中基于输入的资源约束条件随机选择一个或多个点(即网络模块),即服务器在预设网络结构库中选择服务器自身认为满足资源约束条件的点。

步骤S403,根据至少两条资源约束条件,在预设参数集合中选择每一网络模块的网络参数。

这里,预设参数集合中包括不同的网络参数,例如,对于网络结构的深度,包括2层、3层和4层等不同的选项;对于网络结构的宽度,包括3、4和6等不同的选项;对于网络结构的卷积核大小,包括3×3、5×5和7×7等不同的选项。服务器根据资源约束条件,在预设参数集合中选择每一网络模块的任意类型的网络参数。需要说明的是,本申请实施例中在选择网络参数时,也可以采用采样处理方式,在预设参数集合中采样得到每一网络模块的网络参数。

步骤S404,通过至少一个网络模块和每一网络模块的网络参数,生成目标网络结构。

这里,按照网络模块和每一网络模块的网络参数,对全部网络模块进行拼接,形成目标网络结构,其中,每个网络模块可以看作是目标网络结构的每个层,通过对多个层按照网络参数进行连接,形成目标网络结构。

步骤S405,将目标网络结构确定为网络结构搜索请求的搜索结果,并输出搜索结果。

这里,服务器在搜索得到目标网络结构之后,将目标网络结构作为终端发送的网络结构搜索请求的搜索结果,并将目标网络结构发送给终端,以使得终端根据搜索到的目标网络进行相应的处理。

本申请实施例的方法,可以应用于任意需要网络结构进行数据处理的领域,在进行数据处理之前,可以采用本申请实施例提供的方法搜索到满足特定的资源约束条件的目标网络结构,然后采用搜索到的目标网络结构进行数据处理,从而实现了无需提前配置好网络结构即可进行实时的数据处理的效果。

本申请实施例中,针对于多个资源约束条件,在预设网络结构库中进行采样处理,得到至少一个网络模块,且针对于多个资源约束条件,在预设参数集合中选择每一网络模块的网络参数,并通过采样得到的网络模块和网络参数生成目标网络结构,如此,还实现了在多个资源约束条件下同时进行搜索以生成目标网络结构,且针对于多个资源约束条件同时进行搜索,提高了搜索效率。

在一些实施例中,还可以采用预先训练的控制器生成目标网络结构,即通过预先训练好的控制器实现上述服务器的功能。

本申请实施例提供一种控制器的训练方法,图5是本申请实施例提供的控制器训练方法的一个可选的流程示意图,如图5所示,方法包括以下步骤:

步骤S501,获取至少两条样本约束条件。

本申请实施例中,在采用控制器生成目标网络结构之前,需要预先训练好控制器,以采用训练好的控制器搜索目标网络结构。在一些实施例中,控制器可以是一个LSTM网络,本申请实施例中,对LSTM网络中的参数进行训练。

步骤S502,根据样本约束条件在预设网络结构库中进行采样处理,得到网络结构。

这里,控制器在获取到样本约束条件之后,根据样本约束条件在预设网络结构库中进行采样处理,采样处理是指控制器在预设网络结构库中基于输入的样本约束条件随机选择一个或多个点(即网络模块),即控制器在预设网络结构库中选择其自身认为满足资源约束条件的点。

步骤S503,确定网络结构的性能参数和计算复杂度。这里,性能参数包括但不限于网络结构的准确率、计算延时等能够表征网络结构的性能的参数。

步骤S504,将性能参数和计算复杂度,分别与样本约束条件进行比较,得到用于评估网络结构的分值。

这里,用于评估网络结构的分值可以是一奖励值,奖励值越高,表明所搜索到的网络结构的性能越好,或者搜索结果越准确;奖励值越低,表明所搜索到的网络结构的性能越差,或者搜索结果越不准确。

在一些实施例中,控制器内部可以通过控制函数实现对目标网络结构的搜索,即,控制器内部的计算是通过控制函数来实现的,其中,控制函数通过以下公式(1-1)表示:

αT=f(T;θ) (1-1);

其中,α表示任一网络结构;T表示任一样本约束条件的上界,且满足所述样本约束条件T的网络结构表示为c(α)≤T;αT表示控制器输出的满足样本约束条件的上界T的网络结构;c(*)表示计算成本函数;f(*)表示需要学习的映射函数,θ表示所述映射函数中所包含的参数。

在一些实施例中,控制器的目标函数通过以下公式(1-2)表示:

其中,ET~τ表示针对于多条样本约束条件所计算得到的控制器的模型平均性能;π(·|T;θ)表示针对于任一样本约束条件的上界T的网络结构采样策略;Eα~π(·|T;θ)表示根据所学习到的网络结构采样策略采样多个网络结构后计算得到的结构平均性能;R(αT|T;w)表示在任一样本约束条件的上界T下任一网络结构αT的分值;w表示分值模型中的参数;τ表示T的分布;T~τ表示T的取值分布服从τ的分布;s.t.表示受约束。

步骤S505,根据分值对控制器进行优化训练,得到训练后的控制器。

在一些实施例中,步骤S505可以通过以下步骤实现:步骤S5051,根据分值,对样本约束条件和网络结构的结构平均性能进行最大化处理,得到最大化处理后的样本约束条件和最大化处理后的网络结构的结构平均性能。

步骤S5052,根据最大化处理后的样本约束条件和最大化处理后的网络结构的结构平均性能,对控制器进行优化训练,得到训练后的控制器。

这里,可以最大化针对不同样本约束条件、不同网络结构的平均性能,通过最大化平均性能,能够使得基于多个样本约束条件训练的控制器的模型平均性能更好,从而从整体上提高控制器的搜索性能,即提高控制器搜索网络结构的平均性能。

本申请实施例提供的控制器训练方法,由于在对控制器进行训练时,是输入多个样本约束条件,并且,在计算过程中,是对多个样本约束条件计算控制器的模型平均性能,也就是说,通过平均性能将多个样本约束条件同时考虑进来,而无需每次仅对一个样本约束条件进行考虑,避免在存在多个样本约束条件时,需要进行多次搜索的问题。即,本申请实施例的方法,通过考虑在多个样本约束条件下的控制器的模型平均性能,可以同时考虑多个样本约束条件,提高了网络结构的搜索效率。

进一步地,在使用本申请实施例提供的控制器训练方法所训练得到的控制器进行网络结构搜索时,可以通过控制器同时考虑输入的多个资源约束条件,实现了在多个资源约束条件下同时进行搜索以生成目标网络结构,且针对于多个资源约束条件同时进行搜索,提高了搜索效率。

基于图5和上述公式(1-2)提供的控制器的目标函数,图6是本申请实施例提供的控制器训练方法的一个可选的流程示意图,如图6所示,在一些实施例中,步骤S504可以通过以下步骤实现:

步骤S601,通过目标函数,对性能参数和计算复杂度,分别与样本约束条件进行比较,得到用于评估网络结构的分值。

或者,在另一些实施例中,步骤S504还可以通过以下步骤实现:步骤S602,采用分值模型,确定用于评估网络结构的分值。其中,分值模型包括至少两个全连接层和至少两个非线性变换处理层,且每一全连接层之后连接一个非线性变换处理层,全连接层的数量与非线性变换处理层的数量相同,在一些实施例中,非线性变换处理层可以是由ReLU函数构成的。

在一些实施例中,步骤S602可以通过以下步骤实现:

步骤S6021,将控制器输出的满足样本约束条件的上界的网络结构αT和样本约束条件的上界T,输入至分值模型中。

步骤S6022,通过分值模型中的全连接层和非线性变换处理层,对网络结构αT和样本约束条件的上界T,依次进行至少一次全连接处理和至少一次非线性变换处理,得到网络结构的所述分值。

由于每一全连接层之后连接一个非线性变换处理层,因此,在每次全连接处理之后,对全连接处理后的结果通过非线性变换处理层进行非线性变换处理,如此循环往复,直至完成分值模型中的每一层的处理,得到网络结构的分值。

在一些实施例中,分值模型的训练过程可以基于以下规则进行:给定任意的两个网络结构A1和A2(其中网络结构A1和A2均是控制器搜索到的模型),如果这两个网络结构都满足输入的资源约束条件,则准确率更好的网络结构将会有更好的奖励值(即更高的分值),如果这两个网络结构中至少有一个网络结构不满足输入的资源约束条件,则计算复杂度更低的网络结构将会有更高的奖励值。

基于图5,图7是本申请实施例提供的控制器训练方法的一个可选的流程示意图,如图7所示,在一些实施例中,步骤S502可以通过以下步骤实现:

步骤S701,根据样本约束条件,依次选择网络结构的深度、宽度和卷积核大小。

这里,预设参数集合中预先存储有不同类型下的多个参数,例如,对于网络结构的深度,可以存储有2层、3层和4层等不同的选项;对于网络结构的宽度,可以存储有3、4和6等不同的选项;对于网络结构的卷积核大小,可以存储有3×3、5×5和7×7等不同的选项。在控制器接收到样本约束条件之后,可以在预设参数集合中采样得到任意一种深度、宽度和卷积核大小。

步骤S702,获取深度、宽度和卷积核大小分别对应的深度字符、宽度字符和卷积核大小字符。

这里,为了精准地表示不同网络结构,可以采用字符形式表征网络结构,即将网络结构用序列化方式进行表示,因此,在获取到网络结构的深度、宽度和卷积核大小之后,采用字符形式首先表示网络结构的深度、宽度和卷积核大小,即获取深度、宽度和卷积核大小分别对应的深度字符、宽度字符和卷积核大小字符,以采用深度字符、宽度字符和卷积核大小字符表征深度、宽度和卷积核大小。

步骤S703,将深度字符、宽度字符和卷积核大小字符连接形成字符串。这里,可以是依次连接深度字符、宽度字符和卷积核大小字符,形成字符串。

步骤S704,根据字符串生成网络结构。

这里,将字符串直接进行转换,得到网络结构。如此,由于采用字符串表示网络结构,因此,能够精准的表示不同的网络结构,避免在搜索过程中,由于搜索输出的误差而造成所搜索到的网络结构不准确的问题。

图8是本申请实施例提供的控制器训练方法的一个可选的流程示意图,如图8所示,在一些实施例中,步骤S601可以通过以下步骤实现:

步骤S801,对至少两条样本约束条件进行分类,形成至少一个样本约束条件类,每一样本约束条件类中包括至少一个样本约束条件。

本申请实施例中,样本约束条件(或者资源约束条件)至少包括以下类别:计算延迟类、浮点数计算数量类和内存开销类。

在控制器的训练过程中,当控制器接收到多个样本约束条件的时,首先可以对多个样本约束条件进行分类,将同一类别的样本约束条件划分至同一个样本约束条件类中,每一样本约束条件类中包括至少一个样本约束条件;对应地,在控制器的使用过程中,当控制器接收到多个资源约束条件时,也可以首先可以对多个资源约束条件进行分类,将同一类别的资源约束条件划分至同一个资源约束条件类中,每一资源约束条件类中包括至少一个资源约束条件。

步骤S802,获取每一样本约束条件类对应的目标函数。

这里,每一类别的样本约束条件对应一个目标函数,例如,对于计算延迟类的样本约束条件,可以对应目标函数1,对于浮点数计算数量类的样本约束条件,可以对应目标函数2,对于内存开销类的样本约束条件,可以对应目标函数3。

步骤S803,将每一样本约束条件类中的样本约束条件,输入至对应的目标函数中,得到每一样本约束条件类的子分值。

这里,每一样本约束条件类中包括一个或多个样本约束条件,将每一样本约束条件类中的样本约束条件输入至对应的目标函数中进行计算,得到对应样本约束条件类的子分值。

举例来说,上述计算延迟类中包括样本约束条件11和12,浮点数计算数量类中包括样本约束条件21和22,内存开销类中包括样本约束条件31和32。

因此,可以将样本约束条件11和12输入至目标函数1中,通过目标函数1计算样本约束条件11和12对应的子分值111,该子分值111是用于评价控制器最终搜索的网络结果在计算延迟类条件下的平均性能;

还可以将样本约束条件21和22输入至目标函数2中,通过目标函数2计算样本约束条件21和22对应的子分值211,该子分值211是用于评价控制器最终搜索的网络结果在浮点数计算数量类条件下的平均性能;

还可以将样本约束条件31和32输入至目标函数3中,通过目标函数3计算样本约束条件31和32对应的子分值311,该子分值311是用于评价控制器最终搜索的网络结果在内存开销类条件下的平均性能。

步骤S804,对至少一个样本约束条件类所对应的至少一个子分值进行融合,得到用于评估网络结构的分值。

这里,可以是对不同样本约束条件类所对应的子分值进行加权求和,得到用于评估网络结构的分值。例如,可以对上述子分值111、子分值211和子分值311加权求和,得到最终的分值。

需要说明的是,步骤S801至步骤S804是在控制器的训练过程中,针对于多个类别的样本约束条件的情况。当然,在控制器的使用过程中,针对于多个类别的资源约束条件,也可以采用与步骤S801至步骤S804相同的方法来处理,即,在获取到多个资源约束条件,且这多个资源约束条件具有不同的类别时,可以对多个资源约束条件进行分类,形成至少一个资源约束条件类,每一资源约束条件类中包括至少一个资源约束条件;然后,获取每一资源约束条件类对应的目标函数;将每一资源约束条件类中的资源约束条件,输入至对应的目标函数中,得到每一资源约束条件类的子分值;最后,对至少一个资源约束条件类所对应的至少一个子分值进行融合,得到用于评估控制器搜索到的目标网络结构的分值。

在一些实施例中,当控制器进行采样处理时,可以同时采样得到多个网络结构,因此,需要确定出每一网络结构的分值,以确定多个网络结构中最好的网络结构,或者确定每两个网络结构之间的差别。

基于图5,图9是本申请实施例提供的控制器训练方法的一个可选的流程示意图,如图9所示,在步骤S502之后,方法还包括以下步骤,通过以下步骤确定每一网络结构的分值:

步骤S901,当通过采样处理得到多个网络结构时,对每两个网络结构进行比较。这里,可以采用以下公式(1-3)对每两个网络结构进行比较:

其中,β1表示第一个网络结构,β2表示第二个网络结构;[*]表示指示函数,条件为真时输出1,条件为假时输出0;Acc[*]表示网络结构的准确率;c[*]表示网络结构的计算复杂度;g(β12,T)表示在样本约束条件的上界T下β1是否比β2好的比较结果。

在一些实施例中,公式(1-3)还可以用于对分值模型进行训练,即基于公式(1-3)所限定的规则实现对分值模型的训练。

步骤S902,根据每两个网络结构的比较结果,对多个网络结构进行排序,形成网络结构序列。

这里,可以按照网络结果由好到坏的顺序排序,形成网络结构序列。

步骤S903,按照网络结构序列,依次确定每一网络结构的分值。

这里,网络结构序列中的网络结构的分值按照由大到小的顺序排列。

在一些实施例中,步骤S903可以通过以下步骤实现:

步骤S9031,确定分值模型的目标函数。

这里,分值模型的目标函数通过以下公式(1-4)表示:

其中,L(w)表示针对于分值模型中的参数w进行训练时的损失函数;K表示样本约束条件的数量;M表示所述多个网络结构的数量;φ(*)表示合叶损失函数;βi表示第i个网络结构;βj表示第j个网络结构;Tk表示第k个样本约束条件的上界;R(βi|Tk;w)表示在样本约束条件的上界Tk下网络结构βi的分值;R(βj|Tk;w)表示在样本约束条件的上界Tk下网络结构βj的分值;g(βij,Tk)表示在样本约束条件的上界Tk下βi是否比βj好的比较结果;

步骤S9032,对损失函数L(w)进行最小化处理,得到最小化处理结果。

步骤S9033,根据最小化处理结果,控制控制器采样得到的任意两个网络结构的奖励值之间的大小关系,与网络结构序列的顺序一致。

下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。

本申请实施例提供一种网络结构搜索方法,由于实际场景中往往需要考虑一系列的资源约束(即资源约束条件或计算资源约束,可以是参数量、计算延时等),以适应多种不同的应用场景。当资源约束的数量比较多时,针对每一种资源约束单独设计一个网络结构变得非常繁琐、难以实现。因此,如何对一系列的资源约束同时找到合适的网络结构是亟待解决的研究问题。

本申请实施例要解决的关键问题是:设计一个通用的网络结构设计器(即控制器),给定任意资源约束,自动给出符合该资源约束的网络结构,降低实际场景模型设计的难度。为了解决该问题,本申请实施例提出了一种“基于约束感知的网络结构搜索算法”,该算法应用于控制器中。

图10是本申请实施例提供的网络结构搜索系统的结构图,如图10所示,输入资源约束至控制器1001,该控制器1001是基于约束感知的控制器,控制器1001采样得到网络结构1002,并将采样到的网络结构1002发送给基于约束感知的模型评估器1003,基于约束感知的模型评估器1003根据输入的资源约束和采样到的网络结构,确定出奖励值1004(即分值),并通过奖励值1004更新控制器1001。

本申请实施例的关键点在于设计并训练一个基于约束感知的网络结构搜索算法,针对任意给定的资源约束,自动设计满足资源约束的网络结构。

在一些实施例中,本申请实施例的基于约束感知的网络结构搜索方法(即网络结构搜索方法)的训练过程如下:

1)将给定的资源约束作为输入,输入至控制器中,控制器把该资源约束作为条件,自动采样到一系列满足该资源约束的网络结构;

2)对所采样到的网络结构的性能参数和计算复杂度进行评估,将性能参数和计算复杂度与所考虑的资源约束进行比较,得到可以评估网络结构好坏的奖励值;

3)所得到的奖励值用来指导控制器的训练,使得控制器倾向于找到满足资源约束且性能好的网络结构。

可以看出,本申请实施例中的训练方法的关键点有两个,分别是如何设计并训练控制器以自动找到满足资源约束的网络结构,以及如何根据特定的资源约束给以准确的奖励值对网络结构进行评估。

关于控制器模型的设计和训练方法,为了方便表示,拟用α表示任一网络结构,T表示某个计算资源约束的上界,则满足该资源约束的网络结构可以表示为c(α)≤T。本申请实施例所提出的有约束感知能力的网络结构搜索器可以通过以下公式(2-1)表示:

αT=f(T;θ) (2-1);

其中,f(*)表示需要学习的映射函数,θ表示该映射函数中所包含的参数。

为了精准地表示不同网络结构,拟将网络用序列化方式进行表示,构建网络结构和字符串之间的一一映射关系。本申请实施例中,对于网络结构中的任意一个模块,主要包括深度、宽度和卷积核大小,共3种可变变量。深度表示模块中包含的网络层的数量,宽度表示每个网络层的通道数量,卷积核大小决定了卷积计算的方式,共包含3×3、5×5和7×7三种可选的卷积核大小。为构建可以搜索和生成网络结构的控制器,拟通过构建一个长短期记忆网络(LSTM)生成用以表示网络结构的字符串。如图11所示,控制器(即图11中的LSTM1101)首先决定模型的深度,之后针对每个网络层决定其宽度和对应的卷积核大小,最终将所有选择所对应的字符连在一起,得到用以表示网络结构的完整的字符串。

为了实现针对不同计算资源约束的网络结构搜索,要求控制器找到的网络结构在不同资源约束下找到的网络结构的平均性能足够高,因此目标函数可以通过以下公式(2-2)表示:

其中,ET~τ表示针对于多条计算资源约束(这里可以是指样本约束条件)所计算得到的控制器的模型平均性能;π(·|T;θ)表示针对于任一计算资源约束的上界T的网络结构采样策略;Eα~π(·|T;θ)表示根据所学习到的网络结构采样策略采样多个网络结构后计算得到的结构平均性能;R(αT|T;w)表示在任一计算资源约束的上界T下任一网络结构αT的奖励值;w表示奖励模型(即分值模型或神经网络结构评估器)中的参数;τ表示T的分布;T~τ表示T的取值分布服从τ的分布;s.t.表示受约束。

本申请实施例中,最终利用基于强化学习的策略梯度方法,通过最大化针对不同计算资源约束、不同网络结构的平均性能,提升控制器搜索网络结构的性能。

关于奖励模型中奖励函数的设计和训练方法,为了实现针对不同计算资源约束找到合适的网络结构,需要对不同网络结构在不同约束下的综合性能进行准确的评估,即获得准确的奖励值R(αT|T;w)。由于同一个网络结构在不同约束下应该有不同的奖励值,为此拟设计一个对计算约束敏感的奖励函数。由于该函数需要根据网络结构α和计算资源约束T计算得到最终的奖励值,拟设计一个多层感知器模型对奖励模型建模,奖励模型的模型结构如图12所示,是本申请实施例提供的神经网络结构评估器(即奖励模型)的模型结构图,奖励模型的输入是网络结构αT和计算资源约束T,奖励模型包括多层全连接层(FC)和多个非线性变换处理层,其中,非线性变换处理层可以是由ReLU函数构成的非线性变换处理层。

在一些实施例中,首先需要定义在某个计算资源约束下网络结构是否是一个好的解。可以给定一个计算资源约束T,在满足该计算资源约束下,准确率越高的网络结构越好。相反的,计算复杂度超出了该计算资源约束或准确率很低的网络结构,都应该是差的网络结构。

基于以上的观察,设计了两个规则用以学到一个准确的神经网络结构评估器(即奖励模型)。这里,可以给定任意的两个网络结构β1和β2,则设计的规则有以下情况:如果这两个网络结构都满足计算资源约束,则准确率更高的网络结构将会有更高的奖励值;或者,如果至少有一个网络结构不满足计算资源约束,则计算复杂度更低的结构将会有更高的奖励值。

上述规则可以用以下公式(2-3)进行形式化表示:

其中,表示指示函数,条件为真时输出1,条件为假时输出0;Acc[*]表示网络结构的准确率;c[*]表示网络结构的计算复杂度;g(β12,T)表示在计算资源约束的上界T下β1是否比β2好的比较结果,即β1比β2更好输出1,否则输出0。

为了得到准确的奖励值,需要设计合适的目标函数训练神经网络结构评估器。由于所提出的上述规则都是基于网络结构之间的比较,因此拟将训练过程建模成一个不同网络结构的排序问题。本申请实施例中,给定M个网络结构,通过两两比较的结果指导神经网络结构评估器的模型训练,使得神经网络结构评估器预测的奖励值的大小关系符合所提出的规则。为此,给定K个计算资源约束,神经网络结构评估器的目标函数通过以下公式(2-4)表示:

其中,L(w)表示针对于分值模型中的参数w进行训练时的损失函数;φ(*)表示合叶损失函数(hinge loss);βi表示第i个网络结构;βj表示第j个网络结构;Tk表示第k个计算资源约束(这里可以是指样本约束条件)的上界;R(βi|Tk;w)表示在计算资源约束的上界Tk下网络结构βi的分值;R(βj|Tk;w)表示在计算资源约束的上界Tk下网络结构βj的分值;g(βij,Tk)表示在计算资源约束的上界Tk下βi是否比βj好的比较结果。

本申请实施例中,通过最小化L(w),使得神经网络结构评估器预测的任意两个网络结构的奖励值之间的大小关系,与所定义的上述规则保持一致,实现针对不同计算资源约束的网络结构的准确性能评估。

下面对本申请实施例的应用场景和流程进行说明:

本申请实施例的方法可以应用于自动化机器学习(AutoML)产品中,负责根据用户输入的计算资源约束,自动找到满足约束的网络结构,以满足不同应用场景的需求,达到更好的“自动化”的用户体验功能。

图13是本申请实施例在AutoML产品中的流程示意图,如图13所示,在实际应用场景中,本申请实施例的方法可以应用于任意一种考虑计算资源约束的神经网络结构自动搜索产品中,用户只需要输入某个实际场景中要求的计算资源约束1301,该产品会通过内置的基于约束感知的网络结构搜索器1302自动找到满足该约束的网络结构1303并输出,从而极大的降低了在不同资源约束下人工设计网络结构的设计成本。本申请实施例会针对用户提供的任意计算资源约束寻找到满足要求的网络结构。

本申请实施例中,产品的流程包括:1)用户将一个任意计算资源约束输入到AutoML平台;2)AutoML平台会针对所输入的计算资源自动找到最优的网络结构;3)输出网络结构供用户使用。

表1是本申请实施例提供的方法在不同计算延迟约束下搜索到的网络结构的性能对比,从表1中可以看出,本申请实施例提出的基于约束感知网络结构搜索器,可以针对不同的计算延迟约束找到满足要求的网络结构。同时,随着约束变大,所找到的网络结构的准确率也逐渐升高,符合模型变大准确率升高的一般规律。

表1

计算延迟约束 80ms 110ms 140ms 170ms 200ms
模型分类准确率 77.5% 78.4% 78.7% 79.0% 79.2%
模型计算延迟 79ms 107ms 128ms 167ms 193ms

本申请实施例技术方案带来的有益效果可以归纳为:解决了现有的网络结构设计方法对不同计算资源约束要单独设计的问题;实现了在不同计算资源约束下网络结构的准确评估;实现了对于任意计算资源约束搜索网络结构的功能。

在一些实施例中,上述实施例中提供的控制器的训练方法中,还可以用近端策略优化(PPO,Proximal Policy Optimization)替代策略梯度,通过最大化奖励值的期望训练控制器模型。

下面继续说明本申请实施例提供的网络结构搜索装置354实施为软件模块的示例性结构,在一些实施例中,如图3所示,存储在存储器350的网络结构搜索装置354中的软件模块可以是服务器300中的网络结构搜索装置,包括:

接收模块,用于接收网络结构搜索请求;所述网络结构搜索请求中包括至少两条资源约束条件;采样处理模块,用于根据所述至少两条资源约束条件,在预设网络结构库中进行采样处理,得到至少一个网络模块;选择模块,用于根据所述至少两条资源约束条件,在预设参数集合中选择每一所述网络模块的网络参数;生成模块,用于通过所述至少一个网络模块和每一所述网络模块的网络参数,生成目标网络结构;确定模块,用于将所述目标网络结构确定为所述网络结构搜索请求的搜索结果,并输出所述搜索结果。

在一些实施例中,所述装置还包括:处理模块,用于采用预先训练的控制器生成所述目标网络结构;其中,控制器通过以下步骤训练:获取至少两条样本约束条件;根据所述样本约束条件在预设网络结构库中进行采样处理,得到网络结构;确定所述网络结构的性能参数和计算复杂度;将所述性能参数和所述计算复杂度,分别与所述样本约束条件进行比较,得到用于评估所述网络结构的分值;根据所述分值对所述控制器进行优化训练,得到训练后的控制器。

在一些实施例中,所述控制器通过控制函数实现对所述目标网络结构的搜索;其中,所述控制函数通过以下公式表示:αT=f(T;θ);其中,α表示任一网络结构;T表示任一样本约束条件的上界,且满足所述样本约束条件T的网络结构表示为c(α)≤T;αT表示控制器输出的满足样本约束条件的上界T的网络结构;c(*)表示计算成本函数;f(*)表示需要学习的映射函数,θ表示所述映射函数中所包含的参数。

在一些实施例中,所述控制器还通过以下步骤训练:根据所述样本约束条件,依次选择所述网络结构的深度、宽度和卷积核大小;获取所述深度、所述宽度和所述卷积核大小分别对应的深度字符、宽度字符和卷积核大小字符;将所述深度字符、所述宽度字符和所述卷积核大小字符连接形成字符串;根据所述字符串生成所述网络结构。

在一些实施例中,所述控制器的目标函数通过以下公式表示:

其中,ET~τ表示针对于多条样本约束条件所计算得到的控制器的模型平均性能;π(·|T;θ)表示针对于任一样本约束条件的上界T的网络结构采样策略;Eα~π(·|T;θ)表示根据所学习到的网络结构采样策略采样多个网络结构后计算得到的结构平均性能;R(αT|T;w)表示在任一样本约束条件的上界T下任一网络结构αT的分值;w表示分值模型中的参数;τ表示T的分布;T~τ表示T的取值分布服从τ的分布;s.t.表示受约束。

在一些实施例中,所述控制器还通过以下步骤训练:通过所述目标函数,对所述性能参数和所述计算复杂度,分别与所述样本约束条件进行比较,得到用于评估所述网络结构的所述分值。

在一些实施例中,所述控制器还通过以下步骤训练:根据所述分值,对所述样本约束条件和所述网络结构的结构平均性能进行最大化处理,得到最大化处理后的样本约束条件和最大化处理后的网络结构的结构平均性能;根据所述最大化处理后的样本约束条件和最大化处理后的网络结构的结构平均性能,对所述控制器进行优化训练,得到训练后的控制器。

在一些实施例中,所述控制器还通过以下步骤训练:对所述至少两条样本约束条件进行分类,形成至少一个样本约束条件类,每一样本约束条件类中包括至少一个所述样本约束条件;获取每一所述样本约束条件类对应的所述目标函数;将每一所述样本约束条件类中的样本约束条件,输入至对应的所述目标函数中,得到每一样本约束条件类的子分值;对所述至少一个样本约束条件类所对应的至少一个子分值进行融合,得到用于评估所述网络结构的所述分值。

在一些实施例中,所述控制器还通过以下步骤训练:采用所述分值模型,确定用于评估所述网络结构的所述分值;其中,所述分值模型包括至少两个全连接层和至少两个非线性变换处理层,且每一所述全连接层之后连接一个所述非线性变换处理层。

在一些实施例中,所述控制器还通过以下步骤训练:将所述控制器输出的满足样本约束条件的上界的网络结构αT和所述样本约束条件的上界T,输入至所述分值模型中;通过所述分值模型中的所述全连接层和所述非线性变换处理层,对所述网络结构αT和所述样本约束条件的上界T,依次进行至少一次全连接处理和至少一次非线性变换处理,得到所述网络结构的所述分值。

在一些实施例中,所述装置还包括:比较模块,用于当通过所述采样处理得到多个网络结构时,按照以下公式对每两个网络结构进行比较:

其中,β1表示第一个网络结构,β2表示第二个网络结构;表示指示函数,条件为真时输出1,条件为假时输出0;Acc[*]表示网络结构的准确率;c[*]表示网络结构的计算复杂度;g(β12,T)表示在样本约束条件的上界T下β1是否比β2好的比较结果;排序模块,用于根据每两个网络结构的比较结果,对所述多个网络结构进行排序,形成网络结构序列;分值确定模块,用于按照所述网络结构序列,依次确定每一网络结构的所述分值。

在一些实施例中,所述分值确定模块还用于:确定所述分值模型的目标函数,其中所述分值模型的目标函数通过以下公式表示:

其中,L(w)表示针对于分值模型中的参数w进行训练时的损失函数;K表示样本约束条件的数量;M表示所述多个网络结构的数量;φ(*)表示合叶损失函数;βi表示第i个网络结构;βj表示第j个网络结构;Tk表示第k个样本约束条件的上界;R(βi|Tk;w)表示在样本约束条件的上界Tk下网络结构βi的分值;R(βj|Tk;w)表示在样本约束条件的上界Tk下网络结构βj的分值;g(βij,Tk)表示在样本约束条件的上界Tk下βi是否比βj好的比较结果;对所述损失函数L(w)进行最小化处理,得到最小化处理结果;根据所述最小化处理结果,控制所述控制器采样得到的任意两个网络结构的奖励值之间的大小关系,与所述网络结构序列的顺序一致。

需要说明的是,本申请实施例装置的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果,因此不做赘述。对于本装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。

本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例上述的方法。

本申请实施例提供一种存储有可执行指令的存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的方法,例如,如图4示出的方法。

在一些实施例中,存储介质可以是计算机可读存储介质,例如,铁电存储器(FRAM,Ferromagnetic Random Access Memory)、只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read Only Memory)、带电可擦可编程只读存储器(EEPROM,Electrically Erasable Programmable Read Only Memory)、闪存、磁表面存储器、光盘、或光盘只读存储器(CD-ROM,Compact Disk-Read Only Memory)等存储器;也可以是包括上述存储器之一或任意组合的各种设备。

在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。

作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。

以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。

完整详细技术资料下载
上一篇:石墨接头机器人自动装卡簧、装栓机
下一篇:搜索引擎的查询优化方法、装置、电子设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!