我正在使用烧瓶restx-api
有一个函数叫做"predict_y">
我必须将特定的NLP深度学习模块加载到var X中,并使用它来预测var Y中文本中的标签。
我会得到一个带有x和y值的POST请求,其中x是我需要加载的深度学习模型的名称(耗时(,y是我得到的用于预测标签和返回标签的模型的文本。
我希望整个过程快速。但是,在收到请求后将模型加载到varx中是非常耗时的。
Post request body = {"x":"model1", "y":"Text for label prediction with model1"}
def predict_y(x,y):
x = model.load(path/to/models/x)
answer = x.predict(y)
return answer
有没有一种方法可以让我在x中使用不同的加载模型多次运行相同的函数"predict_y"。
这样,当我收到假设x=model1和y="预测此文本的标签"的POST请求时,我可以将其重定向到函数"Predict_y",其中var x具有已加载的model1。
一旦收到的最后一个请求超时,这些功能就会停止。
我怎么能这么做?
您将希望在predict
函数之外加载模型,当烧瓶应用程序启动时,例如在dict
中,您可以在predict
中引用正确的模型。
Post request body = {"x":"model1", "y":"Text for label prediction with model1"}
models = {x: model.load(f"path/to/models/{x}") for x in ["model1", "model2", ...]}
def predict_y(x,y):
x = models[x]
answer = x.predict(y)
return answer