[英]Python How to keep running same function multiple times parallel with different arguments in API
我正在使用烧瓶-restx api
有一个名为“predict_y”的 function。
我必须将特定的 NLP 深度学习模块加载到 var X 中,并使用它来预测 var Y 中文本中的标签。
我会收到一个带有 x 和 y 值的 POST 请求,其中 x 是我需要加载的深度学习 model 的名称(耗时),y 是我使用 model 给出的文本,用于预测 ZD304BA20E96D8E341 和 88ABA880EZC1 label。
我希望整个过程很快。 但是在收到请求后将 model 加载到 var x 中非常耗时。
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 中使用不同的加载模型多次运行相同的 function 'predict_y'。
这样,当我收到假设 x= model1 和 y= 'Predict this text's label' 的 POST 请求时,我可以将其重定向到 func 'predict_y' ,其中 var x 已经加载了 model1。
一旦收到的最后一个请求超时,这些 function 就可以停止。
我怎么能这样做?
您将希望在predict
function 之外加载模型,当 flask 应用程序启动时,例如在dict
中,然后您可以在predict
中引用正确的 Z20F35E630DAF44DBFA4C3F68F5399D。
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.