模型訓練後如何將模型打包上線,下面用Flask框架實現模型的部署和實時預測。
直接上乾貨,文件名稱爲flask_model.py
import numpy as np
from flask import Flask
from flask import request
from flask import jsonify
from sklearn.externals import joblib
#導入模型
model = joblib.load('model.pickle')
#temp = [5.1,3.5,1.4,0.2]
#temp = np.array(temp).reshape((1, -1))
#ouputdata = model.predict(temp)
##獲取預測分類結果
#print('分類結果是:',ouputdata[0])
app = Flask(__name__)
@app.route('/',methods=['POST','GET'])
def output_data():
text=request.args.get('inputdata')
if text:
temp = [float(x) for x in text.split(',')]
temp = np.array(temp).reshape((1, -1))
ouputdata = model.predict(temp)
return jsonify(str(ouputdata[0]))
if __name__ == '__main__':
app.config['JSON_AS_ASCII'] = False
app.run(host='127.0.0.1',port=5003) # 127.0.0.1 #指的是本地ip
print('運行結束')
在cmd命令行中執行命令
>>> python flask_model
代碼實時預測
# 調用API接口
import requests
base = 'http://127.0.0.1:5002/?inputdata=5.1,3.5,1.4,0.2'
response = requests.get(base)
answer = response.json()
print('預測結果',answer)