CN110955470B - 算法模型接口化方法、装置、计算机设备及存储介质 - Google Patents
算法模型接口化方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN110955470B CN110955470B CN201911239773.4A CN201911239773A CN110955470B CN 110955470 B CN110955470 B CN 110955470B CN 201911239773 A CN201911239773 A CN 201911239773A CN 110955470 B CN110955470 B CN 110955470B
- Authority
- CN
- China
- Prior art keywords
- model
- type
- algorithm
- interface
- callable
- 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.)
- Active
Links
- 238000004422 calculation algorithm Methods 0.000 title claims abstract description 123
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000012545 processing Methods 0.000 claims abstract description 22
- 238000013145 classification model Methods 0.000 claims description 28
- 238000004590 computer program Methods 0.000 claims description 19
- 238000013528 artificial neural network Methods 0.000 claims description 15
- 238000004806 packaging method and process Methods 0.000 claims description 11
- 238000007781 pre-processing Methods 0.000 claims description 10
- 238000003062 neural network model Methods 0.000 claims description 7
- 238000010801 machine learning Methods 0.000 claims description 6
- 238000012549 training Methods 0.000 abstract description 7
- 239000002699 waste material Substances 0.000 abstract description 5
- 238000011161 development Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 8
- 235000013305 food Nutrition 0.000 description 4
- 240000007594 Oryza sativa Species 0.000 description 2
- 235000007164 Oryza sativa Nutrition 0.000 description 2
- 235000013361 beverage Nutrition 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 235000009566 rice Nutrition 0.000 description 2
- 240000008415 Lactuca sativa Species 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000009835 boiling Methods 0.000 description 1
- 235000008429 bread Nutrition 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000003750 conditioning effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 235000021185 dessert Nutrition 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 235000008446 instant noodles Nutrition 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 235000012149 noodles Nutrition 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 235000021395 porridge Nutrition 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 235000012045 salad Nutrition 0.000 description 1
- 235000011888 snacks Nutrition 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computing Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Evolutionary Biology (AREA)
- Health & Medical Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Medical Informatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Stored Programmes (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及算法模型接口化方法、装置、计算机设备及存储介质,该方法包括获取算法模型;对算法模型进行指定格式的保存,以形成中间模型;对所述中间模型进行加载处理,以得到目标模型;对目标模型进行接口化,以得到可调用接口;将可调用接口反馈至终端,以供终端通过可调用接口调取所述算法模型。本发明根据不同类型进行输入数据类型和输出数据类型的格式化处理,并进行加载,对加载后的模型进行接口化处理,便可通过该可调用接口的调用实现算法模型的调用,可通过直接传参调用算法模型的可调用接口便可得到所需的预测结果,可减少算法模型重复训练,增加算法模型的复用,提高开发效率,实现将算法模型接口化,不易造成资源浪费。
Description
技术领域
本发明涉及模型接口化方法,更具体地说是指算法模型接口化方法、装置、计算机设备及存储介质。
背景技术
机器学习可以通过大量的数据训练生成不同的算法模型,但是不管是在特征工程还是预测模型中,模型的应用范围都比较局限,一般是谁训练谁使用,没有形成统一的、规范的调用接口,直接共享模型又涉及到模型的保密性问题。当其他计算过程需要引用到某一算法模型时,只能重新训练,导致计算机的工作量增大,且易造成资源浪费。
因此,有必要设计一种新的方法,实现将算法模型接口化,可直接通过接口传输所需数据,减少算法模型重复训练,增加模型的复用性,不易造成资源浪费。
发明内容
本发明的目的在于克服现有技术的缺陷,提供算法模型接口化方法、装置、计算机设备及存储介质。
为实现上述目的,本发明采用以下技术方案:算法模型接口化方法,包括:
获取算法模型;
对算法模型进行指定格式的保存,以形成中间模型;
对所述中间模型进行加载处理,以得到目标模型;
对目标模型进行接口化,以得到可调用接口;
将可调用接口反馈至终端,以供终端通过可调用接口调取所述算法模型。
其进一步技术方案为:所述算法模型包括机器学习训练而成的模型。
其进一步技术方案为:所述对算法模型进行指定格式的保存,以形成中间模型,包括:
将所述算法模型按照指定格式保存为可加载模式;
对保存后的算法模型确定输入数据类型和输出数据类型,以形成中间模型。
其进一步技术方案为:所述指定格式包括.model格式、.pmml格式、.pb格式中至少一种。
其进一步技术方案为:所述对所述中间模型进行加载处理,以得到目标模型,包括:
判断所述中间模型的类型是否是分类模型;
若所述中间模型的类型是分类模型,则对中间模型的输入数据类型进行格式化,并使用XGBoost4j加载中间模型;
将格式化后的输入数据类型作为中间模型的输入值以获取所述中间模型的预测值,并将中间模型的预测值中概率最大的作为分类结果,以得到目标模型;
若所述中间模型的类型不是分类模型,则判断所述中间模型的类型是否是神经网络类型;
若所述中间模型的类型是神经网络类型,则将所述中间模型加载为TensorFlow的Graph数据结构的模型,通过格式化输入数据类型为Tensor数据类型进行结果的预测,以得到目标模型;
若所述中间模型的类型不是神经网络模型,则通过pmml进行中间模型的加载,将中间模型的参数格式化成Map,中间模型的加载成Evaluator格式以进行结果的预测,以得到目标模型。
其进一步技术方案为:所述对目标模型进行接口化,以得到可调用接口,包括:
对所述目标模型构建调用接口,并封装成为代码逻辑形成可以用调用的方法,通过Springboot或者jetty调用并封装调用接口为可调用的代码逻辑,以形成可调用接口;当数据量超过预设数值时,通过spark、flink工具进行数据预处理后,再对所述目标模型构建调用接口,并封装成为代码逻辑形成可以用调用的方法,通过Springboot或者jetty调用并封装调用接口为可调用的代码逻辑。
本发明还提供了算法模型接口化装置,包括:
模型获取单元,用于获取算法模型;
模型保存单元,用于对算法模型进行指定格式的保存,以形成中间模型;
模型加载单元,用于对所述中间模型进行加载处理,以得到目标模型;
模型接口化单元,用于对目标模型进行接口化,以得到可调用接口;
接口反馈单元,用于将可调用接口反馈至终端,以供终端通过可调用接口调取所述算法模型。
其进一步技术方案为:所述模型保存单元包括:
可加载保存子单元,用于将所述算法模型按照指定格式保存为可加载模式;
类型确定子单元,用于对保存后的算法模型确定输入数据类型和输出数据类型,以形成中间模型。
本发明还提供了一种计算机设备,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现上述的方法。
本发明还提供了一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时可实现上述的方法。
本发明与现有技术相比的有益效果是:本发明通过对已经训练的算法模型进行可加载模式的保存,并根据不同类型进行输入数据类型和输出数据类型的格式化处理,并进行加载,对加载后的模型进行接口化处理,便可通过该可调用接口的调用实现算法模型的调用,可通过直接传参调用算法模型的可调用接口便可得到所需的预测结果,可减少算法模型重复训练,增加算法模型的复用,提高开发效率,实现将算法模型接口化,可直接通过接口传输所需数据,不易造成资源浪费。
下面结合附图和具体实施例对本发明作进一步描述。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的算法模型接口化方法的应用场景示意图;
图2为本发明实施例提供的算法模型接口化方法的流程示意图;
图3为本发明实施例提供的算法模型接口化方法的子流程示意图;
图4为本发明实施例提供的算法模型接口化方法的子流程示意图;
图5为本发明实施例提供的算法模型接口化装置的示意性框图;
图6为本发明实施例提供的算法模型接口化装置的模型保存单元的示意性框图;
图7为本发明实施例提供的算法模型接口化装置的模型加载单元的示意性框图;
图8为本发明实施例提供的计算机设备的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图1和图2,图1为本发明实施例提供的算法模型接口化方法的应用场景示意图。图2为本发明实施例提供的算法模型接口化方法的示意性流程图。该算法模型接口化方法应用于服务器中,该服务器与终端进行数据交互,实现服务器对算法模型进行接口化处理后,形成可调用接口,并将该可调用接口发送至终端,以供终端直接通过该可调用接口直接调用对应的算法模型。
图2是本发明实施例提供的算法模型接口化方法的流程示意图。如图2所示,该方法包括以下步骤S110至S150。
S110、获取算法模型。
在本实施例中,算法模型包括但不局限于机器学习训练而成的模型。
一般算法模型是在其他子服务器内进行训练形成,要通过本实施例中的服务器进行调取并接口化,再将接口赋予终端,便可实现终端直接调用算法模型的目的,无需再次进行重复训练,降低服务器的工作量。
S120、对算法模型进行指定格式的保存,以形成中间模型。
在本实施例中,中间模型是指保存成java或者scala等可以加载格式的算法模型。
在一实施例中,请参阅图3,上述的步骤S120可包括步骤S121~S122。
S121、将所述算法模型按照指定格式保存为可加载模式。
在本实施例中,可加载模式是指可以直接加载后进行调用或使用的模式。
具体地,所述指定格式包括.model格式、.pmml格式、.pb格式中至少一种。当然,于其他实施例,上述的指定格式还可以为其他可用于加载的格式。
S122、对保存后的算法模型确定输入数据类型和输出数据类型,以形成中间模型。
当对算法模型进行保存后,对算法按模型的输入和输出的数据类型进行确定,比如算法模型是分类模型,则该输入数据类型为与类别有关的文本或图像等,而输出数据类型可以为类别也可以是类别对应的概率,根据算法模型所对应的类型,确定输入数据类型以及输出数据类型。
S130、对所述中间模型进行加载处理,以得到目标模型。
在本实施例中,目标模型是指输入数据类型以及输出数据类型格式化后的中间模型。
在一实施例中,请参阅图4,上述的步骤S130可包括步骤S131~S136。
S131、判断所述中间模型的类型是否是分类模型;
S132、若所述中间模型的类型是分类模型,则对中间模型的输入数据类型进行格式化,并使用XGBoost4j加载中间模型;
S133、将格式化后的输入数据类型作为中间模型的输入值以获取所述中间模型的预测值,并将中间模型的预测值中概率最大的作为分类结果,以得到目标模型。
对于分类模型例如xgboost训练出来的算法模型,经过保存后形成中间模型,首先需要对中间模型的输入数据类型进行格式化,推荐使用DMatrix数据结构类型作为输入数据类型,然后使用xgboost4j加载中间模型,将上述格式化的数据输入数据类型作为中间模型的输入,经过该中间模型处理后,得到中间模型的预测值,预测值是对应分类的概率,取结果中概率最大的作为分类的结果;这样的中间模型即为目标模型。
S134、若所述中间模型的类型不是分类模型,则判断所述中间模型的类型是否是神经网络类型;
S135、若所述中间模型的类型是神经网络类型,则将所述中间模型加载为TensorFlow的Graph数据结构的模型,通过格式化输入数据类型为Tensor数据类型进行结果的预测,以得到目标模型。
对于神经网络类型的算法模型保存格式一般是.pb,即格式为.pb的中间模型,该中间模型可以加载为TensorFlow的Graph数据结构,通过格式化输入数据类型为Tensor,便可通过该中间模型进行结果的预测,得到的Tensor结果可以解析出想要的结果,中间模型经过如上的处理后以形成目标模型。
S136、若所述中间模型的类型不是神经网络模型,则通过pmml进行中间模型的加载,将中间模型的参数格式化成Map,中间模型的加载成Evaluator格式以进行结果的预测,以得到目标模型。
对于以上两种情况均不适用的情况可以通过pmml方法进行中间模型的加载,参数格式化成Map,中间模型加载成Evaluator格式,就可以对结果进行预测,中间模型经过如上的处理后以形成目标模型。
S140、对目标模型进行接口化,以得到可调用接口。
在本实施例中,可调用接口是指可以由终端等进行调用后直接对接算法模型,是可调用算法模型的接口。
具体地,对所述目标模型构建调用接口,并封装成为代码逻辑形成可以用调用的方法,通过Springboot或者jetty调用并封装调用接口为可调用的代码逻辑,以形成可调用接口;当数据量超过预设数值时,通过spark、flink工具进行数据预处理后,再对所述目标模型构建调用接口,并封装成为代码逻辑形成可以用调用的方法,通过Springboot或者jetty调用并封装调用接口为可调用的代码逻辑。
即对所述目标模型构建调用接口时,将以上过程封装成为代码逻辑形成可以用调用的方法,通过Springboot或者jetty调用并封装该方法形成可调用的web接口;特别地数据量比较大的情况下,算法模型的数据预处理会造成超时,通过spark、flink等工具进行算法模型的数据预处理,然后通过上述封装方法形成可调用的web接口避免接口超时的问题。
有了以上目标模型的输出,便可以构建调用接口,例如数据量不大的情况可以用springboot框架调用目标模型,直接对结果预测;数据量比较大的情况可以采用Springboot调用spark脚本运行分布式任务调用目标模型进行预测,然后将结果返回至终端,也就是通过终端调用该接口,将需要预测的数据通过在可调用接口输入后,由服务器调用对应的算法模型进行预测,并形成预测的结果,将预测结果反馈至终端显示。
S150、将可调用接口反馈至终端,以供终端通过可调用接口调取所述算法模型。
在本实施例中,将该可调用接口反馈至终端,加载或者植入该终端后,形成终端可调取的接口,使用该接口便可实现算法模型的调用。
举个例子:根据销售的商品进行行业预测的算法模型接口化,首先将商品分为25个种类作为模型的输入,例如1.鲜食类2.面包类3.甜点类4.小吃类5.珍味类6.嗜好品类7.酒类8.生活类9.文具办公类10.坚果类11.油炸类12.调理面类13.沙拉类14.三明治类15.饭团饭卷类16.常温饮料类17.冷藏饮料类18.膨化食品类19.粥类20.米饭类21.熬点类22.包子类23.日配食品类24.现制食品类25.方便面类,然后计算商家所销售的上述商品的商品作为输入数据类型得到如下结果:
{0.1,0.05,0.75,0.06,0.04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
将上述输入数据类型转换成float[]数组,然后新建一个DMatrix对象,通过XGBoost.loadModel(inputStream),加载成目标模型,然后通过model.predict(matrix,true)[0]预测所属行业的结果得到float[]predict,predict中的最大值对应的下标就是行业分类的结果,对所述目标模型构建调用接口,并封装成为代码逻辑形成可以用调用的方法,通过Springboot或者jetty调用并封装调用接口为可调用的代码逻辑,以形成可调用接口;当数据量超过预设数值时,通过spark、flink工具进行数据预处理后,再对所述目标模型构建调用接口,并封装成为代码逻辑形成可以用调用的方法,通过Springboot或者jetty调用并封装调用接口为可调用的代码逻辑。
上述的算法模型接口化方法,通过对已经训练的算法模型进行可加载模式的保存,并根据不同类型进行输入数据类型和输出数据类型的格式化处理,并进行加载,对加载后的模型进行接口化处理,便可通过该可调用接口的调用实现算法模型的调用,可通过直接传参调用算法模型的可调用接口便可得到所需的预测结果,可减少算法模型重复训练,增加算法模型的复用,提高开发效率,实现将算法模型接口化,可直接通过接口传输所需数据,不易造成资源浪费。
图5是本发明实施例提供的一种算法模型接口化装置300的示意性框图。如图5所示,对应于以上算法模型接口化方法,本发明还提供一种算法模型接口化装置300。该算法模型接口化装置300包括用于执行上述算法模型接口化方法的单元,该装置可以被配置于服务器中。
具体地,请参阅图5,该算法模型接口化装置300包括模型获取单元301、模型保存单元302、模型加载单元303、模型接口化单元304以及接口反馈单元305。
模型获取单元301,用于获取算法模型;模型保存单元302,用于对算法模型进行指定格式的保存,以形成中间模型;模型加载单元303,用于对所述中间模型进行加载处理,以得到目标模型;模型接口化单元304,用于对目标模型进行接口化,以得到可调用接口,具体地,对所述目标模型构建调用接口,并封装成为代码逻辑形成可以用调用的方法,通过Springboot或者jetty调用并封装调用接口为可调用的代码逻辑,以形成可调用接口;当数据量超过预设数值时,通过spark、flink工具进行数据预处理后,再对所述目标模型构建调用接口,并封装成为代码逻辑形成可以用调用的方法,通过Springboot或者jetty调用并封装调用接口为可调用的代码逻辑;接口反馈单元305,用于将可调用接口反馈至终端,以供终端通过可调用接口调取所述算法模型。
在一实施例中,如图6所示,所述模型保存单元302包括可加载保存子单元3021以及类型确定子单元3022。
可加载保存子单元3021,用于将所述算法模型按照指定格式保存为可加载模式;类型确定子单元3022,用于对保存后的算法模型确定输入数据类型和输出数据类型,以形成中间模型。
在一实施例中,如图7所示,所述模型加载单元303包括分类判断子单元3031、分类格式化子单元3032、分类模型处理子单元3033、网络模型判断子单元3034、网络模型处理子单元3035以及第一模型处理子单元3036。
分类判断子单元3031,用于判断所述中间模型的类型是否是分类模型;分类格式化子单元3032,用于若所述中间模型的类型是分类模型,则对中间模型的输入数据类型进行格式化,并使用XGBoost4j加载中间模型;分类模型处理子单元3033,用于将格式化后的输入数据类型作为中间模型的输入值以获取所述中间模型的预测值,并将中间模型的预测值中概率最大的作为分类结果,以得到目标模型;网络模型判断子单元3034,用于若所述中间模型的类型不是分类模型,则判断所述中间模型的类型是否是神经网络类型;网络模型处理子单元3035,用于若所述中间模型的类型是神经网络类型,则将所述中间模型加载为TensorFlow的Graph数据结构的模型,通过格式化输入数据类型为Tensor数据类型进行结果的预测,以得到目标模型;第一模型处理子单元3036,用于若所述中间模型的类型不是神经网络模型,则通过pmml进行中间模型的加载,将中间模型的参数格式化成Map,中间模型的加载成Evaluator格式以进行结果的预测,以得到目标模型。
需要说明的是,所属领域的技术人员可以清楚地了解到,上述算法模型接口化装置300和各单元的具体实现过程,可以参考前述方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。
上述算法模型接口化装置300可以实现为一种计算机程序的形式,该计算机程序可以在如图8所示的计算机设备上运行。
请参阅图8,图8是本申请实施例提供的一种计算机设备的示意性框图。该计算机设备500是服务器,其中,服务器可以是独立的服务器,也可以是多个服务器组成的服务器集群。
参阅图8,该计算机设备500包括通过系统总线501连接的处理器502、存储器和网络接口505,其中,存储器可以包括非易失性存储介质503和内存储器504。
该非易失性存储介质503可存储操作系统5031和计算机程序5032。该计算机程序5032包括程序指令,该程序指令被执行时,可使得处理器502执行一种算法模型接口化方法。
该处理器502用于提供计算和控制能力,以支撑整个计算机设备500的运行。
该内存储器504为非易失性存储介质503中的计算机程序5032的运行提供环境,该计算机程序5032被处理器502执行时,可使得处理器502执行一种算法模型接口化方法。
该网络接口505用于与其它设备进行网络通信。本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备500的限定,具体的计算机设备500可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
其中,所述处理器502用于运行存储在存储器中的计算机程序5032,以实现如下步骤:
获取算法模型;对算法模型进行指定格式的保存,以形成中间模型;对所述中间模型进行加载处理,以得到目标模型;对目标模型进行接口化,以得到可调用接口;将可调用接口反馈至终端,以供终端通过可调用接口调取所述算法模型。
其中,所述算法模型包括机器学习训练而成的模型。
在一实施例中,处理器502在实现所述对算法模型进行指定格式的保存,以形成中间模型步骤时,具体实现如下步骤:
将所述算法模型按照指定格式保存为可加载模式;对保存后的算法模型确定输入数据类型和输出数据类型,以形成中间模型。
其中,所述指定格式包括.model格式、.pmml格式、.pb格式中至少一种。
在一实施例中,处理器502在实现所述对所述中间模型进行加载处理,以得到目标模型步骤时,具体实现如下步骤:
判断所述中间模型的类型是否是分类模型;若所述中间模型的类型是分类模型,则对中间模型的输入数据类型进行格式化,并使用XGBoost4j加载中间模型;将格式化后的输入数据类型作为中间模型的输入值以获取所述中间模型的预测值,并将中间模型的预测值中概率最大的作为分类结果,以得到目标模型;若所述中间模型的类型不是分类模型,则判断所述中间模型的类型是否是神经网络类型;若所述中间模型的类型是神经网络类型,则将所述中间模型加载为TensorFlow的Graph数据结构的模型,通过格式化输入数据类型为Tensor数据类型进行结果的预测,以得到目标模型;若所述中间模型的类型不是神经网络模型,则通过pmml进行中间模型的加载,将中间模型的参数格式化成Map,中间模型的加载成Evaluator格式以进行结果的预测,以得到目标模型。
在一实施例中,处理器502在实现所述对目标模型进行接口化,以得到可调用接口步骤时,具体实现如下步骤:
对所述目标模型构建调用接口,并封装成为代码逻辑形成可以用调用的方法,通过Springboot或者jetty调用并封装调用接口为可调用的代码逻辑,以形成可调用接口;当数据量超过预设数值时,通过spark、flink工具进行数据预处理后,再对所述目标模型构建调用接口,并封装成为代码逻辑形成可以用调用的方法,通过Springboot或者jetty调用并封装调用接口为可调用的代码逻辑。
应当理解,在本申请实施例中,处理器502可以是中央处理单元(CentralProcessing Unit,CPU),该处理器502还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本领域普通技术人员可以理解的是实现上述实施例的方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成。该计算机程序包括程序指令,计算机程序可存储于一存储介质中,该存储介质为计算机可读存储介质。该程序指令被该计算机系统中的至少一个处理器执行,以实现上述方法的实施例的流程步骤。
因此,本发明还提供一种存储介质。该存储介质可以为计算机可读存储介质。该存储介质存储有计算机程序,其中该计算机程序被处理器执行时使处理器执行如下步骤:
获取算法模型;对算法模型进行指定格式的保存,以形成中间模型;对所述中间模型进行加载处理,以得到目标模型;对目标模型进行接口化,以得到可调用接口;将可调用接口反馈至终端,以供终端通过可调用接口调取所述算法模型。
其中,所述算法模型包括机器学习训练而成的模型。
在一实施例中,所述处理器在执行所述计算机程序而实现所述对算法模型进行指定格式的保存,以形成中间模型步骤时,具体实现如下步骤:
将所述算法模型按照指定格式保存为可加载模式;对保存后的算法模型确定输入数据类型和输出数据类型,以形成中间模型。
其中,所述指定格式包括.model格式、.pmml格式、.pb格式中至少一种。
在一实施例中,所述处理器在执行所述计算机程序而实现所述对所述中间模型进行加载处理,以得到目标模型步骤时,具体实现如下步骤:
判断所述中间模型的类型是否是分类模型;若所述中间模型的类型是分类模型,则对中间模型的输入数据类型进行格式化,并使用XGBoost4j加载中间模型;将格式化后的输入数据类型作为中间模型的输入值以获取所述中间模型的预测值,并将中间模型的预测值中概率最大的作为分类结果,以得到目标模型;若所述中间模型的类型不是分类模型,则判断所述中间模型的类型是否是神经网络类型;若所述中间模型的类型是神经网络类型,则将所述中间模型加载为TensorFlow的Graph数据结构的模型,通过格式化输入数据类型为Tensor数据类型进行结果的预测,以得到目标模型;若所述中间模型的类型不是神经网络模型,则通过pmml进行中间模型的加载,将中间模型的参数格式化成Map,中间模型的加载成Evaluator格式以进行结果的预测,以得到目标模型。
在一实施例中,所述处理器在执行所述计算机程序而实现所述对目标模型进行接口化,以得到可调用接口步骤时,具体实现如下步骤:
对所述目标模型构建调用接口,并封装成为代码逻辑形成可以用调用的方法,通过Springboot或者jetty调用并封装调用接口为可调用的代码逻辑,以形成可调用接口;当数据量超过预设数值时,通过spark、flink工具进行数据预处理后,再对所述目标模型构建调用接口,并封装成为代码逻辑形成可以用调用的方法,通过Springboot或者jetty调用并封装调用接口为可调用的代码逻辑。
所述存储介质可以是U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的计算机可读存储介质。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本发明实施例装置中的单元可以根据实际需要进行合并、划分和删减。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,终端,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (8)
1.算法模型接口化方法,其特征在于,包括:
获取算法模型;
对算法模型进行指定格式的保存,以形成中间模型;
对所述中间模型进行加载处理,以得到目标模型;
对目标模型进行接口化,以得到可调用接口;
将可调用接口反馈至终端,以供终端通过可调用接口调取所述算法模型;
所述对所述中间模型进行加载处理,以得到目标模型,包括:
判断所述中间模型的类型是否是分类模型;
若所述中间模型的类型是分类模型,则对中间模型的输入数据类型进行格式化,并使用XGBoost4j加载中间模型;
将格式化后的输入数据类型作为中间模型的输入值以获取所述中间模型的预测值,并将中间模型的预测值中概率最大的作为分类结果,以得到目标模型;
若所述中间模型的类型不是分类模型,则判断所述中间模型的类型是否是神经网络类型;
若所述中间模型的类型是神经网络类型,则将所述中间模型加载为TensorFlow的Graph数据结构的模型,通过格式化输入数据类型为Tensor数据类型进行结果的预测,以得到目标模型;
若所述中间模型的类型不是神经网络模型,则通过pmml进行中间模型的加载,将中间模型的参数格式化成Map,中间模型的加载成Evaluator格式以进行结果的预测,以得到目标模型;
所述对目标模型进行接口化,以得到可调用接口,包括:
对所述目标模型构建调用接口,并封装成为代码逻辑形成可调用的方法,通过Springboot或者jetty调用并封装调用接口为可调用的代码逻辑,以形成可调用接口;当数据量超过预设数值时,通过spark、flink工具进行数据预处理后,再对所述目标模型构建调用接口,并封装成为代码逻辑形成可调用的方法,通过Springboot或者jetty调用并封装调用接口为可调用的代码逻辑。
2.根据权利要求1所述的算法模型接口化方法,其特征在于,所述算法模型包括机器学习训练而成的模型。
3.根据权利要求1所述的算法模型接口化方法,其特征在于,所述对算法模型进行指定格式的保存,以形成中间模型,包括:
将所述算法模型按照指定格式保存为可加载模式;
对保存后的算法模型确定输入数据类型和输出数据类型,以形成中间模型。
4.根据权利要求3所述的算法模型接口化方法,其特征在于,所述指定格式包括.model格式、.pmml格式、.pb格式中至少一种。
5.算法模型接口化装置,其特征在于,包括:
模型获取单元,用于获取算法模型;
模型保存单元,用于对算法模型进行指定格式的保存,以形成中间模型;
模型加载单元,用于对所述中间模型进行加载处理,以得到目标模型;
模型接口化单元,用于对目标模型进行接口化,以得到可调用接口;具体地,对所述目标模型构建调用接口,并封装成为代码逻辑形成可调用的方法,通过Springboot或者jetty调用并封装调用接口为可调用的代码逻辑,以形成可调用接口;当数据量超过预设数值时,通过spark、flink工具进行数据预处理后,再对所述目标模型构建调用接口,并封装成为代码逻辑形成可调用的方法,通过Springboot或者jetty调用并封装调用接口为可调用的代码逻辑;
接口反馈单元,用于将可调用接口反馈至终端,以供终端通过可调用接口调取所述算法模型;
所述模型加载单元包括分类判断子单元、分类格式化子单元、分类模型处理子单元、网络模型判断子单元、网络模型处理子单元以及第一模型处理子单元;
分类判断子单元,用于判断所述中间模型的类型是否是分类模型;分类格式化子单元,用于若所述中间模型的类型是分类模型,则对中间模型的输入数据类型进行格式化,并使用XGBoost4j加载中间模型;分类模型处理子单元,用于将格式化后的输入数据类型作为中间模型的输入值以获取所述中间模型的预测值,并将中间模型的预测值中概率最大的作为分类结果,以得到目标模型;网络模型判断子单元,用于若所述中间模型的类型不是分类模型,则判断所述中间模型的类型是否是神经网络类型;网络模型处理子单元,用于若所述中间模型的类型是神经网络类型,则将所述中间模型加载为TensorFlow的Graph数据结构的模型,通过格式化输入数据类型为Tensor数据类型进行结果的预测,以得到目标模型;第一模型处理子单元,用于若所述中间模型的类型不是神经网络模型,则通过pmml进行中间模型的加载,将中间模型的参数格式化成Map,中间模型的加载成Evaluator格式以进行结果的预测,以得到目标模型。
6.根据权利要求5所述的算法模型接口化装置,其特征在于,所述模型保存单元包括:
可加载保存子单元,用于将所述算法模型按照指定格式保存为可加载模式;
类型确定子单元,用于对保存后的算法模型确定输入数据类型和输出数据类型,以形成中间模型。
7.一种计算机设备,其特征在于,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至4中任一项所述的方法。
8.一种存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时可实现如权利要求1至4中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911239773.4A CN110955470B (zh) | 2019-12-06 | 2019-12-06 | 算法模型接口化方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911239773.4A CN110955470B (zh) | 2019-12-06 | 2019-12-06 | 算法模型接口化方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110955470A CN110955470A (zh) | 2020-04-03 |
CN110955470B true CN110955470B (zh) | 2024-01-19 |
Family
ID=69980109
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911239773.4A Active CN110955470B (zh) | 2019-12-06 | 2019-12-06 | 算法模型接口化方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110955470B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111369011A (zh) * | 2020-04-16 | 2020-07-03 | 光际科技(上海)有限公司 | 机器学习模型应用的方法、装置、计算机设备和存储介质 |
CN113742197B (zh) * | 2020-05-27 | 2023-04-14 | 抖音视界有限公司 | 模型管理装置、方法、数据管理装置、方法及系统 |
CN112612540B (zh) * | 2020-12-18 | 2024-04-09 | 北京达佳互联信息技术有限公司 | 数据模型配置方法、装置、电子设备及存储介质 |
CN112988384A (zh) * | 2021-03-19 | 2021-06-18 | 深圳前海黑顿科技有限公司 | 一种基于场景的算法资源自动化整合调用方法 |
CN114119612A (zh) * | 2022-01-25 | 2022-03-01 | 武汉精立电子技术有限公司 | 一种基于图片的外观检测方法及系统 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106790706A (zh) * | 2017-02-27 | 2017-05-31 | 深圳先进技术研究院 | 一种数据资源优化的方法、平台及系统 |
CN108073497A (zh) * | 2018-01-29 | 2018-05-25 | 上海洞识信息科技有限公司 | 一种基于数据中心数据采集平台的多指标异动分析方法 |
CN108734193A (zh) * | 2018-03-27 | 2018-11-02 | 合肥麟图信息科技有限公司 | 一种深度学习模型的训练方法及装置 |
CN108764808A (zh) * | 2018-03-29 | 2018-11-06 | 北京九章云极科技有限公司 | 数据分析处理系统及其在线模型部署方法 |
CN108829415A (zh) * | 2018-05-29 | 2018-11-16 | 努比亚技术有限公司 | 模型加载方法、服务器及计算机可读存储介质 |
CN109919308A (zh) * | 2017-12-13 | 2019-06-21 | 腾讯科技(深圳)有限公司 | 一种神经网络模型部署方法、预测方法及相关设备 |
CN110175677A (zh) * | 2019-04-16 | 2019-08-27 | 平安普惠企业管理有限公司 | 自动更新方法、装置、计算机设备及存储介质 |
CN110221816A (zh) * | 2019-06-13 | 2019-09-10 | 江苏满运软件科技有限公司 | 基于算法平台的算法运行方法、装置、介质及算法平台 |
CN110287096A (zh) * | 2019-05-20 | 2019-09-27 | 深圳壹账通智能科技有限公司 | H5前端页面测试方法、电子装置及计算机可读存储介质 |
CN110363280A (zh) * | 2019-09-02 | 2019-10-22 | 国家气象信息中心 | 算法模型训练分析系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7085762B2 (en) * | 2003-05-22 | 2006-08-01 | International Business Machines Corporation | Methods, systems and computer program products for web services access of analytical models |
CN108108821B (zh) * | 2017-12-29 | 2022-04-22 | Oppo广东移动通信有限公司 | 模型训练方法及装置 |
-
2019
- 2019-12-06 CN CN201911239773.4A patent/CN110955470B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106790706A (zh) * | 2017-02-27 | 2017-05-31 | 深圳先进技术研究院 | 一种数据资源优化的方法、平台及系统 |
CN109919308A (zh) * | 2017-12-13 | 2019-06-21 | 腾讯科技(深圳)有限公司 | 一种神经网络模型部署方法、预测方法及相关设备 |
CN108073497A (zh) * | 2018-01-29 | 2018-05-25 | 上海洞识信息科技有限公司 | 一种基于数据中心数据采集平台的多指标异动分析方法 |
CN108734193A (zh) * | 2018-03-27 | 2018-11-02 | 合肥麟图信息科技有限公司 | 一种深度学习模型的训练方法及装置 |
CN108764808A (zh) * | 2018-03-29 | 2018-11-06 | 北京九章云极科技有限公司 | 数据分析处理系统及其在线模型部署方法 |
CN108829415A (zh) * | 2018-05-29 | 2018-11-16 | 努比亚技术有限公司 | 模型加载方法、服务器及计算机可读存储介质 |
CN110175677A (zh) * | 2019-04-16 | 2019-08-27 | 平安普惠企业管理有限公司 | 自动更新方法、装置、计算机设备及存储介质 |
CN110287096A (zh) * | 2019-05-20 | 2019-09-27 | 深圳壹账通智能科技有限公司 | H5前端页面测试方法、电子装置及计算机可读存储介质 |
CN110221816A (zh) * | 2019-06-13 | 2019-09-10 | 江苏满运软件科技有限公司 | 基于算法平台的算法运行方法、装置、介质及算法平台 |
CN110363280A (zh) * | 2019-09-02 | 2019-10-22 | 国家气象信息中心 | 算法模型训练分析系统 |
Non-Patent Citations (3)
Title |
---|
Angel~+:基于Angel的分布式机器学习平台;张智鹏 等;数据与计算发展前沿(05);全文 * |
基于Spark框架和ARIMA-BPNN的交通流量预测模型的研究;李建中 等;电脑编程技巧与维护(20);全文 * |
陈新宇 等.《中台战略 中台建设与数字商业》.北京:机械工业出版社,2019,第189页. * |
Also Published As
Publication number | Publication date |
---|---|
CN110955470A (zh) | 2020-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110955470B (zh) | 算法模型接口化方法、装置、计算机设备及存储介质 | |
CN109815332B (zh) | 损失函数优化方法、装置、计算机设备及存储介质 | |
US11397887B2 (en) | Dynamic tuning of training parameters for machine learning algorithms | |
US11663926B2 (en) | System and method for food categorization | |
US10521280B2 (en) | Event-driven serverless function orchestration | |
US9979617B1 (en) | Techniques for controlling scaling behavior of resources | |
Xian et al. | Fuzzy linguistic induced Euclidean OWA distance operator and its application in group linguistic decision making | |
CN112231584A (zh) | 基于小样本迁移学习的数据推送方法、装置及计算机设备 | |
Sel et al. | Planning and scheduling of the make-and-pack dairy production under lifetime uncertainty | |
CN111222553B (zh) | 机器学习模型的训练数据处理方法、装置和计算机设备 | |
CN114840392A (zh) | 任务调度异常监控方法、装置、介质及程序产品 | |
CN111400294A (zh) | 数据异常监测方法、装置及系统 | |
CN114896216A (zh) | 基于区块链的工业互联网数据存储方法、系统及电子设备 | |
CN110991640A (zh) | 调料使用量的确定方法、装置和模型优化方法、装置 | |
Gutium | Quantifying the comparative advantage of domestic goods on the internal market | |
CN108900865B (zh) | 服务器、转码任务的调度方法及执行方法 | |
CN114358673B (zh) | 异常物流预警方法、装置、计算机设备及存储介质 | |
CN111724176A (zh) | 店铺流量调节方法、装置、设备及计算机可读存储介质 | |
US11328223B2 (en) | Information processing method and information processing system | |
CN114500318A (zh) | 一种批量作业监控方法及装置、设备及介质 | |
US10592967B1 (en) | Hyperlocal marketplace via smart homes connected to the grid | |
CN113159281A (zh) | 数据处理方法和数据处理装置 | |
CN112232549A (zh) | 一种智能农产品数据预测方法及系统 | |
WO2020164275A1 (zh) | 基于预测模型的处理结果预测方法、装置及服务器 | |
CN110659968A (zh) | 一种自动售菜系统的控制方法、装置及自动售菜系统 |
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 |