mlserve——通过自动生成的ui将python模型转换为restful api。

mlserve的Python项目详细描述


mlserve

https://travis-ci.com/jettify/mlserve.svg?branch=masterhttps://codecov.io/gh/jettify/mlserve/branch/master/graph/badge.svgMaintainabilityhttps://img.shields.io/pypi/v/mlserve.svg

mlserve将您的python模型转换为restful api,为web页面提供 生成与输入数据匹配的表单。

如果一个人想演示创建的预测模型和 快速集成到现有应用程序中。此外,还为 输入数据(基于培训数据框架)和简单的仪表板。

项目尚未完成,但已可用,因此对api或ui没有任何保证 向后兼容。

在线演示

几个使用heroku.com/free免费dynos在线部署的模型。 免费应用程序在30分钟不活动后自动休眠,因此首先请求 可能需要一些时间。

mlserve modelsone model

想法

mlsserve基于以下想法使用以下设计是很小的:

  • 简单易用是首要目标。
  • 应用程序由两个进程组成:运行http服务器的io进程 负责数据的获取和发送,以及为用户界面、其他 进程(工作进程)正在执行与预测相关的CPU密集型工作 计算。

功能

  • 通过restful api端点服务的模型预测。
  • 通过生成的ui提供模型预测。
  • 简化模型使用的网页。
  • 自动生成与输入数据匹配的用户界面。
  • 用于监视的简单仪表板。

安装

安装过程很简单,只要:

$ pip install git+https://github.com/jettify/mlserve.git

示例

要部署模型,只需遵循以下简单步骤:

将模型保存到pickle文件中:

with open('boston_gbr.pkl', 'wb') as f:
    pickle.dump(clf, f)

使用build_schema函数构建pandas数据帧的ui表示, 并将其保存为json文件:

import mlserve

data_schema = mlserve.build_schema(df)
with open('boston.json', 'wb') as f:
    json.dump(data_schema, f)

创建以下格式的配置文件:

models:
  - name: "boston_regressor"  # url friendly name
    description: "Boston GBR"  # optional model description
    model_path: "boston_gbr.pkl"  # path to your saved model
    data_schema_path: "boston.json"  # path to data representation
    target: "target"  # name of the target column

服务模式:

$ mlserve -c models.yaml

就是这样,模型是可用的throw rest api,您可以用curl命令进行测试:

$ curl --header "Content-Type: application/json" --request POST
--data '[{"feature1": 1, "feature2": 2}]'
http://127.0.0.1:9000/api/v1/models/boston_gradient_boosting_regressor/predict

用户界面可通过http://127.0.0.1:9000

支持的框架

  • SCIKIT学习
  • Keras(规划)
  • Pythorch(规划)

要求

更改

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java JavaFX:绑定未意外工作   java按顺序遍历两个二叉树,比较哪一个更大   maven如何避免多次加载librxtxSerial。所以在爪哇   google app engine如何在GAE java中为自定义用户数据库创建cookie?   java将内容添加到浮点数组的末尾,如下所示   令牌“+”上的java语法错误,AssignmentOperator无效   java LibGDX Sprite不同时使用“Rotate”和“setRotation”旋转   java字符串数组无需同步?   java如何将击键Z添加到按键(KeyEvent e)以将球跳跃/重新绘制到新的随机位置?(使用了KeyListener演示。)   java如何使用jnlp文件在控制面板的“添加或删除程序”中设置“版本”   java捕获两个异常,一个是另一个的超类   ant在更新到Java8之后,在JiBX绑定[bind]java期间出错。lang.IllegalStateException:加载类java时出错。lang.CharSequence   安卓缓冲区错误转换结果java时出错。朗努尔。。。和JSON ParserError解析数据组织。json。JSONException   java如何在Firebase中从实时数据库检索数据?   java将Jsch放入连接池的细节