神经网络架构搜索方法以及装置与流程

文档序号:23090094发布日期:2020-11-27 12:41阅读:113来源:国知局
神经网络架构搜索方法以及装置与流程

本申请涉及深度学习领域,尤其涉及神经网络架构搜索领域。



背景技术:

随着人工智能技术的发展,深度学习神经网络架构搜索技术逐渐成熟。深度学习神经网络架构搜索技术可以自动构建满足需求的深度学习神经网络,降低人力投入,提高人力效率,具有很高的工业价值。

然而,目前的深度学习神经网络架构搜索技术,搜索任务被以单个任务的方式提交到集群管理系统中,在单台机器上执行搜索任务,难以在多台机器组成的集群上以分布式的方式并行执行搜索任务,导致搜索效率较低,并且集群资源的利用率较差。



技术实现要素:

本申请实施例提供一种神经网络架构搜索方法以及装置,以解决相关技术存在的问题,技术方案如下:

第一方面,提供了一种神经网络架构搜索方法,包括:

获取搜索任务的配置信息,根据配置信息生成多个候选模型结构以及对应的参数;

根据多个候选模型结构以及参数创建多个训练任务;

将多个训练任务调度至对应的物理节点,以使各物理节点并行执行对应的训练任务,并统计多个训练任务的训练结果;

在训练结果满足配置信息中的预设训练条件的情况下,得到搜索任务对应的搜索结果。

在一种实施方式中,还包括:

在训练结果未满足配置信息中的预设训练条件的情况下,返回执行根据配置信息生成多个候选模型结构以及对应的参数的步骤。

在一种实施方式中,配置信息是用户输入的配置信息,配置信息包括搜索任务信息和训练任务信息。

在一种实施方式中,根据配置信息生成多个候选模型结构以及对应的参数,包括:

根据搜索任务信息创建对应的算法实例;

将训练任务信息加载至算法实例中,生成多个候选模型结构以及对应的参数。

在一种实施方式中,搜索任务信息包括搜索空间和传统模型结构的搜索算法;根据搜索任务信息创建对应的算法实例,包括:

根据搜索空间和传统模型结构的搜索算法,创建对应的算法实例。

在一种实施方式中,搜索任务信息包括搜索空间和单次模型结构的搜索算法;根据搜索任务信息创建对应的算法实例,包括:

根据搜索空间和单次模型结构的搜索算法,创建对应的算法实例。

在一种实施方式中,还包括:

在候选模型结构需要调优的情况下,根据多个候选模型结构以及对应的参数创建多个模型调优任务;

将多个模型调优任务调度至对应的物理节点,以使各物理节点并行执行对应的模型调优任务,得到多个优化后的候选模型结构,并统计多个优化后的候选模型结构的训练结果。

在一种实施方式中,将多个训练任务调度至对应的物理节点,包括:

根据搜索任务对应的全部训练任务所使用的资源数量,计算多个训练任务对应的多个资源类型权重;

根据多个训练任务对应的多个资源权重,确定多个训练任务的调度顺序;

根据调度顺序将多个训练任务调度至对应的物理节点。

在一种实施方式中,训练结果包括实际训练次数和训练指标的实际值,预设训练条件包括最大搜索次数和训练指标的期望值;在多个训练任务的训练结果满足配置信息中的预设训练条件的情况下,得到搜索任务对应的搜索结果,包括:

在实际训练次数大于或等于最大搜索次数,或训练指标的实际值大于或等于训练指标的期望值的情况下,得到最优网络结构以及对应的参数,最优网络结构以及对应的参数作为搜索结果。

在一种实施方式中,还包括:

针对每个训练任务创建对应的临时任务,临时任务用于将训练结果存储至数据存储器中。

第二方面,本申请实施例提供一种神经网络架构搜索装置,包括:

配置信息获取模块,用于获取搜索任务的配置信息;

候选模型结构生成模块,用于根据配置信息生成多个候选模型结构以及对应的参数;

训练任务创建模块,用于根据多个候选模型结构以及参数创建多个训练任务;

训练任务调度模块,用于将多个训练任务调度至对应的物理节点,以使各物理节点并行执行对应的训练任务,并统计多个训练任务的训练结果;

搜索结果生成模块,用于在训练结果满足配置信息中的预设训练条件的情况下,得到搜索任务对应的搜索结果。

在一种实施方式中,还包括:

迭代搜索触发模块,用于在训练结果未满足配置信息中的预设训练条件的情况下,触发所述候选模型结构生成模块执行根据配置信息生成多个候选模型结构以及对应的参数的步骤。

在一种实施方式中,配置信息是用户输入的配置信息,配置信息包括搜索任务信息和训练任务信息。

在一种实施方式中,候选模型结构生成模块,包括:

算法实例创建子模块,用于根据搜索任务信息创建对应的算法实例;候选模型结构生成子模块,用于将训练任务信息加载至算法实例中,生成多个候选模型结构以及对应的参数。

在一种实施方式中,搜索任务信息包括搜索空间和传统模型结构的搜索算法,算法实例创建子模块,包括:

第一算法实例创建单元,用于根据搜索空间和传统模型结构的搜索算法,创建对应的算法实例。

在一种实施方式中,搜索任务信息包括搜索空间和单次模型结构的搜索算法,算法实例创建子模块,还包括:

第二算法实例创建单元,用于根据搜索空间和单次模型结构的搜索算法,创建对应的算法实例。

在一种实施方式中,还包括:

模型调优任务创建模块,用于在候选模型结构需要调优的情况下,根据多个候选模型结构以及对应的参数创建多个模型调优任务;

模型调优任务调度模块,用于将多个模型调优任务调度至对应的物理节点,以使各物理节点并行执行对应的模型调优任务,得到多个优化后的候选模型结构,并统计多个优化后的候选模型结构的训练结果。

在一种实施方式中,训练任务调度模块,包括:

资源类型权重计算子模块,用于根据搜索任务对应的全部训练任务所使用的资源数量,计算多个训练任务对应的多个资源类型权重;

调度顺序确定子模块,用于根据多个训练任务对应的多个资源权重,确定多个训练任务的调度顺序;

训练任务调度子模块,用于根据调度顺序将多个训练任务调度至对应的物理节点。

在一种实施方式中,训练结果包括实际训练次数和训练指标的实际值,预设训练条件包括最大搜索次数和训练指标的期望值,搜索结果生成模块,包括:

搜索结果生成子模块,用于在实际训练次数大于或等于最大搜索次数,或训练指标的实际值大于或等于训练指标的期望值的情况下,得到最优网络结构以及对应的参数,最优网络结构以及对应的参数作为搜索结果。

在一种实施方式中,还包括:

临时任务创建模块,用于针对每个训练任务创建对应的临时任务,临时任务用于将训练结果存储至数据存储器中。

第三方面,提供了一种电子设备,包括:

至少一个处理器;以及

与至少一个处理器通信连接的存储器;其中,

存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述任一项的方法。

第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,计算机指令用于使计算机执行上述任一项的方法。

上述申请中的一个实施例具有如下优点或有益效果:由于利用搜索任务的配置信息动态地生成多个候选模型结构以及对应的参数,并创建多个候选模型结构的训练任务,将多个训练任务调度之对应的物理节点,并行地执行多个训练任务,进而得到搜索结果,所以不仅提高了搜索效率,还提高了集群资源的利用率,使用的硬件资源和硬件加速资源扩展性增强,满足大规模搜索的需求。

上述可选方式所具有的其他效果将在下文中结合具体实施例加以说明。

附图说明

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

图1是根据本申请一实施例的一种神经网络架构搜索方法的示意图;

图2是根据本申请一实施例的一种神经网络架构搜索场景的示意图;

图3是根据本申请一实施例的另一种神经网络架构搜索方法的示意图;

图4是根据本申请一实施例的另一种神经网络架构搜索方法的示意图;

图5是根据本申请一实施例的训练任务调度方法的示意图;

图6是根据本申请一实施例的一种神经网络架构搜索装置的示意图;

图7是根据本申请另一实施例的一种神经网络架构搜索装置的示意图;

图8是根据本申请一实施例的训练任务调度模块的示意图;

图9是用来实现本申请实施例的一种神经网络架构搜索方法的电子设备的框图。

具体实施方式

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

如图1所示,在一种具体的实施方式中,提供一种神经网络架构搜索方法,包括:

步骤s110:获取搜索任务的配置信息;

步骤s120:根据配置信息生成多个候选模型结构以及对应的参数;

步骤s130:根据多个候选模型结构以及参数创建多个训练任务;

步骤s140:将多个训练任务调度至对应的物理节点,以使各物理节点并行执行对应的训练任务,并统计多个训练任务的训练结果;

步骤s150:在训练结果满足配置信息中的预设训练条件的情况下,得到搜索任务对应的搜索结果。

一种示例中,如图2所示,可以选择在k8s系统(kubernetes,容器集群管理系)中运行控制器、调度器、数据存储器和api(应用程序)服务器等组件,这些组件以docker(开源的应用容器引擎)容器的方式运行在k8s系统的主控节点上。

如图3所示,首先,控制器获取搜索任务的配置信息。配置信息可以是存储在配置文件中的默认的配置信息,或者用户通过界面操作输入的配置信息,又或者是用户在客户端通过命令行输入的搜索任务信息。配置信息中包括搜索任务信息和训练任务信息等。对配置信息添加缺失的信息或者默认的初始值等,将配置信息设置完整。并对完整的配置信息进行校验,例如,确定用户输入的搜索空间是适当的搜索空间:如果用户选择了整形变量,则搜索空间需要提供最小整数和最大整数;如果用户选择了离散变量,则搜索空间需要提供一个离散的列表,写明所有的搜索选择;如果用户选择了浮点数变量,则搜索空间需要提供最小值、最大值以及步长。校验是否选择了合法的操作类型:如果操作类型是卷积操作,则卷积操作对应的参数包括过滤器的尺寸、过滤器的数量、步幅等。在对配置信息进行完校验后,控制器通过kubernetes提供的golang客户端向api服务器发送创建训练任务的请求,api服务器将创建训练任务的请求持久化到数据存储器中。api服务器依赖数据存储器,数据存储器是由etcd(分布式一致性键值存储系统)提供的存储功能。api服务器将创建训练任务的请求发送给搜索任务的处理器进行下一步处理。

搜索任务的处理器利用k8s系统中的informer(带有本地缓存和索引机制的客户端工具)的组件,监控api服务器中关于搜索任务的事件。informer组件注册了搜索任务、训练任务和算法等事件的回调处理器,当搜索任务、训练任务和算法的事件中的任意事件发生变化时,处理器利用k8s系统的客户端来处理这些变化。处理器在收到上述事件后,首先将这些事件放入维护在内存中的事件队列中,由专门的worker(工作服务器)协程负责从事件队列中取出事件。处理器根据事件的引用对象,通过k8s系统的客户端从api服务器处取得搜索任务的配置信息。

其次,搜索任务的处理器接收到创建训练任务的请求后,通过k8s系统提供的客户端从api服务器中获取搜索任务的配置信息。处理器根据搜索任务信息中用户定义的搜索空间和搜索算法,创建算法实例,并利用算法实例来运行搜索算法。例如,处理器根据不同类型的搜索算法(传统模型结构的搜索算法、单次模型结构的搜索算法以及优化后的单次模型结构的搜索算法等),创建对应的算法实例。根据算法的架构不同,算法实例会采用不同的实现。处理器在算法实例初始化完成后,会通过grpc(googleremoteprocedurecall,远程过程调用)框架的通信机制,使得控制器和处理器产生通信交互,将控制器中的训练任务信息与处理器中的算法实例进行交互,生成多个候选模型结构以及对应的参数(例如,权重)。处理器通过http接口访问算法实例,通过http接口获得多个候选模型结构以及对应的参数。

然后,处理器通过访问算法实例获取多个候选模型结构以及对应的参数后,创建候选模型结构的训练任务。一个候选模型结构对应创建一个训练任务,一个训练任务分发多个容器组(pod)上的物理节点并行执行。并将多个候选模型结构的训练任务发送至api服务器。由于处理器可以监控api服务器,当api服务器中存在创建了训练任务的变化时,处理器通过k8s系统的客户端从api服务器处取得配置信息中的训练任务信息,并根据训练任务信息,创建承载训练负载的容器组(pod),容器组(pod)中运行有物理节点,这一功能由kubeflow实现。在容器组(pod)被创建后,调度器会根据训练任务信息,确定多个训练任务需要被调度到的物理节点,使得这些训练任务可以被多个物理节点并行执行。处理器会根据训练任务信息确定训练任务是否需要gpu或cpu等硬件加速器资源,提高使用的硬件资源和硬件加速资源扩展性。每个训练任务会接受候选模型结构作为输入,利用训练任务信息中的训练代码进行训练。在训练任务完成后,训练任务退出,处理器修改训练任务的状态为完成。随后,处理器会统计训练结果,训练结果包括:同一搜索任务中一共完成的训练任务的次数,每个训练任务得到的训练指标的实际值等。

最后,处理器根据搜索任务信息中的最大搜索次数和训练指标的期望值,与训练结果中的实际训练次数和训练指标的实际值进行比对,如果训练结果大于搜索任务信息中的对应值,则处理器标示这一搜索任务的状态为完成。

本实施方式中,深度学习神经网络架构搜索技术利用k8s系统的分布式执行的能力,实现大规模的深度学习神经网络架构搜索。在进行搜索任务时,用户仅需提供搜索任务的配置信息,例如,搜索任务信息和训练任务信息,就可发起深度学习神经网络架构的搜索任务。用户无需自行对深度学习神经网络架构搜索的运行环境进行构建,无需自行申请训练任务所需的集群资源,无需自行设计搜索算法相关的内容,而是由k8s系统自动实现,提高了搜索的便利性、适应性以及搜索速度。根据用户输入的搜索任务的配置信息动态地生成多个候选模型结构以及对应的参数,并创建多个候选模型结构的训练任务,利用k8s系统将多个训练任务调度之对应的物理节点,并行地执行多个训练任务,进而得到搜索结果。不仅提高了搜索效率,还提高了集群资源的利用率,使用的硬件资源和硬件加速资源扩展性增强,满足大规模搜索的需求。

在一种实施方式中,如图4所示,还包括:

在训练结果未满足配置信息中的预设训练条件的情况下,返回执行根据配置信息生成多个候选模型结构以及对应的参数的步骤。

一种示例中,处理器根据搜索任务信息中的最大搜索次数和训练指标的期望值,与训练结果中的实际训练次数和训练指标的实际值进行比对,如果

训练结果小于搜索任务信息中的对应值,则处理器触发返回执行步骤s120-步骤s140。具体的,处理器会以历史训练任务的训练指标和候选模型结构作为输入,重新与算法实例交互,算法实例会根据历史训练任务的训练指标和候选模型结构,推荐新的候选模型结构,直到最大搜索次数小于或者等于实际训练次数,或者训练指标的实际值优于期望值为止。

在一种实施方式中,配置信息是用户输入的配置信息,配置信息包括搜索任务信息和训练任务信息。

一种示例中,用户输入的配置信息可以包括:搜索任务信息和训练任务信息。其中,搜索任务信息包括:搜索任务所在的命名空间(namespace)、搜索任务的名字、搜索任务需要使用的数据集以及版本、执行搜索任务所需的模型结构以及版本、搜索任务的训练指标名称以及训练指标的期望值、搜索空间的定义(操作,如卷积操作等;操作类型,如离散变量,整形变量等)、搜索失败次数、搜索次数最大值、搜索算法。搜索算法可以包括:搜索算法名称(如使用自定义算法时提供搜索算法的镜像)、搜索算法类型(如一次性算法类型,传统算法类型等)、搜索算法使用的硬件资源(如gpu、cpu、持久化存储、内存等)。训练任务信息包括:单次执行训练任务的训练代码、单次执行训练任务的硬件资源(如cpu、内存、gpu等)、单次执行训练任务的训练模式(如tensorflow基于数据流编程的分布式模式、parameterserver参数服务器、worker工作服务器模式等)等。

在一种实施方式中,如图4所示,步骤s120,包括:

步骤s121:根据搜索任务信息创建对应的算法实例;

步骤s122:将训练任务信息加载至算法实例中,生成多个候选模型结构以及对应的参数。

一种示例中,如图3所示,处理器根据搜索任务信息中的算法类型,创建对应的算法实例。例如,针对传统模型结构的搜索算法,处理器利用搜索任务信息中的算法代码,创建出对应的算法实例。针对如darts(基于梯度反传的神经网络搜索技术的框架)等仅需要一次模型训练的搜索算法,处理器利用搜索任务信息中的算法代码,创建出对应的算法实例。然后,处理器将训练任务信息加载至创建出来的算法实例中,生成多个候选模型结构以及对应的参数。

本实施方式中,在进行搜索任务时,用户仅需提供搜索任务的配置信息,例如,搜索任务信息和训练任务信息,就可发起深度学习神经网络架构的搜索任务,提高了搜索的便利性。同时,由于根据不同的算法类型创建对应的算法实例,进而生成多个候选模型结构以及对应的参数,所以提高了搜索的适应性。

在一种实施方式中,搜索任务信息包括搜索空间和传统模型结构的搜索算法;步骤s121,包括:

根据搜索空间和传统模型结构的搜索算法,创建对应的算法实例。

一种示例中,如图3所示,如果算法类型为传统模型结构的搜索算法,例如,用户选择的随机搜索的搜索算法,算法实例会随机地在搜索空间中选取取值。处理器会根据配置信息中的镜像列表,寻找到随机搜索对应的镜像,并且利用这一镜像创建出算法容器,算法容器以restful(representationalstatetransfer,表现层状态转移)形式的api服务器的方式对外提供服务。

另一示例中,用户选择了基于深度学习的搜索算法,处理器会根据配置信息中相关信息建立算法实例。算法实例会建立一个lstm(longshort-termmemory,长短期记忆网络),进而生成的候选模型结构为深度学习的模型结构。

在一种实施方式中,搜索任务信息包括搜索空间和单次模型结构的搜索算法;步骤s121,包括:

根据搜索空间和单次模型结构的搜索算法,创建对应的算法实例。

一种示例中,如图3所示,如果算法类型为单次模型结构的搜索算法,例如,用户选择的darts等的子图搜索算法,既产生模型结构又产生模型权重。处理器会创建算法实例来完成训练。在训练完成后,处理器利用得到的子图,创建模型调优任务,并将模型调优任务发送至k8s的api服务器。如果用户不需要调优,则将搜索到的模型直接推送到数据存储器中或者其他持久化存储器中。

另一示例中,如果用户选择的是只产生模型结构,不产生模型权重的子图搜索算法,处理器会创建算法实例完成训练。在训练完成后,处理器利用得到的模型子结构创建训练任务,并将训练任务发送至k8s系统api服务器。

在一种实施方式中,如图4所示,还包括:

步骤s160:在候选模型结构需要调优的情况下,根据多个候选模型结构以及对应的参数创建多个模型调优任务;

步骤s170:将多个模型调优任务调度至对应的物理节点,以使各物理节点并行执行对应的模型调优任务,得到多个优化后的候选模型结构,并统计多个优化后的候选模型结构的训练结果。

一种示例中,如果用户输入的配置信息中包含有候选模型结构相关的调优信息,那么处理器获取调优信息后,将创建模型调优任务的请求发送至api服务器,在api服务器收到创建模型调优任务的请求后,处理器监听到来自api服务器的创建模型调优任务的事件,并根据调优信息,利用多个候选模型结构以及对应的参数创建多个模型调优任务。例如,根据子图创建出完整的全图,或者利用用户输入的完整的全图进行模型优化和评估。

在一种实施方式中,如图5所示,步骤140:包括:

步骤141:根据搜索任务对应的全部训练任务所使用的资源数量,计算多个训练任务对应的多个资源类型权重;

步骤142:根据多个训练任务对应的多个资源权重,确定多个训练任务的调度顺序;

步骤143:根据调度顺序将多个训练任务调度至对应的物理节点。

一种示例中,调度器在执行调度任务时,可以利用如下公式计算所有搜索任务正在使用的资源:

其中,resource表示资源类型,可以为内存、cpu或硬件加速器资源等;i为搜索任务;j为搜索任务i的训练任务;k为搜索任务i定义的最大搜索次数;resourcejobj表示第j个任务所用的资源。

调度器计算每个训练任务j的资源权重:

wj=wcpu·cpui+wmem·memi+wgpu·gpui

其中,wcpu,wmem,wgpu分别是cpu、内存和gpu的资源权重,都小于1;cpui是搜索任务i使用的cpu资源数量,memi是搜索任务i使用的内存资源数量,gpui是搜索任务i使用的gpu资源数量。

调度器在资源不足以运行队列中的多个训练任务时,会根据这一权重公式来决定运行哪一个任务。当高权重的任务资源无法被满足时,调度器会顺延调度第二高权重的训练或调优任务,以此类推。

在一种实施方式中,如图4所示,训练结果包括实际训练次数和训练指标的实际值,预设训练条件包括最大搜索次数和训练指标的期望值;步骤s150,包括:

步骤s151:在实际训练次数大于或等于最大搜索次数,或训练指标的实际值大于或等于训练指标的期望值的情况下,得到最优网络结构以及对应的参数,最优网络结构以及对应的参数作为搜索结果。

一种示例中,训练指标是指精度或速度等性能评估指标,包括误差、精准度以及方差等。

在一种实施方式中,如图4所示,还包括:

步骤s180:针对每个训练任务创建对应的临时任务,临时任务用于将训练结果存储至数据存储器中。

一种示例中,在调度完成后,训练任务会被执行。在执行时,处理器会为每个训练任务创建一个临时任务,临时任务与训练任务在同一个命名空间下,临时任务负责通过用k8s系统的客户端从api服务器处获得训练任务或模型调优任务的日志,并将训练结果存储至数据存储器中。例如,在流式的训练任务的日志中,针对不同的训练框架利用不同的处理机制得到训练指标,临时任务将训练指标反馈到数据存储器中。

在另一种具体实施方式中,如图6所示,提供一种神经网络架构搜索装置,包括:

配置信息获取模块110,用于获取搜索任务的配置信息;

候选模型结构生成模块120,用于根据配置信息生成多个候选模型结构以及对应的参数;

训练任务创建模块130,用于根据多个候选模型结构以及参数创建多个训练任务;

训练任务调度模块140,用于将多个训练任务调度至对应的物理节点,以使各物理节点并行执行对应的训练任务,并统计多个训练任务的训练结果;

搜索结果生成模块150,用于在训练结果满足配置信息中的预设训练条件的情况下,得到搜索任务对应的搜索结果。

在一种实施方式中,如图7所示,还包括:

迭代搜索触发模块160,用于在训练结果未满足配置信息中的预设训练条件的情况下,触发候选模型结构生成模块120执行根据配置信息生成多个候选模型结构以及对应的参数的步骤。

在一种实施方式中,配置信息是用户输入的配置信息,配置信息包括搜索任务信息和训练任务信息。

在一种实施方式中,如图7所示,候选模型结构生成模块120,包括:

算法实例创建子模块121,用于根据搜索任务信息创建对应的算法实例;

候选模型结构生成子模块122,用于将训练任务信息加载至算法实例中,生成多个候选模型结构以及对应的参数。

在一种实施方式中,搜索任务信息包括搜索空间和传统模型结构的搜索算法,算法实例创建子模块121,包括:

第一算法实例创建单元,用于根据搜索空间和传统模型结构的搜索算法,创建对应的算法实例。

在一种实施方式中,搜索任务信息包括搜索空间和单次模型结构的搜索算法,算法实例创建子模块121,还包括:

第二算法实例创建单元,用于根据搜索空间和单次模型结构的搜索算法,创建对应的算法实例。

在一种实施方式中,如图7所示,还包括:

模型调优任务创建模块170,用于在候选模型结构需要调优的情况下,根据多个候选模型结构以及对应的参数创建多个模型调优任务;

模型调优任务调度模块180,用于将多个模型调优任务调度至对应的物理节点,以使各物理节点并行执行对应的模型调优任务,得到多个优化后的候选模型结构,并统计多个优化后的候选模型结构的训练结果。

在一种实施方式中,如图8所示,训练任务调度模块140,包括:

资源类型权重计算子模块141,用于根据搜索任务对应的全部训练任务所使用的资源数量,计算多个训练任务对应的多个资源类型权重;

调度顺序确定子模块142,用于根据多个训练任务对应的多个资源权重,确定多个训练任务的调度顺序;

训练任务调度子模块143,用于根据调度顺序将多个训练任务调度至对应的物理节点。

在一种实施方式中,如图7所示,训练结果包括实际训练次数和训练指标的实际值,预设训练条件包括最大搜索次数和训练指标的期望值,搜索结果生成模块150,包括:

搜索结果生成子模块151,用于在实际训练次数大于或等于最大搜索次数,或训练指标的实际值大于或等于训练指标的期望值的情况下,得到最优网络结构以及对应的参数,最优网络结构以及对应的参数作为搜索结果。

在一种实施方式中,如图7所示,还包括:

临时任务创建模块190,用于针对每个训练任务创建对应的临时任务,临时任务用于将训练结果存储至数据存储器中。

请实施例各装置中的各模块的功能可以参见上述方法中的对应描述,在此不再赘述。

根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。

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

如图9所示,该电子设备包括:一个或多个处理器901、存储器902,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不

同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示gui的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图9中以一个处理器901为例。

存储器902即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的一种神经网络架构搜索方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的一种神经网络架构搜索方法。

存储器902作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的一种神经网络架构搜索方法对应的程序指令/模块(例如,附图6所示的配置信息获取模块110、候选模型结构生成模块120、训练任务创建模块130、训练任务调度模块140、搜索结果生成模块150)。处理器901通过运行存储在存储器902中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的一种神经网络架构搜索方法。

存储器902可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据一种神经网络架构搜索方法的电子设备的使用所创建的数据等。此外,存储器902可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器902可选包括相对于处理器901远程设置的存储器,这些远程存储器可以通过网络连接至一种神经网络架构搜索方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

一种神经网络架构搜索方法的电子设备还可以包括:输入装置903和输出装置904。处理器901、存储器902、输入装置903和输出装置904可以通过总线或者其他方式连接,图9中以通过总线连接为例。

输入装置903可接收输入的数字或字符信息,以及产生与一种神经网络架构搜索方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置904可以包括显示设备、辅助照明装置(例如,led)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(lcd)、发光二极管(led)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。

此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用asic(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。

这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(pld)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。

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

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

计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。

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

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

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