【问题标题】:Load tensorflow (keras) model on Flask server under mod_wsgi在 mod_wsgi 下的 Flask 服务器上加载 tensorflow (keras) 模型
【发布时间】:2021-06-24 10:46:49
【问题描述】:

我创建了一个将 tensorflow 作为服务运行的 Flask 服务器。现在我想部署系统,我尝试在 apache2 中使用 mod_wsgi。 apache2中Flask服务器的设置效果很好。

在我的 Flask 服务器的第一版中,我使用 if __name__ == '__main__': 预加载了 tensorflow 模型。像这样:

my_app.py

import sys
sys.path.insert(0, "/var/www/python_servers/theserver")

import tensorflow as tf
from flask import Flask
app = Flask(__name__)

the_model = None
model_path = 'nn/mymodel'


def load_model():
    global the_model
    the_model = tf.keras.models.load_model(model_path)


def prepare_image(image, target):
    if image.mode != "RGB":
        image = image.convert("RGB")

    image = image.resize(target)
    image = img_to_array(image)
    image = np.expand_dims(image, axis=0)
    image /= 255.

    return image



@app.route("/predict", methods=["POST"])
def predict():

    if flask.request.method == "POST":
        if flask.request.files.get("file"):
            # read the image in PIL format
            image = flask.request.files["file"].read()
            image = Image.open(io.BytesIO(image))


            image = prepare_image(image, target=(299, 299))
            
            preds = predict_gretaste_dataset(image1)

    return flask.jsonify(preds)


if __name__ == "__main__":
    load_model()
    app.run(debug=True, use_debugger=False, use_reloader=False, host='0.0.0.0')

现在(在 mod_wsgi 下)我创建了一个这样的 .wsgi 文件:

my_server.wsgi

#!/user/bin/python
import sys
sys.path.insert(0, "/var/www/python_servers/gretaste")

from my_app import app as application

问题是像上面的例子(mod_wsgi)一样if __name__ == '__main__':下的代码它没有在服务器启动时执行,以便预加载我的模型并为POST请求做好准备。

我不想在每个POST 请求中重新加载我的模型。我希望在服务器启动时预加载我的模型。

有什么想法吗??

【问题讨论】:

    标签: python tensorflow flask flask-restful


    【解决方案1】:

    我认为在第一次运行时,加载模型需要一些时间。然后它将继续使用全局并且不会再次加载它。所以解决方法是在启动apache服务器后调用一次api。

    【讨论】:

      猜你喜欢
      • 2017-09-24
      • 2019-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多