CN112668659A - 模型训练方法、平台和电子设备 - Google Patents
模型训练方法、平台和电子设备 Download PDFInfo
- Publication number
- CN112668659A CN112668659A CN202011632653.3A CN202011632653A CN112668659A CN 112668659 A CN112668659 A CN 112668659A CN 202011632653 A CN202011632653 A CN 202011632653A CN 112668659 A CN112668659 A CN 112668659A
- Authority
- CN
- China
- Prior art keywords
- data
- cluster
- model training
- sub
- format
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
本申请公开了一种模型训练方法、平台和电子设备,通过第一集群将待训练数据转换为第一编程语言对应的第一数据,并将第一数据存储至预设存储空间;通过第二集群在预设存储空间获取第一数据;通过第二集群将第一数据转换为第二编程语言对应的第二数据,并根据第二数据进行分布式模型训练。由于本申请的方案中,第一集群根据其对应的第一编程语言来处理数据,第二集群根据其对应第二编程语言进行模型训练,两个集群均使用其适用的编程语言进行结合,可以保障各集群的运行效率,也无需限制结合的两个集群支持相同的数据格式,从而在满足大数据集的基础上进行深度神经网络模型训练的同时,提升神经网络模型训练效率。
Description
技术领域
本申请涉及人工智能领域,尤其涉及一种模型训练方法、平台和电子设备。
背景技术
随着人工智能的兴起,深度学习在人工智能领域有着广泛的应用前景,例如,系统辨识、模式识别、智能控制等都离不开深度学习。在深度学习过程中,通过使用训练数据不断的求导迭代更新模型,来实现模型训练,且训练数据集越大,训练的模型性能越好,因此,在大数据集的基础上训练的深度神经网络模型显得尤为重要。
在现有技术中,通常选择支持同样数据格式的集群结合,实现在大数据集的基础上进行深度神经网络模型训练。然而,若集群是基于不同语言开发,会造成其中的一个或者多个集群的运行效率较低,最终导致模型训练的效率较低。
发明内容
本申请的主要目的在于提供一种模型训练方法、平台和电子设备,提供一种模型训练方案,旨在解决现有技术中,将不同集群结合,实现在大数据集的基础上训练神经网络模型时,模型训练效率低的技术问题。
为实现上述目的,本申请提供一种模型训练方法,应用于模型训练平台,模型训练平台中设置有第一集群和第二集群,第一集群对应第一编程语言,第二集群对应第二编程语言,该模型训练方法包括:
通过第一集群将待训练数据转换为第一编程语言对应的第一数据,并将第一数据存储至预设存储空间,第一数据为第一格式;
通过第二集群在预设存储空间获取第一数据;
通过第二集群将第一数据转换为第二编程语言对应的第二数据,并根据第二数据进行分布式模型训练,第二数据为第二格式。
可选的,通过第一集群将待训练数据转换为第一编程语言对应的第一数据,包括:
通过第一集群将待训练数据划分为M份子训练数据,其中,M为大于1的整数;
通过第一集群,在M份子训练数据中确定M个分区各自对应的一份子训练数据,M个分区为第一集群中的分区;
通过第一集群,分别在每个分区中对各自对应的子训练数据进行格式转换,得到M份第一子数据,第一子数据为第一格式,第一数据包括M份第一子数据。
可选的,通过第一集群,分别在每个分区中对各自对应的子训练数据进行格式转换,得到M份第一子数据,包括:
针对M个分区中的任意一个分区,通过第一集群在分区中将分区对应的子训练数据转换为二维数组格式的数据;
通过第一集群将二维数据格式的数据转换为一维数组格式的第一子数据,第一格式为一维数组格式。
可选的,将第一数据存储至预设存储空间,包括:
通过第一集群确定每份第一子数据对应的子存储空间,预设存储空间包括M份第一子数据对应的子存储空间;
通过第一集群分别将每份第一子数据存储至对应的子存储空间。
可选的,预设存储空间为堆外内存。
可选的,预设存储空间包括M个子存储空间,第二集群中设置有N个模型训练进程,N为大于或等于2的整数;通过第二集群在预设存储空间获取第一数据,包括:
通过第二集群,在M个子存储空间中确定每个模型训练进程对应的至少一个子存储空间;
通过第二集群中的每个模型训练进程获取各自对应的至少一个子存储空间中的第一子数据,第一数据包括至少M个子存储空间中的第一子数据。
可选的,通过第二集群将第一数据转换为第二编程语言对应的第二数据,包括:
针对N个模型训练进程中的任意一个模型训练进程,将模型训练进程对应的至少一个子存储空间中的第一子数据进行合并处理,得到合并子数据;
通过第二集群对合并子数据进行格式转换,得到模型训练进程对应的第二子数据,第二子数据的格式为第二格式,第二数据包括N个模型训练进程对应的第二子数据。
可选的,根据第二数据进行分布式模型训练,包括:
通过第二集群确定每个模型训练进程对应的系统参数和模型参数;
针对N个模型训练进程中的任意一个模型训练进程,根据模型训练进程对应的系统参数和模型参数,对模型训练进程对应的第二子数据进行分布式模型训练。
可选的,通过第二集群在预设存储空间获取第一数据之前,还包括:
通过预设程序向第二集群发送调用指令,调用指令用于调用第二集群执行分布式模型训练,预设程序为通过第一编程语言实现的程序。
可选的,第一集群为Spark集群,第一编程语言为Scala语言或者JAVA语言;
第二集群为Pytorch集群,第二编程语言为Python语言。
本申请还提供一种模型训练平台,模型训练平台中设置有第一集群和第二集群,第一集群对应第一编程语言,第二集群对应第二编程语言,模型训练平台包括:数据转换模块,用于通过第一集群将待训练数据转换为第一编程语言对应的第一数据,并将第一数据存储至预设存储空间,第一数据为第一格式;
获取模块,用于通过第二集群在预设存储空间获取第一数据;
处理模块,用于通过第二集群将第一数据转换为第二编程语言对应的第二数据,并根据第二数据进行分布式模型训练,第二数据为第二格式。
本申请还提供一种电子设备,电子设备包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,计算机程序被处理器执行时实现第一方面提供的模型训练方法的步骤。
本申请还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如第一方面提供的模型训练方法的步骤。
本申请还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时,实现第一方面提供的模型训练方法。
与目前选择支持同样数据格式的集群结合,实现大数据集的基础上进行深度神经网络模型训练相比,本申请通过第一集群将待训练数据转换为第一编程语言对应的第一数据,并将第一数据存储至预设存储空间,第一数据为第一格式;通过第二集群在预设存储空间获取第一数据;通过第二集群将第一数据转换为第二编程语言对应的第二数据,并根据第二数据进行分布式模型训练,第二数据为第二格式。由于本申请的方案中,第一集群根据其对应的第一编程语言来处理数据,第二集群根据其对应第二编程语言对数据进行模型训练,两个集群均基于其适用的编程语言进行结合,可以保障各集群的运行效率,也无需限制结合的两个集群支持相同的数据格式,从而在满足大数据集的基础上进行深度神经网络模型训练的同时,提升神经网络模型训练效率。
附图说明
图1为本申请一实施例提供的应用场景示意图;
图2为本申请一实施例提供的模型训练方法的流程示意图;
图3为本申请另一实施例提供的模型训练方法的流程示意图;
图4为本申请一实施例提供的模型训练方法的原理示意图;
图5为本申请另一实施例提供的模型训练方法的原理示意图;
图6为本申请一实施例提供的模型训练平台的结构示意图;
图7为本申请一实施例提供的电子设备的结构示意图。
本申请目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
下面将参照附图更详细地描述本申请的示例性实施例。虽然附图中显示了本申请的示例性实施例,然而应当理解,可以以各种形式实现本申请而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本申请,并且能够将本申请的范围完整的传达给本领域的技术人员。
随着人工智能的兴起,深度学习在人工智能领域有着广泛的应用前景,例如,系统辨识、模式识别、智能控制等都离不开深度学习。在深度学习过程中,通过使用训练数据不断的求导迭代更新模型,来实现模型训练,且训练数据集越大,训练的模型性能越好,因此,在大数据集的基础上训练的深度神经网络模型显得尤为重要。
在现有技术中,为了兼容原来的Hadoop生态圈,采用单一的神经网络引擎平台可能难以适用大量的使用场景,所以有效的采用方案是采用混合的平台设计,通过集成不同的框架,拓展平台的功能。通常选择支持同样数据格式的集群结合,实现在大数据集的基础上进行深度神经网络模型训练。然而,若集群是基于不同语言开发,会造成其中的一个或者多个集群的运行效率较低,最终导致模型训练的效率较低。例如,将Spark和Pytorch进行结合。Spark作为一种大规模分布式计算引擎,引入了actor并行模型,在处理分布式数据集具有很大优势,使其在大数据处理中具有优秀的性能,由于Spark具有很多优秀的特点,如优秀的作业调试策略、简洁易用的接口、功能全面,集成了SQL语义,流式计算,机器学习,图模型等功能,目前为止Spark仍是Hadoop生态圈中很重要的一环。
Pytorch是一款优秀的基于Python语言开发的机器学习与深度学习库,它采用灵活的动态图的机制,使得易于使用与调试,且目前Pytorch主要功能也相对成熟,越来越受学术与工业办的青睐,其中在神经网络的支持表现出色,使其在神经网络模型训练中被广泛应用。
现有技术中,通过将Spark集群与Pytorch集群进行结合,由Spark集群来实现分布式数据处理,再由Pytorch集群完成神经网络模型的训练,以实现在大数据集的基础上训练神经网络模型。然而,由于上述结合方案中,是通过Python版本的Spark集群与Pytorch集群进行结合,而Spark集群实质是基于Scala语言开发的,所以Python版本的Spark集群在运行时效率较低,最终导致基于上述结合方案进行神经网络模型训练的效率低,随着数据量和复杂性的不断增长,难以满足高性能计算的需求。
有鉴于此,本申请提供一种模型训练方法、平台和电子设备,采用第一编程语言开发的第一集群与采用第二编程语言开发的第二集群进行结合,由第一集群根据其对应的第一编程语言来处理数据,第二集群根据其对应第二编程语言对数据进行模型训练,两个集群均使用其适用的编程语言进行结合,可以保障各集群的运行效率,也无需限制结合的两个集群支持相同的数据格式,从而在满足大数据集的基础上进行深度神经网络模型训练的同时,提升神经网络模型训练效率。
图1为本申请一实施例提供的应用场景示意图。如图1所示,该场景包括:模型训练平台100以及预设存储空间104。其中,在模型训练平台100上部署有第一集群101、客户端(driver)102以及第二集群103。
本申请实施例中,模型训练平台100可以为任意配置了处理器与存储器的电子设备,或者电子设备的集合。例如:服务器等。
需要说明的是,为方便理解,本申请实施例以第一集群101为Spark集群,第二集群103为Pytorch集群为例进行说明,在实际应用中上述集群均可以为其他类型的集群,本申请实施例不做具体限定。
结合上述,第一集群101适用于第一编程语言,第二集群103适用于第二编程语言,其中,第一编程语言可以为Scala语言或者JAVA语言,第二编程语言可以为Python语言。
可选的,预设存储空间104可以为任意具备数据存储功能的存储空间,例如:模型训练平台100的本地存储空间、云端以及集群的堆外内存等,本申请实施例不做具体限定。
在实际应用中,第一集群101做为程序的主动调用方,可以通过第一集群101启动程序以及加载数据,通过第二集群103进行分布式模型的训练。通过客户端(driver)102来控制第一集群101以及第二集群103的启动与关闭。
在模型训练过程中,通过客户端(driver)102启动第一集群101,并控制第一集群101加载待训练数据,并将加载的待训练数据存储在预设存储空间104中。
进一步的,第二集群103中有利用Scala语言编写的rpc服务端常跓进程,用于接收来通过客户端102发送的命令。当第二集群103接收到通过客户端102发送的rpc命令时,通过第二集群103根据rpc命令启动并初始化第二集群103中的相应模型训练进程,然后从预设存储空间104中获取训练数据,在模型训练进程中,根据训练数据进行模型训练。当训练完成后,可以通过客户端102从第二集群103中获取训练后的训练结果。
由于第一集群101根据其对应的第一编程语言来处理数据,第二集群103根据其对应第二编程语言对数据进行模型训练,两个集群均使用其适用的编程语言进行结合,可以保障各集群的运行效率,也无需限制结合的两个集群支持相同的数据格式,从而在满足大数据集的基础上进行深度神经网络模型训练的同时,提升神经网络模型训练效率。
图2为本申请一实施例提供的模型训练方法的流程示意图。本申请实施例的执行主体可以为上述模型训练平台,模型训练平台中设置有第一集群和第二集群,第一集群对应第一编程语言,第二集群对应第二编程语言。如图2所示,本申请实施例提供的模型训练方法可以包括如下步骤:
S201、通过第一集群将待训练数据转换为第一编程语言对应的第一数据,并将第一数据存储至预设存储空间。
其中,第一数据为第一格式。
实际应用中,待训练数据可以为模型训练平台存储的本地训练样本数据,也可以是模型训练平台通过网络实时接收或者获取的训练样本数据,本申请实施例不做具体限定。
其次,本申请对于待训练数据的类型以及训练模型的类型也不做具体限制,即本申请实施例提供的训练方法可以用于实现各种模型的训练。示例性的,在一种可选的实现方式中,模型可以为图像识别模型,相应的,本申请实施例中的待训练数据可以为图像数据,通过本申请实施例提供的方法,可以实现对图像识别模型的训练。
在另一种可选的实现方式中,模型可以为风险预测模型,相应的,本申请实施例中的训练数据可以为用户的资产数据,例如存款时间、存款金额、贷款时间、贷款金额、坏账记录等,通过本申请实施例提供的方法,可以实现对风险预测模型的训练。
在其他可选方案中,模型还可以为信用评估模型,相应的,本申请实施例中的训练数据可以为用户的信用数据,例如借款数据、还款数据、逾期数据等,通过本申请实施例提供的方法,可以实现对信用评估模型的训练。
可以理解的是,上述几种训练数据类型及模型类型为示例性的,并不作为本申请的一个限制。
需要说明的是,对于第一集群、第二集群的类型,本申请实施例不做具体限定,相应的,第一编程语言和第二编程语言分别为上述两种集群适用的编程语言,本申请实施例也不做具体限定。
作为一种可选方案,第一集群可以为Spark集群,第二集群可以为Pytorch集群,相应的,第一编程语言可以为Scala语言或者JAVA语言,第二编程语言可以为Python语言。为方便理解,本申请实施例以第一集群为Spark集群,第二集群为Pytorch集群,第一编程语言为Scala语言,第二编程语言为Python语言为例进行说明。
本步骤中,在获取到待训练数据后,通过第一集群将待训练数据转换为第一编程语言对应的第一数据,其中,第一数据为第一格式。对于第一格式,本申请实施例不做具体限定,示例性的,第一格式可以为一维数组格式、二维数组格式等。
本步骤中,由于获取到的训练数据的格式非统一,因此,在进行模型训练前,可以将其转换为第一格式,以便于后续的数据处理过程,提升数据处理效率。
进一步的,将数据格式为一维数组格式的第一数据存储至预设存储空间中。一方面,预设存储空间可以为模型训练平台本地的任意具有存储功能的存储空间。通过将训练数据存储至模型训练平台本地,无需通过网络或其他方式传送数据,从而可以保障数据的安全性。
另一方面,预设存储空间也为云端的存储空间。由于训练样本的数据量较大,将训练数据存储至云端,再根据需求实时的获取待训练数据,可以解耦模型训练平台的数据存储压力,保障模型训练平台的运行性能。其他实施例中,预设存储空间还可以为堆外内存。由于采用堆外内存存储数据时,通过自带常用的适配置器将数据存储到外介中,在进行模型训练时,具有零拷贝的特点,即可以直接从堆外内存中获取待训练数据,无需进行复制,从而可以提升数据传输效率,进一步提升模型训练效率。
S202、通过第二集群在预设存储空间获取第一数据。
需要说明的是,第一集群将第一数据存储至预设存储空间后,本步骤中,第二集群直接从在预设存储空间中获取第一数据,即两者共用预设存储空间,由于第一数据的数据量较大,通过本方案无需进行数据传输,从而可以提升第二集群的数据获取效率,最终提升模型训练效率。
S203、通过第二集群将第一数据转换为第二编程语言对应的第二数据,并根据第二数据进行分布式模型训练。
其中,第二数据为第二格式。对于第二格式的类型,本申请实施例不做具体限定,示例性的,以第二集群为Pytorch集群,二编程语言为Python为例。对应的,第二格式可以为表示张量的数据结构Tensor。
进一步的,根据第二数据进行分布式模型训练。
可选的,为了保证数据的安全性,通过Spark集群在将待训练数据存储至预设存储空间的过程中,可以将训练数据加密。相应的,通过第二集群获取待训练数据时,需要解密,对于加密方式,本申请实施例不做具体限定。通过上述手段可以满足隐私保护计算的需要,进一步提升模型训练平台的安全性。
本申请中,通过第一集群将待训练数据转换为第一编程语言对应的第一数据,并将第一数据存储至预设存储空间,第一数据为第一格式;通过第二集群在预设存储空间获取第一数据;通过第二集群将第一数据转换为第二编程语言对应的第二数据,并根据第二数据进行分布式模型训练,第二数据为第二格式。由于本申请的方案中,第一集群根据其对应的第一编程语言来处理数据,第二集群根据其对应第二编程语言对数据进行模型训练,两个集群均使用其适用的编程语言进行结合,保障了各集群的运行效率,也无需限制结合的两个集群支持相同的数据格式,从而在满足大数据集的基础上进行深度神经网络模型训练的同时,提升神经网络模型训练效率。
另外,由于第一集群和第二集群共用预设存储空间,第一集群将第一数据存储至预设存储空间后,第二集群直接从在预设存储空间中获取第一数据,通过本方案无需进行数据传输,从而可以提升第二集群的数据获取效率,最终提升模型训练效率。
图3为本申请另一实施例提供的模型训练方法的流程示意图。在上述实施例的基础上,本实施例对本申请的技术方案进行更详细的描述,本申请实施例提供的模型训练方法应用于模型训练平台,模型训练平台中设置有第一集群和第二集群,第一集群对应第一编程语言,第二集群对应第二编程语言。
需要说明的是,本申请实施例仍以第一集群为Spark集群,第二集群为Pytorch集群,第一编程语言为Scala语言,第二编程语言为Python语言为例进行说明。
在实际应用中,Spark集群做为程序的主动调用方,负责启动程序、加载数据、加工处理以及负责业务逻辑的执行端。Pytorch集群负责分布式模型的训练。为方便理解,请参考图4,图4为本申请一实施例提供的模型训练方法的原理示意图。如图4所示,Spark集群的driver(客户端)做为既作为Spark的driver,也作为Pytorch集群的driver,用于启动控制关闭Pytorch集群,并发送Pytorch代码运行命令,广播数据到Pytorch集群与从Pytorch集群中获取训练结果。
Pytorch集群中设置有N个模型训练进程,N为大于或等于2的整数。对于N的取值,可以根据模型训练需求进行配置,本申请实施例不做具体限定,如图4所示,本申请实施例以N的取值为2为例示出,即Pytorch集群中设置有2个模型训练进程。
在实际应用中,Pytorch集群在每一台服务器上都有用Scala语言编写的rpc服务端常跓进程,用于接收并执行来自driver发送的命令。Spark启动Pytorch集群的方式是:通过driver发送rpc命令到每一个Pytorch集群,启动并初始化预先设置相应进程数的进程。
如图3所示,本申请实施例提供的模型训练方法可以包括如下步骤:
S301、通过第一集群将待训练数据划分为M份子训练数据。
S302、通过第一集群,在M份子训练数据中确定M个分区各自对应的一份子训练数据。其中,M为大于1的整数,M个分区为第一集群中的分区。
可以理解的是,待训练数据为模型训练中所用到的所有样本数据。在实际应用中,在将待训练数据划分为M份子训练数据之前,需要构造基于Spark的弹性分布式数据集(ResilientDistributedDatasets,RDD),可以理解的是,RDD的数量可以根据待训练数据的大小进行设定,本申请实施例不做具体限定。
进一步的,在获取到待训练数据之后,将待训练数据划分为M份子训练数据,分别存放至Spark集群的M个RDD分区中。其中,M为大于1的整数,M的取值可以根据实际需求进行设定,本申请实施例也不作具体限定。
在一种实施方式中,M的取值可以为一固定值,例如,M的取值为5;在另一种实施方式中,可以根据待训练数据的数量确定M的取值,具体的,由于每个分区的容量大小有限,将待训练数据根据每个分区的容量大小进行均分,以确定M的取值,再将待训练数据均分至M个分区中。
在其他实施方式中,可以根据Spark集群中的分区总数进行确定,示例性的,若Spark集群中共部署了5个RDD分区,则M的取值为5,再将待训练数据均分至这5个RDD分区中。
本申请实施例提供的上述数据划分方案,可以适应不同的模型训练平台,从而满足当前多样化的模型训练需求。
为方便理解,请参考图4,图4为本申请一实施例提供的模型训练方法的原理示意图。如图4所示,本申请实施例中提供的Spark集群部署有partition1~partition(n)n个RDD模型分区,其中,每个RDD模型分区对应一个计算节点。当Spark集群接收到待训练数据之后,将待训练数据均分至每个RDD模型分区中,从而在M份子训练数据中确定M个分区各自对应的一份子训练数据。
本步骤中,通过将待训练数据分布至Spark集群中的不同模型分区中,确定每个分区各自对应的子训练数据,使得Spark集群通过不同模型分区进行分布式计算,从而提升数据处理效率。
S303、通过第一集群,分别在每个分区中对各自对应的子训练数据进行格式转换,得到M份第一子数据。
第一子数据为第一格式,第一数据包括M份第一子数据。
具体的,针对M个分区中的任意一个分区,通过第一集群在分区中将分区对应的子训练数据转换为二维数组格式的数据;
在实际应用中,由于获取到的训练数据的格式非统一,因此,在进行模型训练前,可以将其转换为二维数组格式,以便于后续的数据处理过程,提升数据处理效率。
进一步的,通过第一集群将二维数据格式的数据转换为一维数组格式的第一子数据,第一格式为一维数组格式。
需要说明的是,本步骤的方案与图2实施例中的方法与原理类似,具体可参考图2所示的实施例,此处不再赘述。
S304、通过第一集群确定每份第一子数据对应的子存储空间。
S305、通过第一集群分别将每份第一子数据存储至对应的子存储空间。
其中,预设存储空间包括M份第一子数据对应的子存储空间。
为方便理解,请参考图4,预设存储空间包括M个子存储空间,子设存储空间的类型与预设存储空间相同,对于子设存储空间的类型,请参考图2所示的实施例中的步骤S202,此处不再赘述,图4以堆外内存为Vector数据存储结构为例示出。
在实际应用中,每个RDD分区对应于一个Vector,在得到M份第一子数据之后,将M份第一子数据存储至每个RDD分区对应的Vector中。
在一种实施方式中,Spark集群中的RDD分区与Vector可以为一一对应的关系,即每个RDD分区都设置有对应的Vector,示例性的,当Spark集群中有M个分区时,共有M个Vector,每个分区将分区中的子训练数据存储至该分区对应的Vector中。
在另一种实施方式中,Spark集群中的RDD分区分区与Vector可以为多对一的关系,即多个分区对应于同一个Vector,本申请实施例对于Vector的数量不作限定,示例性的,当Vector的数量为3个时,可以将Spark集群中M个分区中的训练数据,均分至上述3个Vector中。需要说明的是,图4以RDD分区与Vector为一一对应关系为例示出。
本方案中,由于Vector的特点是采用堆外内存存储数据,具有零拷贝的特点,并自带常用的适配置器能将数据存储到外介中,其传输速率较高,从而能够进一步提升本申请的模型训练效率。
在一些实施例中,在将训练数据存储至存储空间后,可以利用第二集群进行模型训练。具体的,第二集群中设置有N个模型训练进程,每一个进程执行相同的逻辑,根据训练数据进行模型训练,其中,N为大于或等于2的整数。下面结合具体实施例对于模型训练过程进行详细说明。
S306、通过第二集群,在M个子存储空间中确定每个模型训练进程对应的至少一个子存储空间。
S307、通过第二集群中的每个模型训练进程获取各自对应的至少一个子存储空间中的第一子数据。
第一数据包括至少M个子存储空间中的第一子数据。
本申请实施例中,对于每个模型训练进程获取子数据的方式不做具体限定。在一种实施方式中,可以采用均分的方式进行获取,即每个模型训练进程获取的第子一数据所在的子存储空间的个数相同,当均分后剩下的子存储空间中的第一子数据由任意模型训练进程获取。
下面以Spark集群的分区数M的值为5,Pytorch集群的模型训练进程数N为2为例进程说明。
请继续参考图4,如图4所示,模型训练进程1和模型训练进程2分别获取两个Vector中的第一子数据,即模型训练进程1获取分区1、分区2对应的Vector中的第一子数据,模型训练进程2获取分区4、分区5对应的Vector中的第一子数据,可以由模型训练进程1或者模型训练进程2中的任意一个进程获取分区3对应的Vector中的第一子数据。图4以由模型训练进程1获取分区3对应的Vector中的第一子数据为例示出。
对于模型训练进程从Vector中获取第一子数据的方法,本申请实施例不做具体限定。由于Scala语言与Python语言之间没有相互调用的接口,然而,Scala编程语言、C语言以及Python语言所在的集群都可以访问到相同的内存。因此,在一种可选方案中,可以在第二集群设置C语言接口,通过C语言接口来获取第一子数据。需要说明的是,本申请实施例对于将C语言作为接口的方式,可以参考现有技术,本申请实施例不做具体限定。
具体的,由于Vector是地址连续的数据块,在通过Spark集群将第一数据存储至Vector时,每个训练数据都有不同的数据地址以及数据长度,通过Pytorch集群获取第一子数据时,通过C语言接口根据不同的数据地址以及数据长度从Vector中获取相应的第一子数据。
本方案中,通过C语言作为第一集群和第二集群的接口,可以实现第二集群和第一集群共用堆外内存,使得在获取训练数据时,不需再进行复制和数据传输,大大减少了数据获取时间,从而进一步提升数据获取效率。
S308、针对N个模型训练进程中的任意一个模型训练进程,将模型训练进程对应的至少一个子存储空间中的第一子数据进行合并处理,得到合并子数据。
可选的,针对任意一个模型训练进程,将模型训练进程对应的至少一个子存储空间中的第一子数据进行合并处理,获得合并子数据,并将合并子数据存储至堆外内存(Vector)中。可以理解的是,合并子数据为每个模型训练进程对应的所有第子一数据。
请继续参考图4,如图4所示,模型训练进程1对应于Spark集群中分区1~分区3所对应的3个Vector中的第一子数据,通过模型训练进程1获取到上述3个Vector中的第一子数据后,将模型训练进程1中的3个Vector中的第一子数据合并,以得到一个合并子数据,并将合并子数据存储至堆外内存中。
相应的,通过模型训练进程2获取Spark集群中分区4、分区5所对应的2个Vector中的第一子数据,进一步的,将模型训练进程2对应的2个Vector中的第一子数据第一数据合并,以得到一个合并子数据,并将合并后的Vector存储至堆外内存中,图4中的堆外内存以Vector示出。
通过本方案,由于将每个模型训练进程中的第一子数据进行合并存储至同一堆外内存,在通过Pytorch集群进行模型训练时,每个模型训练进程可以直接整体调用该模型训练进程对应的合并子数据,而不需要在训练过程中分别调用,可以减少训练过程的运行时间,提高模型训练效率。
S309、通过第二集群对合并子数据进行格式转换,得到模型训练进程对应的第二子数据。
第二子数据的格式为第二格式,第二数据包括N个模型训练进程对应的第二子数据。
可以理解的是,Scala语言适用的数据结构为第一格式,Python语言适用的数据结构为第二格式,由于合并子数据仍为第一格式,基于Python语言开发的Pytorch集群无法直接调用,因此,需要将其转换第二格式,使得Pytorch集群可以直接调用。本申请实施例对于第二格式不做具体限定,示例性的,第二格式可以为Pytorch集群中表示张量的Tensor格式。
具体的,将合并子数据的格式转换为第二格式,具体包括以下步骤:
首先,将第一格式的合并子数据转化为第三格式的第三数据,其中,第三格式为numpy中的ndarray格式。
进一步的,将第三格式的第三数据转化为第二格式的第二数据。即将numpy中的ndarray格式的第三数据转换为Pytorch集群中Tensor格式的第二数据。
通过本方案,可以将合并子数据的数据格式转换为Pytorch集群适用的数据格式,从而使得Pytorch集群能够根据转换后的数据进行模型训练。
S310、通过第二集群确定每个模型训练进程对应的系统参数和模型参数。
S311、针对N个模型训练进程中的任意一个模型训练进程,根据模型训练进程对应的系统参数和模型参数,对模型训练进程对应的第二子数据进行分布式模型训练。
具体的,针对每个模型训练进程,利用模型训练进程中的模型训练机制将Tensor格式的子第二数据进行模型训练,其中,该模型训练机制可以为分布式模型机制,具体的,可以为分布式数据并行机制(DistributedDataParallel,DDP)。
通过本方案,由于DDP机制是Pytorch集群基于进程的分布式模型机制,其可以把本地的模型几乎不加修改的情况下变换成分布式的训练模型,能够复用大量Pytorch模型,能够显著提升模型开发效率以及模型运行效率。
为方便理解,下面结合图5对本申请的模型训练原理进行说明。
图5为本申请另一实施例提供的模型训练方法的原理示意图。如图5所示,对于Python集群中的每个模型训练进程,将第二格式的第二数据、模型参数以及系统参数输入每个模型训练进程的DDP模型中。
其中,模型参数是一个数组,用于存储使用者自定义的参数,系统参数是每个进程在运行DDP模型时不可少的变量。具体的,系统参数可以包括:world_size、rank、master_host以及master_port等参数。其中,world_size用于表示Pytorch集群中调用的进程总数,rank表示当前的进程id,进程id的初始值为0,即进程1的进程id为0,master_host用于表示DDP模型中负责管理进程组的进程所在的服务器IP,master_port用于表示DDP模型中负责管理进程组的进程所在的端口。
进一步的,每个模型训练进程中的DDP模型使用All-Reduce对该进程中的第二子数据进行训练学习,以获得训练结果。
本领域技术人员可以理解的是,由于本方案使用的是All-Reduce算法,因此,Python集群中的每个模型训练进程中的训练结果相同,可以确定任意一个模型训练进程的训练结果作为训练后的模型参数,由于每个进程获得的训练结果相同,可随意获取任意进程的结果作为训练结果,从而简化训练结果获取过程。示例性的,可以确定进程id为0的进程的训练结果为训练后的模型参数。
在实际应用中,在训练完成后,需要将训练后的模型参数发送至客户端(driver),以实现训练后的模型参数的输出。由于训练后的模型参数为第二格式,而客户端(driver)是基于Scala语言或者JAVA语言开发的,因此,需要将第二格式的训练后的模型参数转换为Scala语言适用的第一格式。
具体的,首先将第二格式(Tensor格式)的训练后的模型参数转换为ndarray格式,然后再将ndarray格式的训练后的模型参数转换为第一格式。
进一步的,一种实施方式中,在获得第一格式的模型参数后,可以将第一格式的模型参数输出至客户端(driver)。
另一种实施方式中,还可以将第一格式的模型参数存储至预设存储空间中。
对于预设存储空间的类型,可参考图2所示的实施例,此处不再赘述。示例性的,将第二格式的模型参数转换为第一格式的模型参数之后,可以将第一格式的模型参数存储至堆外内存中,当接收到客户端(driver)发送的数据拉取命令时,通过第二集群从堆外内存中直接获取模型参数。通过将数据转换为第一格式,可以使得客户端(driver)可以直接获取训练后的模型参数,以实现模型参数的输出。另外,由于将训练后的模型参数存储至堆外内存中,堆外内存具有零拷贝的特点,在获取模型参数时,无需进行数据传输,可以提升第数据获取效率。
在实际应用中,可以利用本申请实施例的方法实现各种模型的训练。在一种可选的实现方式中,模型可以为图像识别模型,相应的,本申请实施例中的训练数据可以为人脸图像,通过上述方法,可以实现对图像识别模型的训练,得到的训练模型可以用于进行人脸识别。具体的,在使用训练模型时,可以人脸图像数据,将人脸图像数据输入到图像识别模型中,得到对应的行人ID,能够辅助实现行人识别,减轻人工识别费时费力的问题,有效提高了识别的效率和准确率。
在另一种可选的实现方式中,模型可以为风险预测模型,相应的,本申请实施例中的训练样本可以为用户的资产数据例如存款时间、存款金额、贷款时间、贷款金额、坏账记录等,通过上述方法,可以实现对风险预测模型的训练,得到的全局模型可以用于进行风险预测。可选的,在使用模型时,可以将待预测的用户的资产数据输入模型,得到对应的风险预测结果,例如逾期不还的概率是高还是低,并将结果显示给工作人员,或者,根据结果调整对用户的放款限制,从而有效帮助工作人员预测用户对应的风险等级,减轻人工负担,提高了预测的效率和准确率。
另外,需要注意的是,本申请各实施例中的步骤的执行顺序并不限于上述序号所限定的顺序,本领域技术人员可以根据具体的应用需求和设计需求进行任意配置,在此不再赘述。
图6为本申请一实施例提供的模型训练平台的结构示意图。如图6所示,模型训练平台600设置有第一集群和第二集群,第一集群对应第一编程语言,第二集群对应第二编程语言,模型训练平台包括:
数据转换模块601,用于通过第一集群将待训练数据转换为第一编程语言对应的第一数据,并将第一数据存储至预设存储空间,第一数据为第一格式;获取模块602,用于通过第二集群在预设存储空间获取第一数据;
处理模块603,用于通过第二集群将第一数据转换为第二编程语言对应的第二数据,并根据第二数据进行分布式模型训练,第二数据为第二格式。
可选的,数据转换模块601,具体用于:
通过第一集群将待训练数据划分为M份子训练数据,其中,M为大于1的整数;
通过第一集群,在M份子训练数据中确定M个分区各自对应的一份子训练数据,M个分区为第一集群中的分区;
通过第一集群,分别在每个分区中对各自对应的子训练数据进行格式转换,得到M份第一子数据,第一子数据为第一格式,第一数据包括M份第一子数据。
可选的,数据转换模块601,具体用于针对M个分区中的任意一个分区,通过第一集群在分区中将分区对应的子训练数据转换为二维数组格式的数据;
通过第一集群将二维数据格式的数据转换为一维数组格式的第一子数据,第一格式为一维数组格式。
可选的,数据转换模块601,具体用于通过第一集群确定每份第一子数据对应的子存储空间,预设存储空间包括M份第一子数据对应的子存储空间;
通过第一集群分别将每份第一子数据存储至对应的子存储空间。
可选的,预设存储空间为堆外内存。
可选的,预设存储空间包括M个子存储空间,第二集群中设置有N个模型训练进程,N为大于或等于2的整数。
获取模块602,具体用于通过第二集群,在M个子存储空间中确定每个模型训练进程对应的至少一个子存储空间;
通过第二集群中的每个模型训练进程获取各自对应的至少一个子存储空间中的第一子数据,第一数据包括至少M个子存储空间中的第一子数据。
可选的,处理模块603,具体用于针对N个模型训练进程中的任意一个模型训练进程,将模型训练进程对应的至少一个子存储空间中的第一子数据进行合并处理,得到合并子数据;
通过第二集群对合并子数据进行格式转换,得到模型训练进程对应的第二子数据,第二子数据的格式为第二格式,第二数据包括N个模型训练进程对应的第二子数据。
可选的,处理模块603,具体用于通过第二集群确定每个模型训练进程对应的系统参数和模型参数;
针对N个模型训练进程中的任意一个模型训练进程,根据模型训练进程对应的系统参数和模型参数,对模型训练进程对应的第二子数据进行分布式模型训练。
可选的,处理模块603,还用于通过预设程序向第二集群发送调用指令,调用指令用于调用第二集群执行分布式模型训练,预设程序为通过第一编程语言实现的程序。
可选的,第一集群为Spark集群,第一编程语言为Scala语言或者JAVA语言;
第二集群为Pytorch集群,第二编程语言为Python语言。
需要说明的是,本实施例提供的模型训练平台的实现原理和技术效果可以参见前述图2、图3中任一方法实施例中提供的方案,此处不再赘述。
图7为本申请一实施例提供的电子设备的结构示意图。如图7所示,电子设备可以包括:存储器701、处理器702及存储在存储器701上并可在处理器702上运行的数据处理程序,数据处理程序被处理器702执行时实现如前述任一实施例的模型训练方法的步骤。
可选地,存储器701既可以是独立的,也可以跟处理器702集成在一起。
本实施例提供的电子设备的实现原理和技术效果可以参见前述各实施例,此处不再赘述。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有数据处理程序,数据处理程序被处理器执行时实现如前述任一实施例的模型训练方法的步骤。
本申请的实施例还提供一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时,实现上述方法实施例中的模型训练方法的步骤。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例方法的部分步骤。
应理解,上述处理器可以是中央处理单元(Central Processing Unit,简称CPU),还可以是其它通用处理器、数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。
上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(Application Specific Integrated Circuits,简称ASIC)中。当然,处理器和存储介质也可以作为分立组件存在于电子设备或主控设备中。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例的方法。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (14)
1.一种模型训练方法,其特征在于,应用于模型训练平台,所述模型训练平台中设置有第一集群和第二集群,所述第一集群对应第一编程语言,所述第二集群对应第二编程语言,所述方法包括:
通过所述第一集群将待训练数据转换为所述第一编程语言对应的第一数据,并将所述第一数据存储至预设存储空间,所述第一数据为第一格式;
通过所述第二集群在所述预设存储空间获取所述第一数据;
通过所述第二集群将所述第一数据转换为所述第二编程语言对应的第二数据,并根据所述第二数据进行分布式模型训练,所述第二数据为第二格式。
2.根据权利要求1所述的方法,其特征在于,所述通过所述第一集群将待训练数据转换为所述第一编程语言对应的第一数据,包括:
通过所述第一集群将所述待训练数据划分为M份子训练数据,其中,M为大于1的整数;
通过所述第一集群,在所述M份子训练数据中确定M个分区各自对应的一份子训练数据,所述M个分区为所述第一集群中的分区;
通过所述第一集群,分别在每个分区中对各自对应的子训练数据进行格式转换,得到M份第一子数据,所述第一子数据为所述第一格式,所述第一数据包括所述M份第一子数据。
3.根据权利要求2所述的方法,其特征在于,所述通过所述第一集群,分别在每个分区中对各自对应的子训练数据进行格式转换,得到M份第一子数据,包括:
针对所述M个分区中的任意一个分区,通过所述第一集群在所述分区中将所述分区对应的子训练数据转换为二维数组格式的数据;
通过所述第一集群将所述二维数据格式的数据转换为一维数组格式的第一子数据,所述第一格式为所述一维数组格式。
4.根据权利要求2所述的方法,其特征在于,所述将所述第一数据存储至预设存储空间,包括:
通过所述第一集群确定每份第一子数据对应的子存储空间,所述预设存储空间包括所述M份第一子数据对应的子存储空间;
通过所述第一集群分别将每份第一子数据存储至对应的子存储空间。
5.根据权利要求4所述的方法,其特征在于,
所述预设存储空间为堆外内存。
6.根据权利要求1所述的方法,其特征在于,所述预设存储空间包括M个子存储空间,所述第二集群中设置有N个模型训练进程,N为大于或等于2的整数;所述通过第二集群在所述预设存储空间获取所述第一数据,包括:
通过所述第二集群,在所述M个子存储空间中确定每个模型训练进程对应的至少一个子存储空间;
通过所述第二集群中的每个模型训练进程获取各自对应的至少一个子存储空间中的第一子数据,所述第一数据包括所述至少M个子存储空间中的第一子数据。
7.根据权利要求6所述的方法,其特征在于,所述通过所述第二集群将所述第一数据转换为所述第二编程语言对应的第二数据,包括:
针对所述N个模型训练进程中的任意一个模型训练进程,将所述模型训练进程对应的至少一个子存储空间中的第一子数据进行合并处理,得到合并子数据;
通过所述第二集群对所述合并子数据进行格式转换,得到所述模型训练进程对应的第二子数据,所述第二子数据的格式为第二格式,所述第二数据包括所述N个模型训练进程对应的第二子数据。
8.根据权利要求7所述的方法,其特征在于,所述根据所述第二数据进行分布式模型训练,包括:
通过所述第二集群确定每个模型训练进程对应的系统参数和模型参数;
针对所述N个模型训练进程中的任意一个模型训练进程,根据所述模型训练进程对应的系统参数和模型参数,对所述模型训练进程对应的第二子数据进行分布式模型训练。
9.根据权利要求1-8任一项所述的方法,其特征在于,所述通过第二集群在所述预设存储空间获取所述第一数据之前,还包括:
通过预设程序向所述第二集群发送调用指令,所述调用指令用于调用所述第二集群执行分布式模型训练,所述预设程序为通过所述第一编程语言实现的程序。
10.根据权利要求1-8任一项所述的方法,其特征在于,
所述第一集群为Spark集群,所述第一编程语言为Scala语言或者JAVA语言;
所述第二集群为Pytorch集群,所述第二编程语言为Python语言。
11.一种模型训练平台,其特征在于,所述模型训练平台中设置有第一集群和第二集群,所述第一集群对应第一编程语言,所述第二集群对应第二编程语言,所述模型训练平台包括:
数据转换模块,用于通过所述第一集群将待训练数据转换为所述第一编程语言对应的第一数据,并将所述第一数据存储至预设存储空间,所述第一数据为第一格式;
获取模块,用于通过所述第二集群在所述预设存储空间获取所述第一数据;
处理模块,用于通过所述第二集群将所述第一数据转换为所述第二编程语言对应的第二数据,并根据所述第二数据进行分布式模型训练,所述第二数据为第二格式。
12.一种电子设备,其特征在于,所述电子设备包括:
存储器、处理器及存储在所述存储器上并可在所述处理器上运行的模型训练程序,所述模型训练程序被所述处理器执行时实现如权利要求1-10中任一项所述的模型训练方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有模型训练程序,所述模型训练程序被处理器执行时实现如权利要求1-10中任一项所述的模型训练方法。
14.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时,实现权利要求1-10中任一项所述的模型训练方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011632653.3A CN112668659A (zh) | 2020-12-31 | 2020-12-31 | 模型训练方法、平台和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011632653.3A CN112668659A (zh) | 2020-12-31 | 2020-12-31 | 模型训练方法、平台和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112668659A true CN112668659A (zh) | 2021-04-16 |
Family
ID=75413264
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011632653.3A Pending CN112668659A (zh) | 2020-12-31 | 2020-12-31 | 模型训练方法、平台和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112668659A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114723045A (zh) * | 2022-04-06 | 2022-07-08 | 北京百度网讯科技有限公司 | 模型训练方法、装置、系统、设备、介质及程序产品 |
-
2020
- 2020-12-31 CN CN202011632653.3A patent/CN112668659A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114723045A (zh) * | 2022-04-06 | 2022-07-08 | 北京百度网讯科技有限公司 | 模型训练方法、装置、系统、设备、介质及程序产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110520857B (zh) | 使用虚拟化数据迭代器对神经网络进行数据处理性能增强 | |
KR102225822B1 (ko) | 인공지능 수행을 위한 학습 데이터 생성장치 및 방법 | |
EP3255586A1 (en) | Method, program, and apparatus for comparing data graphs | |
CN102385513B (zh) | 反应式编程的编程语言支持 | |
CN102411786A (zh) | 用于基于dwt的系统的运动补偿的低复杂度方法 | |
CN108536745B (zh) | 基于Shell的数据表提取方法、终端、设备及存储介质 | |
CN111369430B (zh) | 基于移动深度学习引擎的移动端人像智能背景替换方法 | |
CN110598855A (zh) | 深度学习模型生成方法、装置、设备及存储介质 | |
CN105824974A (zh) | 数据分析处理的方法和系统 | |
CN112463290A (zh) | 动态调整计算容器的数量的方法、系统、装置和存储介质 | |
US10884760B2 (en) | Apparatus and method for managing application program | |
CN115576699A (zh) | 数据处理方法、装置、ai芯片、电子设备及存储介质 | |
CN112668659A (zh) | 模型训练方法、平台和电子设备 | |
CN111767417A (zh) | 应用图片的管理方法、装置、设备及存储介质 | |
CN115858473A (zh) | 基于训练系统与对象存储系统的数据交互方法及装置 | |
CN116957006A (zh) | 预测模型的训练方法、装置、设备、介质及程序产品 | |
CN112612427B (zh) | 一种车辆停靠点数据处理方法、装置、存储介质及终端 | |
CN111950015B (zh) | 一种数据开放输出方法、装置和计算设备 | |
CN114185657A (zh) | 一种云平台的任务调度方法、装置、存储介质及电子设备 | |
CN112804446A (zh) | 基于云平台大数据的大数据处理方法及装置 | |
CN112364682A (zh) | 一种案件搜索方法及装置 | |
CN111950016B (zh) | 一种数据开放输出模型的生成方法、装置和计算设备 | |
CN111598189B (zh) | 产生式模型的训练方法、数据生成方法、装置、介质和设备 | |
CN116755714B (zh) | 深度神经网络模型的运行方法、装置、设备和存储介质 | |
US20240161474A1 (en) | Neural Network Inference Acceleration Method, Target Detection Method, Device, and Storage Medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |