工作中,往往需要将训练好的深度学习模型,打包成http服务的形式,供其他功能调用。这里先介绍flask方法实现。

一、服务代码

 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
26
#!/usr/bin/python
# server.py

import os
import sys
from flask import Flask,request,Response,json

sys.path.append("..")
current_directory = os.path.dirname(os.path.abspath(__file__))
root_path = os.path.abspath(os.path.dirname(current_directory) + os.path.sep + ".")
sys.path.append(root_path)

app = Flask(__name__)
model = Model() 

@app.route("/server",methods=["POST","GET"])
def server():
    response = request.get_json()
    input_data = response["input_data"]
    result = model.predict(input_data)
    return Response(json.dumps({"result":result}), mimetype="application/json")

if __name__ == "__main__":
    port = sys.argv[1]
    prot = str(port)
    app.run(host="0.0.0.0", port=port, debug=False)

  关于Response的mimetype

  • text/html(默认的,html文件)
  • text/plain(纯文本)
  • text/css(css文件)
  • text/javascript(js文件)
  • application/x-www-form-urlencoded(普通的表单提交)
  • multipart/form-data(文件提交)
  • application/json(json传输)
  • application/xml(xml文件)

二、多开端口脚本

1
2
3
4
#! /bin/sh
# server.sh
chmod 777 server.py
python3 server.py 5020 & python3 server.py 5021 & python3 server.py 5022

三、后台启动

1
nohup sh server.sh &

打赏

微信 微信 支付宝 支付宝
万分感谢