模型部署上线的几种服务发布方式

1.JSON(JavaScript Object Notation)格式。

它拥有两个格式处理函数:

json.dumps:将 Python 对象编码成 JSON 字符串;
json.loads:将已编码的 JSON 字符串解码为 Python 对象。

  1. pickle 模块
    pickle.dump(obj, file[, protocol]):序列化对象,并将结果数据流写入到文件对象中。参数 protocol 是序列化模式,默认值为0,表示以文本的形式序列化。protocol 的值还可以是1或2,表示以二进制的形式序列化。

pickle.load(file):反序列化对象。将文件中的数据解析为一个 Python 对象。

  1. sklearn 中的 joblib 模块。
    joblib.dump(model, model_path) #模型保存
    joblib.load(model_path) #模型加载

Flask 和 Bottle 微服务框架

Bottle 是一个非常小巧但高效的微型 Python Web 框架,它被设计为仅仅只有一个文件的 Python 模块,并且除 Python 标准库外,它不依赖于任何第三方模块。

Bottle 本身主要包含以下四个模块,依靠它们便可快速开发微 Web 服务:

路由(Routing):将请求映射到函数,可以创建十分优雅的 URL;
模板(Templates):可以快速构建 Python 内置模板引擎,同时还支持 Mako、Jinja2、Cheetah 等第三方模板引擎;
工具集(Utilites):用于快速读取 form 数据,上传文件,访问 Cookies,Headers 或者其它 HTTP 相关的 metadata;
服务器(Server):内置 HTTP 开发服务器,并且支持 paste、fapws3、 bjoern、Google App Engine、Cherrypy 或者其它任何 WSGI HTTP 服务器。

Flask 发布一个预测模型。

 from sklearn.externals import joblib
    from flask import Flask,request
    app = Flask(__name__)

    @app.route('/')
    def hello_world():
        return 'Hello World!'

    @app.route('/predict/<sen>')
    def predict(sen):
        result = model.predict(sen)
        return str(result)

    if __name__ == '__main__':
        model_path = "D://ch18//model.pkl"
        model = joblib.load(model_path)
        app.run(host='192.168.31.19')

参考:

  1. 模型部署上线的几种服务发布方式
©️2020 CSDN 皮肤主题: 酷酷鲨 设计师:CSDN官方博客 返回首页