Spaces:
Paused
Paused
File size: 911 Bytes
fc10439 504405e fc10439 504405e fc10439 504405e fc10439 504405e fc10439 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | import gc
from tensorflow.keras import backend as K
from app.pipelines.main_pipeline import load_model as load_maize, predict_image
AUTO_UNLOAD = False
_cache = {}
async def predict(req, file):
name = req.model_name
# choose loader/predictor
# if name == "sentiment":
# loader, predictor, data = load_sentiment, predict_sentiment, req.text
if name.startswith("xception_"):
loader, predictor, data = load_maize, predict_image, await file.read()
else:
raise ValueError("Unknown model")
# load-on-demand
if name not in _cache:
_cache[name] = loader(name)
model = _cache[name]
label, conf, disease_data = predictor(data, model, name)
if AUTO_UNLOAD:
del _cache[name]
del model
K.clear_session()
gc.collect()
return {"model": name, "label": label, "confidence": conf, "recommendation": disease_data}
|