这篇教程flask调用h5写得很实用,希望能帮到您。
import flask
import pandas as pd
from tensorflow.keras.models import load_model
host='0.0.0.0'
# 实例化 flask
app = flask.Flask(__name__)
# 加载模型
global graph
#graph=tf.reset_default_graph()
model = load_model('games.h5')
# 将预测函数定义为一个路由
@app.route("/predict", methods=["GET","POST"])
def predict():
data = {"success": False}
params = flask.request.json
if (params == None):
params = flask.request.args
# 若发现参数,则返回预测值
if (params != None):
print(f"params {'='*50} \n",params)
x=pd.DataFrame.from_dict(params, orient='index').transpose()
print(f"x {'='*50} \n",x)
y_predict = model.predict(x) #预测结果是一个二元列表
y_predict = np.argmax(y_predict[0]) #取概率最大的一个id
print(f"y_predict {'='*50} \n",y_predict)
data["prediction"] = str(y_predict)
data["success"] = True
# 返回Json格式的响应
return flask.jsonify(data)
# 启动Flask应用程序,允许远程连接
if __name__ == '__main__':
app.run(debug=False,host=host)
三、用部署的模型进行预测
启动第二步后,在浏览器中输入要预测的数据,特征数量要与训练时的特征数量相同,这里是10个特征。
http://127.0.0.1:5000/predict?g1=1&g2=0&g3=0&g4=0&g5=0&g6=0&g7=0&g8=0&g9=0&g10=0
可以得到下面的返回结果
"prediction":"0"表示预测结果是第0类。 返回列表 轻松搞定tensorflow模型部署到TF serving生产环境,提供在线实时预测服务 |