FastAPI loading model.pb - SavedModel file does not exist error

Viewed 255

I'm trying to load a trained model on FastAPI and try pinging it from a notebook (to mimic a frontend call). But keep getting error saying the model file doesn't exist. I'm very new to this, any advice welcome...

Training notebook: model.save('/data/model')

Downloaded the model and put the whole folder in the FastAPI folder.

File structure in FastAPI:

>> API
  >> _pycache_
  >> model
    >> assets
    >> variables
    keras_metadata.pb
    saved_model.pb
  >> pyapi-env
  api.py

api.py

from fastapi import FastAPI
from tensorflow.keras.models import load_model
...

@app.get("/predict")
def predict(test):
  ...
  model = load_model("./model/saved_model.pb")
  ...

Testing notebook:

import requests

url = "http://localhost:8000/predict"
params = {
    "test": "testing",
}
res = requests.get(url, params=params)
res.json()

Error: OSError: SavedModel file does not exist at: ./model/saved_model.pb\{saved_model.pbtxt|saved_model.pb}

1 Answers

I had the same issue and this worked for me:

model = load_model("./model/")

It seems like your code was treating "saved_model.pb" as a directory and looking for the model file inside it.

Related