java使用python模型_使用python做的机器学习模型如何在java web上部署?
有好多种方法可以,需要根据你使用的框架来区分。1、使用Flask直接加载sklearn、tf的model文件就是将model用flask发布web api服务,java通过http调用即可比如这个是把sklearn发布成flask服务:https://towardsdatascience.com/a-flask-api-for-serving-scikit-learn-models-c8bcdaa
有好多种方法可以,需要根据你使用的框架来区分。
1、使用Flask直接加载sklearn、tf的model文件
就是将model用flask发布web api服务,java通过http调用即可
比如这个是把sklearn发布成flask服务:https://towardsdatascience.com/a-flask-api-for-serving-scikit-learn-models-c8bcdaa41daatowardsdatascience.com
这个把tf model发布成flask服务:https://blog.csdn.net/wangjian1204/article/details/76732337blog.csdn.net
2、如果是tf,tf本身支持一套tf serving的机制
流程大致是:导出model,用tf serving的docker镜像加载,然后提供grpc或者http服务
然后Java调用grpc服务或者Http服务都可以
参见:https://github.com/tensorflow/servinggithub.com
3、使用jpmml将sklearn、tf的服务导出
pmml是一种模型定义语言,不过貌似没有使用起来,因为只能表达简单的模型,一些几百万参数的深度学习模型,这个pmml无能为力。
但是简单的模型可以用导出成pmml,然后java直接加载pmml文件即可;
jpmml已经提供了很多框架的导出功能,参见:Java PMML APIgithub.com
4、最笨的方法:将模型的参数导出成JSON等格式,JAVA直接加载
比如LR模型,直接把所有参数导出成JSON等格式,JAVA加载参数列表;
当新来的预测请求时,自己做乘法,把参数和变量相乘,然后做sigmoid等等处理,得到最终预测结果。
供参考,觉得不错的可以关注公众号:蚂蚁学Python,一起学习
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)