分布式批量任务调度方法、装置、设备及存储介质与流程

文档序号:25543286发布日期:2021-06-18 20:40阅读:237来源:国知局
分布式批量任务调度方法、装置、设备及存储介质与流程

本发明涉及分布式系统领域,具体而言,涉及一种分布式批量任务调度方法、装置、设备及存储介质。



背景技术:

近年来,随着银行业务的不断发展,后端系统规模也在不断扩大,批处理任务的数量与复杂度都在日益增加。将单一复杂任务调度在单台服务器上的处理时,由于任务复杂度过高,单台服务器无法提供足够的性能,导致服务器负荷过大,影响任务的处理。

现有技术中,可以通过分布式的部署方案,将单一复杂任务拆解到多台处理服务器上并发执行,以达到降低复杂度,缩短任务执行时间的目的。为此,需要对拆解后的分散的任务进行统一管理调度。

目前,分布式任务调度方法仅仅是基于任务消费者、任务生产者与任务调度者的三层结构。缺乏从任务拆解、任务分配、任务控制到任务流转方法的完整结合。



技术实现要素:

基于上述现有技术存在的分布式任务调度方法仅仅是基于任务消费者、任务生产者与任务调度者的三层结构。缺乏从任务拆解、任务分配、任务控制到任务流转方法的完整结合的问题,本发明实施例提供一种分布式批量任务调度方法、装置、设备及存储介质,可以提供完整的分布式批量任务调度方法。

第一方面,本发明实施例提供一种分布式批量任务调度方法,该方法包括:获取流程调度树,流程调度树是任务控制中心根据预先存储的配置信息创建的。解析流程调度树,获取多个待执行的子任务,在任务调度中心注册每个子任务。任务调度中心根据预设的负载均衡策略,将已注册的每个子任务分发至执行单元并执行。

在第一方面中,任务控制中心通过流程调度树对多个待执行的子任务进行排序并注册至任务调度中心,然后任务调度中心根据预设的负载均衡策略,将已注册的每个子任务分发至执行单元并执行。实现了任务的动态分发、并发控制,使得任务节点和任务调度中心高可用。按照任务控制、任务调度、任务执行的三层结构提供了一套完整的分布式批量任务调度方法。

可选地,解析流程调度树,获取多个待执行的子任务,在任务调度中心注册每个子任务,包括:解析流程调度树,按照每个子任务在流程调度树中的执行顺序,依次获取多个待执行的子任务。根据执行顺序,在任务调度中心注册每个子任务。

可选地,将已注册的每个子任务分发至执行单元并执行,包括:执行单元的单元管理器在接收到子任务后,获取子任务的节点信息以及子任务的执行流程配置参数。单元管理器根据每个子任务的执行流程配置参数和子任务的节点信息,依次将每个子任务下发至子任务的节点信息指示的执行单元中执行。

可选地,子任务节点的节点信息包括:指示子任务对应的服务器节点、资源节点以及任务节点。

可选地,服务器节点包括至少一个服务器子节点。每个服务器子节点下包括至少一个任务节点,任务节点用于响应执行单元,执行子任务。

可选地,若服务器子节点下还包括用于指示任务节点可用状态的临时节点,则任务节点的可用状态为可用。若服务器子节点下不包括用于指示任务节点可用状态的临时节点,则任务节点的可用状态为不可用。

可选地,资源节点包括数据库表子节点和资源子节点。数据库表子节点用于存储数据库分片资源配置信息。资源子节点用于存储服务器资源配置信息。

可选地,任务子节点用于存储任务信息。

可选地,预设的负载均衡策略包括:根据每台服务器的执行单元的性能参数、执行单元正在执行的子任务,获取对应服务器的性能权重。

将已注册的每个子任务分发至执行单元并执行包括:将子任务分发至性能权重最高的服务器对应的执行单元。

可选地,根据每台服务器的执行单元的性能参数、执行单元正在执行的子任务,获取对应服务器的性能权重,包括:根据每台服务器的执行单元的性能参数获取执行单元的初始权重。根据初始权重和执行单元正在执行的子任务获取执行单元的有效权重。获取执行单元的当前权重,将执行单元的有效权重与执行单元的当前权重之和作为服务器的性能权重。

可选地,在获取执行单元的当前权重,将执行单元的有效权重与执行单元的当前权重之和作为服务器的性能权重之后,还包括:获取所有执行单元的有效权重之和,将性能权重减去所有执行单元的有效权重之和后的权重值更新为执行单元的当前权重。

可选地,子任务包括:子任务节点对象,子流程、子流程序号。每个子任务流程序号对应至少一个子任务流程,每个子任务流程对应至少一个子任务节点对象。

第二方面,本发明实施例提供一种分布式批量任务调度装置,装置包括:获取模块,用于获取流程调度树,流程调度树是任务控制中心根据预先存储的配置信息创建的。解析模块,用于解析流程调度树,获取多个待执行的子任务,在任务调度中心注册每个子任务。执行模块,用于任务调度中心根据预设的负载均衡策略,将已注册的每个子任务分发至执行单元并执行。

可选地,解析模块,具体用于解析流程调度树,按照每个子任务在流程调度树中的执行顺序,依次获取多个待执行的子任务。根据执行顺序,在任务调度中心注册每个子任务。

可选地,执行模块,具体用于执行单元的单元管理器在接收到子任务后,获取子任务的节点信息以及子任务的执行流程配置参数。单元管理器根据每个子任务的执行流程配置参数和子任务的节点信息,依次将每个子任务下发至子任务的节点信息指示的执行单元中执行。

可选地,子任务节点的节点信息包括:指示子任务对应的服务器节点、资源节点以及任务节点。

可选地,服务器节点包括至少一个服务器子节点。每个服务器子节点下包括至少一个任务节点,任务节点用于响应执行单元,执行子任务。

可选地,若服务器子节点下还包括用于指示任务节点可用状态的临时节点,则任务节点的可用状态为可用。若服务器子节点下不包括用于指示任务节点可用状态的临时节点,则任务节点的可用状态为不可用。

可选地,资源节点包括数据库表子节点和资源子节点。数据库表子节点用于存储数据库分片资源配置信息。资源子节点用于存储服务器资源配置信息。

可选地,任务子节点用于存储任务信息。

可选地,预设的负载均衡策略包括:根据每台服务器的执行单元的性能参数、执行单元正在执行的子任务,获取对应服务器的性能权重。

执行模块,具体用于将子任务分发至性能权重最高的服务器对应的执行单元。

可选地,获取模块,还用于根据每台服务器的执行单元的性能参数获取执行单元的初始权重。根据初始权重和执行单元正在执行的子任务获取执行单元的有效权重。获取执行单元的当前权重,将执行单元的有效权重与执行单元的当前权重之和作为服务器的性能权重。

可选地,获取模块,还用于获取所有执行单元的有效权重之和,将性能权重减去所有执行单元的有效权重之和后的权重值更新为执行单元的当前权重。

可选地,子任务包括:子任务节点对象,子流程、子流程序号。每个子任务流程序号对应至少一个子任务流程,每个子任务流程对应至少一个子任务节点对象。

第三方面,本发明实施例提供一种电子设备,包括:处理器、存储介质和总线,存储介质存储有处理器可执行的机器可读指令,当电子设备运行时,处理器与存储介质之间通过总线通信,处理器执行机器可读指令,以执行时执行如第一方面的方法的步骤。

第四方面,本发明实施例提供一种存储介质,存储介质上存储有计算机程序,计算机程序被处理器运行时执行如第一方面的方法的步骤。

以上第二方面至第四方面的有益效果,可以参考第一方面中,在此不再赘述。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了本发明实施例提供的分布式任务调度方法的应用场景示意图;

图2示出了本发明实施例提供的分布式任务调度方法的流程示意图;

图3示出了本发明实施例提供的分布式任务调度方法中流程调度树的示意图;

图4示出了本发明实施例提供的另一分布式任务调度方法的流程示意图;

图5示出了本发明实施例提供的分布式任务调度方法中子任务流程调度树的示意图;

图6示出了本发明实施例提供的另一分布式任务调度方法的流程示意图;

图7示出了本发明实施例提供的分布式任务调度方法中服务器节点的示意图;

图8示出了本发明实施例提供的分布式任务调度方法中资源节点的示意图;

图9示出了本发明实施例提供的分布式任务调度方法中任务子节点的示意图;

图10示出了本发明实施例提供的分布式任务调度方法中任务注册的示意图;

图11示出了本发明实施例提供的分布式任务调度方法中任务分配的示意图;

图12示出了本发明实施例提供的分布式任务调度方法中任务分配的示意图;

图13示出了本发明实施例提供的分布式任务调度方法中任务执行的示意图;

图14示出了本发明实施例提供的分布式任务调度方法中任务执行的示意图;

图15示出了本发明实施例提供的分布式任务调度装置的结构示意图;

图16示出了本发明实施例提供的电子设备的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,应当理解,本发明中附图仅起到说明和描述的目的,并不用于限定本发明的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本发明中使用的流程图示出了根据本发明的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本发明内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。

另外,本发明所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,本发明实施例中将会用到术语“包括”,用于指出其后所声明的特征的存在,但并不排除增加其它的特征。还应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。在本发明的描述中,还需要说明的是,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

图1示出了本申请提供的任务调度方法的系统架构,包括任务调度中心、任务控制中心以及执行单元管理。在一个分布式系统中,任务调度中心只存在一个实例。任务调度中心是任务分发与调度的核心,用于任务注册监听以及任务分发。任务控制中心会随着分布式任务的启动而生成,用于实例化任务注册、任务状态监听以及资源监听。在分布式任务全部执行完成后,任务控制中心也会随之消亡。也就是说,每个分布式任务对应一个任务控制中心。

每个分布式任务可以被任务调度中心拆解为多个子任务,每个子任务将被按照负载均衡策略分发给执行单元进行处理。执行单元管理器用于对子任务的执行与管理,例如环境信息更新和任务状态更新等。

需要说明的是,本申请提供的分布式任务调度方法是基于zookeeper架构实现的,将其应用于数据发布与订阅、集群管理、分布式协调与控制、master选举等场景,设计并实现了基于任务控制中心、任务调度中心与执行单元管理三层架构的一种分布式任务调度方法。

图2示出了本申请提供的分布式任务调度方法的流程示意图,参考图2,该方法包括:

s101、获取流程调度树。

流程调度树是任务控制中心根据预先存储的配置信息创建的。图3示出了流程调度树的示意图。其中,流程调度树的执行顺序为“从上到下”、“从左到右”。以图3为例,首先执行的子任务为“0b-00-00-c”。由于“0b-01”下有两个并发的子任务,所以同时执行的两个子任务:“0b-01-01-s-z-j”和“0b-01-02-s-z-j”。然后,继续执行“0b-zy-zy-b”,最后执行“0b-zy-zy-t”。其中“c”、“s”、“z”、“j”、“b”、“t”为子任务拆分后的功能模板。

s102、解析流程调度树,获取多个待执行的子任务,在任务调度中心注册每个子任务。

其中,解析流程调度树的过程即为获取流程调度树中子任务的执行顺序的过程。在任务调度中心注册每个子任务后,任务调度中心会将每个子任务按照顺序排列,等待执行。

s103、任务调度中心根据预设的负载均衡策略,将已注册的每个子任务分发至执行单元并执行。

在本实施例中,任务控制中心通过流程调度树对多个待执行的子任务进行排序并注册至任务调度中心,然后任务调度中心根据预设的负载均衡策略,将已注册的每个子任务分发至执行单元并执行。实现了任务的动态分发、并发控制,使得任务节点和任务调度中心高可用。按照任务控制、任务调度、任务执行的三层结构提供了一套完整的分布式批量任务调度方法。

参考图4,解析流程调度树,获取多个待执行的子任务,在任务调度中心注册每个子任务,包括:

s1021、解析流程调度树,按照每个子任务在流程调度树中的执行顺序,依次获取多个待执行的子任务。

参考图3和图5,将图3中的流程调度树解析为图5中的多个待执行的子任务。其中,每个子任务包括:子任务节点对象,子流程、子流程序号。每个子任务流程序号对应至少一个子任务流程,每个子任务流程对应至少一个子任务节点对象。例如,参考图5,子任务01的子流程序号为01、对应了子任务流程01和子任务流程02,子任务流程01和子任务流程02有分别对应了子任务节点对象s、子任务节点对象z和子任务节点对象j。

s1022、根据执行顺序,在任务调度中心注册每个子任务。

按照图5示出的多个待执行的子任务,按照执行顺序,依次将每个待执行的子任务在任务调度中心中注册。

参考图6,将已注册的每个子任务分发至执行单元并执行,包括:

s1031、执行单元的单元管理器在接收到子任务后,获取子任务的节点信息以及子任务的执行流程配置参数。

一些实施方式中,子任务节点的节点信息包括:指示子任务对应的服务器节点、资源节点以及任务节点。

其中,参考图7,服务器节点包括至少一个服务器子节点。每个服务器子节点下包括至少一个任务节点,任务节点用于响应执行单元,执行子任务。

若服务器子节点下还包括用于指示任务节点可用状态的临时节点,则任务节点的可用状态为可用。若服务器子节点下不包括用于指示任务节点可用状态的临时节点,则任务节点的可用状态为不可用。

作为示例,每个服务器下有多个子节点(/apn(ipaddress))。子节点名称是可以是服务器的ip地址。如第一个子节点的名称可以为/ap110.0.0.55,第二个子节点的名称可以为/ap210.0.0.55。

每个子节点下又包含2类节点:心跳节点、任务节点。心跳节点(/heartbeat)为临时节点,该节点存在即表示执行单元处于可用状态,不存在则表示执行单元处于不可用状态。

任务节点(/taskm_subn)为持久化节点,任务调度中心将任务分配到执行单元上时,会在相应的/apn节点下,建立该任务节点,如/task2_sub1或/task2_sub4等。

其中,/leader_lock节点用于各服务器选举主节点加锁使用。

参考图8,资源节点(/resource)下包括多个目录(cn000、cn001等)每个目录下包括数据库表(sharding)子节点和资源子节点(/qr)。数据库表子节点(/sharding)用于存储数据库分片资源配置信息。资源(/qr)子节点用于存储服务器资源配置信息。

其中,资源子节点包含控制资源(controlresource,cr)与数量资源(qualityresource,qr)。而cr节点又分为共享控制资源(share-cr,scr)、互斥控制资源(exclusive-cr,ecr)。数量资源中记载了每个任务节点的资源信息,如/qr/ap1下,可以包括/filesplit(m,n)以及/fileengine(m,n)。其中,m表示该节点的数据内容资源总数,n表示该节点的数据内容资源占用数。而在数据库表中的qr(如/sharding/shard1/tbpc10101/qr)则是用于表示数据库表允许的并发访问数,其数值会随着cr资源的申请或释放而变化。

参考图9,任务子节点(/task)用于存储任务信息。

任务子节点(/task)包括新任务(/new)、执行中任务(/running)以及完成任务(/finished)。新任务(/new)、执行中任务(/running)以及完成任务(/finished)下包括对应的任务(/taskn)

其中,任务一旦创建则不能修改任务名称(如task1、task2)。如果修改名称则视为新的任务。任务名称下包含任务实例子节点(如/task1_sub1、/task1_sub2),用于存储任务实例的详细信息。其中,(/wait_res)子节点用于等待任务资源接收完毕,在任务资源接收完毕后开始任务调度。/task_psclnd子节点用于标识分布式任务的唯一标识。

s1032、单元管理器根据每个子任务的执行流程配置参数和子任务的节点信息,依次将每个子任务下发至子任务的节点信息指示的执行单元中执行。

其中,预设的负载均衡策略包括:根据每台服务器的执行单元的性能参数、执行单元正在执行的子任务,获取对应服务器的性能权重。

相应的,将已注册的每个子任务分发至执行单元并执行包括:将子任务分发至性能权重最高的服务器对应的执行单元。

根据每台服务器的执行单元的性能参数、执行单元正在执行的子任务,获取对应服务器的性能权重,包括:根据每台服务器的执行单元的性能参数获取执行单元的初始权重。根据初始权重和执行单元正在执行的子任务获取执行单元的有效权重。获取执行单元的当前权重,将执行单元的有效权重与执行单元的当前权重之和作为服务器的性能权重。

在获取执行单元的当前权重,将执行单元的有效权重与执行单元的当前权重之和作为服务器的性能权重之后,还包括:获取所有执行单元的有效权重之和,将性能权重减去所有执行单元的有效权重之和后的权重值更新为执行单元的当前权重。

一些实施方式中,初始权重(weight),即在配置文件或初始化时约定好的每个执行单元的权重。有效权重(effectiveweight),是对每台执行单元所具有的处理能力的权重量化。此变量的作用主要是为执行单元的选取提供依据。当前权重(currentweight),为执行单元当前的权重,初始化为0。

在将子任务分发至性能权重最高的服务器对应的执行单元时,首先计算当前状态下的effectiveweight之和totalweight,然后将每个执行单元的currentweight加上effectiveweight,得到该执行单元的性能权重,对所有性能权重进行排序,然后将将子任务分发至性能权重最高的服务器对应的执行单元。然后将选中的执行单元的性能权重减去totalweight,作为新的currentweight。

一些实施方式中,可以使用加权轮询算法获取effectiveweight。加权轮询算法不需要记录当前的连接状态,是一种无状态连接。但是,权重只能是预先设置好的,不能够动态反应执行单元之间的差异。因此可以引入动态反馈的有效权重因子。

首先,配置cpu上限阈值与内存上限阈值,例如,可以将cpu上限阈值设置为60%,内存上限阈值设置为90%。获取服务器实际的cpu使用率与内存使用率。若实际cpu使用率<cpu上限阈值且实际内存使用率<内存上限阈值,则effectiveweight=w1*lg(1+cpu上限阈值-实际平均cpu使用率)+w2*lg(1+内存上限阈值-实际平均内存使用率),其中w1、w2分别为cpu因子与内存因子影响占比。

以下,参照图10-图14,对本申请提供的分布式任务调度方法的应用过程加以说明。

图10示出了分布式任务调度方法中,任务注册的示意图。

参考图10,当一个分布式任务(/bat_root_demo)启动时,任务控制中心首先解析分布式调度树,得到多个子任务(/tasks),获取待执行子任务后,在/tasks/new节点下创建任务持久化节点信息。例如,图10中示出了在/tasks/new节点下创建的任务“/flow1_a”以及对应的子任务“/flow1_a_1010_file_db1”和“/flow1_a_1560_file_db1”。任务调度中心实时监听/tasks/new节点,有任务节点创建时,即触发任务分配处理。

图11、图12示出了分布式任务调度方法中,任务分配的示意图。

参考图11,任务调度中心根据负载均衡策略,分配任务到合适的执行单元处理。任务调度中心根据资源分配策略,申请资源。资源分配成功后,任务调度中心在/servers/ap1、/servers/ap2节点下,分别创建任务的持久化节点。任务调度中心删除/tasks/new节点下成功分配的任务节点。

参考图12,ap1、ap2执行单元上的环境监听进程,监听到/servers/ap1、/servers/ap2下有任务添加时,控制器在/tasks/running节点下,创建任务临时节点(父节点为持久化节点)。

图13、图14示出了分布式任务调度方法中,任务执行的示意图。

参考图13,执行单元中的控制器,实时更新/tasks/running节点下的任务节点信息。任务调度中心监听/tasks/running节点下的任务节点信息,更新任务节点信息到/servers/apn节点下相应的任务节点。

任务控制中心监听/tasks/running节点下的任务节点信息:

/tasks/running节点下任务执行状态为执行中时,更新分布式流程调度树对应任务状态为执行中。

/tasks/running节点下任务执行状态为(正常/异常)结束时,更新分布式流程调度树对应任务状态为结束,然后在/tasks/finished节点下创建执行结束的任务节点。

参考图14,任务调度中心同时监听/tasks/finished节点,有任务节点创建时,即可删除/servers/ipn节点下相应的任务节点、/tasks/finished节点下相应任务节点的父节点、/tasks/running节点下相应任务节点的父节。任务调度中心根据资源分配策略,释放资源。

本申请在任务控制中心、任务调度中心与执行单元管理三层架构的基础上,实现了一种分布式批量任务从注册分发到控制执行的完整调度方法,具有任务动态分发、任务并发控制、任务弹性扩容、任务排程控制、多任务类型支持、任务节点高可用、调度中心高可用的优势。

基于前述实施例所述的分布式批量任务调度方法,本申请实施例还提供一种分布式批量任务调度装置。

图15示出了本发明实施例提供的分布式批量任务调度装置的结构示意图。

如图15所示,本发明实施例提供一种分布式批量任务调度装置,装置包括:

获取模块1501,用于获取流程调度树,流程调度树是任务控制中心根据预先存储的配置信息创建的。

解析模块1502,用于解析流程调度树,获取多个待执行的子任务,在任务调度中心注册每个子任务。

执行模块1503,用于任务调度中心根据预设的负载均衡策略,将已注册的每个子任务分发至执行单元并执行。

可选地,解析模块1502,具体用于解析流程调度树,按照每个子任务在流程调度树中的执行顺序,依次获取多个待执行的子任务。根据执行顺序,在任务调度中心注册每个子任务。

可选地,执行模块1503,具体用于执行单元的单元管理器在接收到子任务后,获取子任务的节点信息以及子任务的执行流程配置参数。单元管理器根据每个子任务的执行流程配置参数和子任务的节点信息,依次将每个子任务下发至子任务的节点信息指示的执行单元中执行。

可选地,子任务节点的节点信息包括:指示子任务对应的服务器节点、资源节点以及任务节点。

可选地,服务器节点包括至少一个服务器子节点。每个服务器子节点下包括至少一个任务节点,任务节点用于响应执行单元,执行子任务。

可选地,若服务器子节点下还包括用于指示任务节点可用状态的临时节点,则任务节点的可用状态为可用。若服务器子节点下不包括用于指示任务节点可用状态的临时节点,则任务节点的可用状态为不可用。

可选地,资源节点包括数据库表子节点和资源子节点。数据库表子节点用于存储数据库分片资源配置信息。资源子节点用于存储服务器资源配置信息。

可选地,任务子节点用于存储任务信息。

可选地,预设的负载均衡策略包括:根据每台服务器的执行单元的性能参数、执行单元正在执行的子任务,获取对应服务器的性能权重。

执行模块1503,具体用于将子任务分发至性能权重最高的服务器对应的执行单元。

可选地,获取模块1501,还用于根据每台服务器的执行单元的性能参数获取执行单元的初始权重。根据初始权重和执行单元正在执行的子任务获取执行单元的有效权重。获取执行单元的当前权重,将执行单元的有效权重与执行单元的当前权重之和作为服务器的性能权重。

可选地,获取模块1501,还用于获取所有执行单元的有效权重之和,将性能权重减去所有执行单元的有效权重之和后的权重值更新为执行单元的当前权重。

可选地,子任务包括:子任务节点对象,子流程、子流程序号。每个子任务流程序号对应至少一个子任务流程,每个子任务流程对应至少一个子任务节点对象。

上述装置可以集成于服务器、计算机等设备,本发明在此不作限制。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,该深度学习模型训练装置的具体工作过程,可以参考前述方法实施例中所述的深度学习模型训练方法的对应过程,本发明中不再赘述。

应该理解,以上所描述的装置实施例仅仅是示意性的,本发明实施例所揭露的装置和方法,也可以通过其它的方式实现。例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得用户终端或司机终端执行本发明各个实施例所述方法的全部或部分步骤。

也即,本领域内的技术人员应明白,本发明实施例可以采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式中的任一种实现。

基于此,本发明实施例还提供一种程序产品,该程序产品可以是u盘、移动硬盘、rom、ram、磁碟或者光盘等存储介质,存储介质上可以存储有计算机程序,计算机程序被处理器运行时执行如前述方法实施例中所述的深度学习模型训练方法的步骤。具体实现方式和技术效果类似,在此不再赘述。

可选地,本发明实施例还提供一种电子设备,该电子设备可以是服务器、计算机等设备,图16示出了本发明实施例提供的电子设备的结构示意图。

如图16所示,该电子设备16可以包括:处理器1601、存储介质1602和总线1603,存储介质1602存储有处理器1601可执行的机器可读指令,当电子设备运行时,处理器1601与存储介质1602之间通过总线1603通信,处理器1601执行机器可读指令,以执行时执行如前述实施例中所述的深度学习模型训练方法的步骤。具体实现方式和技术效果类似,在此不再赘述。

为了便于说明,在上述电子设备中仅描述了一个处理器。然而,应当注意,一些实施例中,本发明中的电子设备还可以包括多个处理器,因此本发明中描述的一个处理器执行的步骤也可以由多个处理器联合执行或单独执行。

以上仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

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