CN111611065A - 机器学习算法的调用方法、装置、存储介质及电子设备 - Google Patents
机器学习算法的调用方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN111611065A CN111611065A CN202010482347.XA CN202010482347A CN111611065A CN 111611065 A CN111611065 A CN 111611065A CN 202010482347 A CN202010482347 A CN 202010482347A CN 111611065 A CN111611065 A CN 111611065A
- Authority
- CN
- China
- Prior art keywords
- algorithm
- calculation
- task
- calling
- machine learning
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例公开了一种机器学习算法的调用方法、装置、存储介质及电子设备,方法包括:通过网络接口接收来自业务端基于网络协议发送的算法调用请求,在算法调用请求指示的计算任务为异步任务时,通过线程池模块启动监控线程,根据算法名称查找对应的算法插件,通过算法插件对算法参数和算法计算数据进行处理得到计算结果,在监控线程检测到算法插件完成计算过程时,通过网络接口将计算结果发送给业务端。实现第三方编程语言对Python机器学习算法的调用,使得开发人员不需要深入了解机器学习算法的具体过程,也能够快速训练机器学习模型并利用机器学习模型计算数据,提高了开发效率以及节省人力和时间成本。
Description
技术领域
本申请涉及机器学习领域,尤其涉及一种机器学习算法的调用方法、装置、存储介质及电子设备。
背景技术
目前的机器学习算法库中的机器学习模型大部分都是Python程序语言编写,使用Python程序或R程序来训练离线模型,以及使用Python程序语言或R程序来调用机器学习模型计算数据或预测数据。机器学习模型通常采用Web应用程序来调用,Web应用程序使用Java、C/C++、.net等程序语言来进行开发,然而Web应用程序的程序语言和机器学习模型的程序语言不相同,因此机器学习模型的调用过程涉及到跨编程语言的交互。对于跨编程语言的机器学习模型的交互,主流的解决方法有3种:
1、通过Jython直接调用Python模型;此方法是在Java环境中直接执行Python脚本,存在耦合性强、第三方库不能引用等问题,每一台Java服务器都需要部署Python环境。
2、用Java程序语言重写机器学习算法,将Python模型训练出来的参数保存起来,再用Java程序语言重写Python模型,主要存在工作量大、容易出错等问题,开发人员还需要对算法原理有比较深入的了解。
发明内容
本申请实施例提供了一种机器学习算法的调用方法、装置、存储介质及电子设备,可以提高机器学习模型的开发效率以及节省人力和时间成本。所述技术方案如下:
第一方面,本申请实施例提供了一种机器学习算法的调用方法,所述方法包括:
通过网络接口接收来自业务端基于网络协议发送的算法调用请求;其中,所述算法调用请求携带调用参数和业务端的网络地址,所述调用参数包括算法名称、算法参数、算法计算数据中的一种或多种;
在所述算法调用请求指示的计算任务为异步任务时,通过线程池模块启动监控线程;
根据所述算法名称查找对应的算法插件;其中,所述算法插件是基于Python编程语言编写的;
通过所述算法插件对所述算法参数和所述算法计算数据进行处理得到计算结果;
在所述监控线程检测到所述算法插件完成计算过程时,通过所述网络接口将所述计算结果发送给所述业务端。
第二方面,本申请实施例提供了一种机器学习算法的调用装置,所述装置包括:
收发单元,用于通过网络接口接收来自业务端基于网络协议发送的算法调用请求;其中,所述算法调用请求携带调用参数和业务端的网络地址,所述调用参数包括算法名称、算法参数、算法计算数据中的一种或多种;
处理单元,用于在所述算法调用请求指示的计算任务为异步任务时,通过线程池模块启动监控线程;
所述处理单元,还用于根据所述算法名称查找对应的算法插件;其中,所述算法插件是基于Python编程语言编写的;
所述处理单元,还用于通过所述算法插件对所述算法参数和所述算法计算数据进行处理得到计算结果;
所述收发单元,还用于在所述监控线程检测到所述算法插件完成计算过程时,通过所述网络接口将所述计算结果发送给所述业务端。
第三方面,本申请实施例提供了一种机器学习算法的调用方法,包括:
根据机器学习算法SDK生成调用参数;其中,所述调用参数包括算法名称、算法参数、算法计算数据中的一种或多种;
对所述调用参数进行序列化处理生成算法调用请求;其中,所述算法调用请求携带调用参数和业务端的网络地址;
通过网络接口接收来自业务端基于网络协议发送的算法调用请求;
通过所述网络接口接收来自所述业务端基于所述算法调用请求返回的计算结果。
第四方面,本申请实施例提供了一种机器学习算法的调用装置,包括:
处理单元,用于根据机器学习算法SDK生成调用参数;其中,所述调用参数包括算法名称、算法参数、算法计算数据中的一种或多种;
所述处理单元,还用于对所述调用参数进行序列化处理生成算法调用请求;其中,所述算法调用请求携带调用参数和业务端的网络地址;
收发单元,用于通过网络接口接收来自业务端基于网络协议发送的算法调用请求;以及
通过所述网络接口接收来自所述业务端基于所述算法调用请求返回的计算结果。
第五方面,本申请实施例提供一种计算机存储介质,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行上述的方法步骤。
第六方面,本申请实施例提供一种电子设备,可包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行上述的方法步骤。
第七方面,本申请实施例提供了一种通信系统,包括上述任意一种业务端和计算端。
本申请一些实施例提供的技术方案带来的有益效果至少包括:
通过网络接口接收来自业务端基于网络协议发送的算法调用请求,在算法调用请求指示的计算任务为异步任务时,通过线程池模块启动监控线程,根据算法名称查找对应的算法插件,通过算法插件对算法参数和算法计算数据进行处理得到计算结果,在监控线程检测到算法插件完成计算过程时,通过网络接口将计算结果发送给业务端。实现第三方编程语言对Python机器学习算法的调用,使得开发人员不需要深入了解机器学习算法的具体过程,也能够快速训练机器学习模型并利用机器学习模型计算数据,提高了开发效率以及节省人力和时间成本。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1和图2是本申请实施例提供的机器学习算法的网络架构图;
图3是本申请实施例提供的一种机器学习算法的调用方法的交互流程图;
图4是本申请实施例提供的一种机器学习算法的调用装置的结构示意图;
图5是本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施例方式作进一步地详细描述。
下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。此外,在本申请的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
参见图1,为本申请实施例提供的一种网络架构图,网络架构包括业务端10和计算端11,业务端10用于向计算端11发送算法调用请求,算法调用请求用于请求调用算法插件执行机器学习算法以得到计算结果,计算端11基于算法调用请求调用机器学习算法得到计算结果,将计算结果发送给业务端10。在申请中,计算端11中的应用程序是基于Python编程语言编写的,而业务端11中的应用程序是不同于Python编程语言编写的,例如:采用Java语言、C语言、C++语言或.net语言等。
例如:参见图2所示,业务端10中的应用程序采用Java编程语言编写,计算端11中的应用程序采用Python编程语言编写。业务端10包括算法服务接口、模型算法任务调用接口、异步回调模块和数据序列化模块,计算端11包括:模型算法任务接口、数据解析模块、算法控制器、异步回调模块、线程池模块和数据服务器。其中,算法服务接口是用户设置算法调用请求的调用参数的接口,调用参数包括算法名称、算法参数和算法计算数据等;模型算法任务调用接口主要用于与计算端11之间进行通信,异步回调模块主要用于异步任务的计算结果的回调,数据序列化模块主要用于对待发送给计算端11的消息进行编码。在计算端11中,模型算法任务接口主要用于与业务端10之间进行通信,数据解析模块主要用于对来自业务端10的消息进行解码,算法控制器主要起控制作用,线程池模块用于在计算任务为异步任务时,启动一个计算结果的监控线程;数据服务器用于存储计算结果,异步回调模块用于将异步任务的计算结果返回给业务端10。
其中,业务端10和计算端11可以基于无线方式或有线方式进行通信,例如:采用光纤、蓝牙、无线局域网等进行通信。业务端10和计算端11可以设置在一起,也可以单独分开设置。在业务端10和计算端11分开设置时,业务端10可以包括但不限于智能手机、个人电脑、平板电脑、手持设备、车载设备、可穿戴设备、计算设备或连接到无线调制解调器的其它处理设备等。计算端11可以为服务器,服务器的数量可以是一个,也可以是多个服务器组成的服务器集群。
请参见图3,为本申请实施例提供的一种机器学习算法的调用方法的流程示意图。如图1所示,本申请实施例的所述方法可以包括以下步骤:
S301、业务端10根据机器学习算法SDK生成调用参数。
其中,业务端10可以调用机器学习算法SDK(软件工具箱)生成所需的调用参数,调用参数包括算法名称、算法参数和算法计算数据中的一种或多种,算法名称表示机器学习算法的名称,算法参数表示输入的算法参数的类型,算法参数的数量为一个或多个;算法计算数据为所述算法参数的参数值,算法计算数据是用户通过业务端10的用户界面输入的参数值。
S302、对调用参数执行序列化后生成算法调用请求。
其中,业务端10可以调用机器学习算法对调用参数进行数据序列化,以满足网络传送的需求,数据序列化的算法调用请求可以是TCP/I的数据包或HTTP的数据包。算法调用请求中除包括S201中的调用参数,还包括业务端10的网络地址,例如:业务端10的IP地址和端口号,以便计算端11对业务端10的身份合法性进行验证。
S303、业务端10向计算端11发送算法调用请求,计算端11接收来自业务端10的算法调用请求。
其中,业务端10可以基于TCP/IP协议或HTTP协议使用上述的IP地址和端口号发送算法调用请求,计算端11在该端口号上接收来自业务端10的算法调用请求。计算端11在接收到算法调度请求后,可以对算法调度请求进行反序列化数据,以解析算法调度请求中携带的调度参数,然后对调度参数进行校验,校验包括业务端10的身份验证和数据完整性校验,校验通过后才会去执行S304。
S304、在算法调用请求指示的计算任务为异步任务时,通过线程池模块启动监控线程。
其中,异步任务的计算耗时较长,因此不需要等到异步任务的计算结果生成后才执行下一步操作;同步任务的计算耗时较短,可以等到同步任务的计算结果生成后才执行下一步操作。计算端10确定算法调用请求指示的计算任务为异步任务时,通过线程值模块启动一个监控线程,监控线程用于实时监控该调用请求是否请求到计算结果。
本实施例中,判断算法调用请求指示的计算任务是异步任务或同步任务的方法包括:解析所述算法调用请求中的任务类型信息;根据所述任务类型信息识别所述算法调用请求指示的计算任务的任务类型;其中,所述任务类型为异步任务或同步任务,例如:任务类型信息用比特位来表示,比特位为1时,表示算法调用请求指示的计算任务为同步任务,比特为为0时,表示算法调用请求指示的计算任务为异步任务。
本实施例中,另一种判断算法调用请求指示的计算任务是异步任务或同步任务的方法包括:根据所述算法名称查询对应的任务类型信息;根据所述任务类型信息识别算法调用请求指示的计算任务的任务类型;其中,所述任务类型为异步任务或同步任务;计算端存储有算法名称和任务类型信息之间的映射关系,业务端11解析算法调用请求得到算法名称后,根据该映射关系查询算法名称对应的任务类型信息,由此可获知算法调用请求指示的计算任务为异步任务或同步任务。
在一种可能的实施方式中,还包括:
在所述算法调用请求指示的计算任务为同步任务时,根据所述算法名称查找对应的算法插件;
通过所述算法插件对所述算法参数和所述算法计算数据进行处理得到计算结果;
通过所述网络接口将所述计算结果发送给所述业务端。
其中,同步任务的执行过程中,不需要创建监控线程,在算法插件生成计算结果之后,直接将计算结果发送给业务端。
其中,在本申请中,算法插件是Python编程语言开发一个基于TCP/IP协议的机器学习算法管理模块,通过统一的入口API对外提供机器学习算法服务,使用灵活配置的数据结构作为算法参数数据格式。并提供插件的方式扩展更多算法及自己编写的算法。Java服务,封装对Python服务的调用,提供同步、异步执行Python机器学习算法服务的两个API接口,开发人员只需调用接口方法,无需关注网络协议等。
其中,在本实施例中,对于同步任务来说,Java封装算法参数,通过接口同步方法调用Python服务,Python执行相应算法并返回结果,Java接收结果数据并返回给调用者。对于异步任务来说,Java封装算法参数,并将自身服务IP和端口加入到参数中,通过接口异步方法调用Python服务,Python通过线程池启动一个线程并调用相应的算法,处理完成后调用Java的API接口,将数据发送给Java服务,Java接收到数据后通过接口回调的方式将数据传递给调用者。
S305、根据算法名称查找对应的算法插件。
其中,在创建监控线程之后,根据算法调用请求中的算法名称查找对应的算法插件,算法插件用于执行机器学习算法,算法插件是使用Python编程语言编写的。计算端11预存储或预配置有多个算法插件,各个算法插件具有不同的算法名称,计算端11根据算法调用请求中的算法名称查询对应的算法插件。
S2306、通过算法插件对算法参数和算法计算数据进行处理得到计算结果。
其中,将算法调用请求中的算法参数和算法计算数据传送给算法插件进行处理,得到计算结果。调用请求中算法参数和算法计算数据的传送处S202的网络传送之外,还可以通过文件服务器获取或数据库服务器获取等方式。
S307、通过监控线程检测到算法插件完成计算过程。
其中,监控线程实施检测到算法插件完成计算过程,成功生成计算结果。计算端11还可以判断是否需要将计算结果存储到数据服务器,需要存储时,调用数据存储模块将数据存储到数据服务器,如果不需要,将计算结果待发送给业务端10的数据包中。
S308、计算端11向业务端10发送计算结果,业务端10接收来自计算端11的计算结果。
其中,计算端11基于网络协议,例如:TCP/IP协议或HTTP协议将计算结果封装在数据包中,然后计算端11调用异步处理模块将携带计算结果的数据包发送给业务端10。
实施本申请的实施例,通过网络接口接收来自业务端基于网络协议发送的算法调用请求,在算法调用请求指示的计算任务为异步任务时,通过线程池模块启动监控线程,根据算法名称查找对应的算法插件,通过算法插件对算法参数和算法计算数据进行处理得到计算结果,在监控线程检测到算法插件完成计算过程时,通过网络接口将计算结果发送给业务端。实现第三方编程语言对Python机器学习算法的调用,使得开发人员不需要深入了解机器学习算法的具体过程,也能够快速训练机器学习模型并利用机器学习模型计算数据,提高了开发效率以及节省人力和时间成本。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参见图4,其示出了本申请一个示例性实施例提供的机器学习算法的调用装置的结构示意图。该机器学习算法的调用装置可以通过软件、硬件或者两者的结合实现成为电子设备的全部或一部分。该装置4包括收发单元40和处理单元41。
收发单元40,用于通过网络接口接收来自业务端基于网络协议发送的算法调用请求;其中,所述算法调用请求携带调用参数和业务端的网络地址,所述调用参数包括算法名称、算法参数、算法计算数据中的一种或多种;
处理单元41,用于在所述算法调用请求指示的计算任务为异步任务时,通过线程池模块启动监控线程;
所述处理单元41,还用于根据所述算法名称查找对应的算法插件;其中,所述算法插件是基于Python编程语言编写的;
所述处理单元41,还用于通过所述算法插件对所述算法参数和所述算法计算数据进行处理得到计算结果;
所述收发单元40,还用于在所述监控线程检测到所述算法插件完成计算过程时,通过所述网络接口将所述计算结果发送给所述业务端。
在一个或多个可能的实施方式中,
处理单元41还用于在所述算法调用请求指示的计算任务为同步任务时,根据所述算法名称查找对应的算法插件;
通过所述算法插件对所述算法参数和所述算法计算数据进行处理得到计算结果;
收发单元40,还用于通过所述网络接口将所述计算结果发送给所述业务端。
在一个或多个可能的实施方式中,处理单元41还用于:
判断是否需要将所述计算结果存储到数据服务器;
若为是,调用数据存储模块将数据存储到所述数据服务器中。
在一个或多个可能的实施方式中,处理单元41还用于:
解析所述算法调用请求中的任务类型信息;
根据所述任务类型信息识别所述算法调用请求指示的计算任务的任务类型;其中,所述任务类型为异步任务或同步任务。
在一个或多个可能的实施方式中,处理单元41还用于:
根据所述算法名称查询对应的任务类型信息;
根据所述任务类型信息识别所述算法调用请求指示的计算任务的任务类型;其中,所述任务类型为异步任务或同步任务。
在一个或多个可能的实施方式中,处理单元41还用于:
对算法调用请求进行验证得到的验证结果为合法。
需要说明的是,上述实施例提供的机器学习算法的调用装置在执行机器学习算法的调用方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的机器学习算法的调用装置与机器学习算法的调用方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本申请实施例还提供了一种计算机存储介质,所述计算机存储介质可以存储有多条指令,所述指令适于由处理器加载并执行如上述图1-图3所示实施例的方法步骤,具体执行过程可以参见图1-图3所示实施例的具体说明,在此不进行赘述。
请参见图5,为本申请实施例提供了一种电子设备的结构示意图。如图5所示,电子设备可以是图1中的计算端,所述电子设备1000可以包括:至少一个处理器1001,至少一个网络接口1004,用户接口1003,存储器1005,至少一个通信总线1002。
其中,通信总线1002用于实现这些组件之间的连接通信。
其中,用户接口1003可以包括显示屏(Display)、摄像头(Camera),可选用户接口1003还可以包括标准的有线接口、无线接口。
其中,网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。
其中,处理器1001可以包括一个或者多个处理核心。处理器1001利用各种接口和线路连接整个电子设备1000内的各个部分,通过运行或执行存储在存储器1005内的指令、程序、代码集或指令集,以及调用存储在存储器1005内的数据,执行电子设备1000的各种功能和处理数据。可选的,处理器1001可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器1001可集成中央处理器(Central Processing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1001中,单独通过一块芯片进行实现。
其中,存储器1005可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。可选的,该存储器1005包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器1005可用于存储指令、程序、代码、代码集或指令集。存储器1005可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图5所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及诈骗电话的识别应用程序。
在图5所示的电子设备1000中,用户接口1003主要用于为用户提供输入的接口,获取用户输入的数据;而处理器1001可以用于调用存储器1005中存储的配置应用程序接口的应用程序,并具体执行以下操作:
通过网络接口接收来自业务端基于网络协议发送的算法调用请求;其中,所述算法调用请求携带调用参数和业务端的网络地址,所述调用参数包括算法名称、算法参数、算法计算数据中的一种或多种;
在所述算法调用请求指示的计算任务为异步任务时,通过线程池模块启动监控线程;
根据所述算法名称查找对应的算法插件;其中,所述算法插件是基于Python编程语言编写的;
通过所述算法插件对所述算法参数和所述算法计算数据进行处理得到计算结果;
在所述监控线程检测到所述算法插件完成计算过程时,通过所述网络接口将所述计算结果发送给所述业务端。
在一个或多个实施例中,处理器1001还用于执行:
在所述算法调用请求指示的计算任务为同步任务时,根据所述算法名称查找对应的算法插件;
通过所述算法插件对所述算法参数和所述算法计算数据进行处理得到计算结果;
通过所述网络接口将所述计算结果发送给所述业务端。
在一个或多个实施例中,处理器1001还用于执行:
判断是否需要将所述计算结果存储到数据服务器;
若为是,调用数据存储模块将数据存储到所述数据服务器中。
在一个或多个实施例中,处理器1001还用于执行:
解析所述算法调用请求中的任务类型信息;
根据所述任务类型信息识别所述算法调用请求指示的计算任务的任务类型;其中,所述任务类型为异步任务或同步任务。
在一个或多个实施例中,处理器1001还用于执行:
根据所述算法名称查询对应的任务类型信息;
根据所述任务类型信息识别所述算法调用请求指示的计算任务的任务类型;其中,所述任务类型为异步任务或同步任务。
在一个或多个实施例中,处理器1001还用于执行:
对算法调用请求进行验证得到的验证结果为合法。
在本申请实施例中,通过网络接口接收来自业务端基于网络协议发送的算法调用请求,在算法调用请求指示的计算任务为异步任务时,通过线程池模块启动监控线程,根据算法名称查找对应的算法插件,通过算法插件对算法参数和算法计算数据进行处理得到计算结果,在监控线程检测到算法插件完成计算过程时,通过网络接口将计算结果发送给业务端。实现第三方编程语言对Python机器学习算法的调用,使得开发人员不需要深入了解机器学习算法的具体过程,也能够快速训练机器学习模型并利用机器学习模型计算数据,提高了开发效率以及节省人力和时间成本。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体或随机存储记忆体等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (10)
1.一种机器学习算法的调用方法,其特征在于,所述方法包括:
通过网络接口接收来自业务端基于网络协议发送的算法调用请求;其中,所述算法调用请求携带调用参数和业务端的网络地址,所述调用参数包括算法名称、算法参数、算法计算数据中的一种或多种;
在所述算法调用请求指示的计算任务为异步任务时,通过线程池模块启动监控线程;
根据所述算法名称查找对应的算法插件;其中,所述算法插件是基于Python编程语言编写的;
通过所述算法插件对所述算法参数和所述算法计算数据进行处理得到计算结果;
在所述监控线程检测到所述算法插件完成计算过程时,通过所述网络接口将所述计算结果发送给所述业务端。
2.根据权利要求1所述的方法,其特征在于,还包括:
在所述算法调用请求指示的计算任务为同步任务时,根据所述算法名称查找对应的算法插件;
通过所述算法插件对所述算法参数和所述算法计算数据进行处理得到计算结果;
通过所述网络接口将所述计算结果发送给所述业务端。
3.根据权利要求1或2所述的方法,其特征在于,还包括:
判断是否需要将所述计算结果存储到数据服务器;
若为是,调用数据存储模块将数据存储到所述数据服务器中。
4.根据权利要求1或2所述的方法,其特征在于,还包括:
解析所述算法调用请求中的任务类型信息;
根据所述任务类型信息识别所述算法调用请求指示的计算任务的任务类型;其中,所述任务类型为异步任务或同步任务。
5.根据权利要求1或2所述的方法,其特征在于,还包括:
根据所述算法名称查询对应的任务类型信息;
根据所述任务类型信息识别所述算法调用请求指示的计算任务的任务类型;其中,所述任务类型为异步任务或同步任务。
6.根据权利要求1或2所述的方法,其特征在于,所述在所述算法调用请求指示的计算任务为异步任务时,通过线程池模块启动监控线程之前,还包括:
对算法调用请求进行验证得到的验证结果为合法。
7.一种机器学习算法的调用方法,其特征在于,所述方法包括:
根据机器学习算法SDK生成调用参数;其中,所述调用参数包括算法名称、算法参数、算法计算数据中的一种或多种;
对所述调用参数进行序列化处理生成算法调用请求;其中,所述算法调用请求携带调用参数和业务端的网络地址;
通过网络接口接收来自业务端基于网络协议发送的算法调用请求;
通过所述网络接口接收来自所述业务端基于所述算法调用请求返回的计算结果。
8.一种机器学习算法的调用装置,其特征在于,所述装置包括:
收发单元,用于通过网络接口接收来自业务端基于网络协议发送的算法调用请求;其中,所述算法调用请求携带调用参数和业务端的网络地址,所述调用参数包括算法名称、算法参数、算法计算数据中的一种或多种;
处理单元,用于在所述算法调用请求指示的计算任务为异步任务时,通过线程池模块启动监控线程;
所述处理单元,还用于根据所述算法名称查找对应的算法插件;其中,所述算法插件是基于Python编程语言编写的;
所述处理单元,还用于通过所述算法插件对所述算法参数和所述算法计算数据进行处理得到计算结果;
所述收发单元,还用于在所述监控线程检测到所述算法插件完成计算过程时,通过所述网络接口将所述计算结果发送给所述业务端。
9.一种计算机存储介质,其特征在于,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行如权利要求1~7任意一项的方法步骤。
10.一种电子设备,其特征在于,包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行如权利要求1~7任意一项的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010482347.XA CN111611065B (zh) | 2020-05-29 | 2020-05-29 | 机器学习算法的调用方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010482347.XA CN111611065B (zh) | 2020-05-29 | 2020-05-29 | 机器学习算法的调用方法、装置、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111611065A true CN111611065A (zh) | 2020-09-01 |
CN111611065B CN111611065B (zh) | 2023-08-11 |
Family
ID=72200668
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010482347.XA Active CN111611065B (zh) | 2020-05-29 | 2020-05-29 | 机器学习算法的调用方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111611065B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113448545A (zh) * | 2021-06-23 | 2021-09-28 | 北京百度网讯科技有限公司 | 机器学习模型服务化的方法、设备、存储介质及程序产品 |
CN113918232A (zh) * | 2021-09-07 | 2022-01-11 | 深圳云天励飞技术股份有限公司 | 一种算法服务的调用方法、装置、服务器和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160150015A1 (en) * | 2014-11-25 | 2016-05-26 | Netapp, Inc. | Methods for integrating applications with a data storage network and devices thereof |
CN108920259A (zh) * | 2018-03-30 | 2018-11-30 | 华为技术有限公司 | 深度学习作业调度方法、系统和相关设备 |
CN109240758A (zh) * | 2018-07-25 | 2019-01-18 | 武汉精测电子集团股份有限公司 | 一种支持插件接口同步异步统一调用的方法及微内核架构 |
CN109978129A (zh) * | 2017-12-28 | 2019-07-05 | 北京中科寒武纪科技有限公司 | 调度方法及相关装置 |
CN110472516A (zh) * | 2019-07-23 | 2019-11-19 | 腾讯科技(深圳)有限公司 | 一种人物图像识别系统的构建方法、装置、设备及系统 |
-
2020
- 2020-05-29 CN CN202010482347.XA patent/CN111611065B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160150015A1 (en) * | 2014-11-25 | 2016-05-26 | Netapp, Inc. | Methods for integrating applications with a data storage network and devices thereof |
CN109978129A (zh) * | 2017-12-28 | 2019-07-05 | 北京中科寒武纪科技有限公司 | 调度方法及相关装置 |
CN108920259A (zh) * | 2018-03-30 | 2018-11-30 | 华为技术有限公司 | 深度学习作业调度方法、系统和相关设备 |
CN109240758A (zh) * | 2018-07-25 | 2019-01-18 | 武汉精测电子集团股份有限公司 | 一种支持插件接口同步异步统一调用的方法及微内核架构 |
CN110472516A (zh) * | 2019-07-23 | 2019-11-19 | 腾讯科技(深圳)有限公司 | 一种人物图像识别系统的构建方法、装置、设备及系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113448545A (zh) * | 2021-06-23 | 2021-09-28 | 北京百度网讯科技有限公司 | 机器学习模型服务化的方法、设备、存储介质及程序产品 |
CN113448545B (zh) * | 2021-06-23 | 2023-08-08 | 北京百度网讯科技有限公司 | 机器学习模型服务化的方法、设备、存储介质及程序产品 |
CN113918232A (zh) * | 2021-09-07 | 2022-01-11 | 深圳云天励飞技术股份有限公司 | 一种算法服务的调用方法、装置、服务器和存储介质 |
CN113918232B (zh) * | 2021-09-07 | 2024-05-03 | 深圳云天励飞技术股份有限公司 | 一种算法服务的调用方法、装置、服务器和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111611065B (zh) | 2023-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112784989B (zh) | 推理系统、推理方法、电子设备及计算机存储介质 | |
CN111259037B (zh) | 一种基于规则配置的数据查询方法、装置、存储介质及终端 | |
CN112882709B (zh) | 基于容器引擎系统的渲染方法、装置、设备以及存储介质 | |
CN107807841B (zh) | 服务器模拟方法、装置、设备及可读存储介质 | |
CN111611065B (zh) | 机器学习算法的调用方法、装置、存储介质及电子设备 | |
CN110187986B (zh) | 一种命令管理方法、系统、装置及计算机可读存储介质 | |
CN111679886A (zh) | 异构计算资源调度方法、系统、电子设备及存储介质 | |
CN107977260B (zh) | 任务提交方法及装置 | |
CN107273226B (zh) | 在安卓系统中集成组件及调用被集成组件的方法和装置 | |
CN113672441A (zh) | 对智能设备的测试方法及装置 | |
CN114040189A (zh) | 多媒体测试方法、装置、存储介质及电子设备 | |
CN111813529B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN106095886B (zh) | 一种数据处理方法及其装置 | |
CN112596931A (zh) | 一种跨进程通信方法、装置、电子设备及存储介质 | |
CN111880786A (zh) | 多应用共享方法、系统、装置、电子设备及存储介质 | |
CN111596905A (zh) | 生成java对象的方法、装置、存储介质及终端 | |
CN111414154A (zh) | 前端开发的方法、装置、电子设备和存储介质 | |
CN113691618B (zh) | 消息通知方法、装置、消息中心及存储介质 | |
CN112132271A (zh) | 神经网络加速器运行方法、架构及相关装置 | |
CN114301970A (zh) | 服务调用方法、装置、电子设备及存储介质 | |
CN110262912B (zh) | 一种过程调用gRPC的调用方法及装置 | |
CN117455568B (zh) | 交易激励资源发送方法、装置、计算机设备及存储介质 | |
CN114579327A (zh) | 跨进程通信方法、装置、存储介质及电子设备 | |
CN117883789B (zh) | 数据获取方法、装置、设备、可读存储介质及程序产品 | |
CN113672402B (zh) | 一种基于Py4j服务的在线数据处理方法、装置、存储介质及终端 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |