helloworld / app.py
rafaared's picture
update the code with a custom_loead_learner
056b7ab
raw
history blame
1.13 kB
from fastai.vision.all import *
import gradio as gr
import pathlib
import fastai.learner
def custom_load_learner(fname, cpu=True, pickle_module=pickle):
"""Load a Learner from file in `fname` and ensure it's using a platform-independent path."""
map_loc = None if torch.cuda.is_available() and not cpu else 'cpu'
try:
res = torch.load(fname, map_location=map_loc, pickle_module=pickle_module)
except ModuleNotFoundError as e:
raise ImportError(f"{e}. To load the model on a different device, you may need to install the fastai library.")
if 'WindowsPath' in str(type(res.path)):
res.path = pathlib.Path(res.path)
return res
def is_cat(x): return x[0].isupper()
learn = custom_load_learner('model.pkl')
categories = ('dog', 'cat')
def classify_image(img):
pred, idx, probs = learn.predict(img)
return dict(zip(categories, map(float, probs)))
image = gr.inputs.Image(shape=(192,192))
label = gr.outputs.Label()
exemple = ["dog.jpg", "cat.jpg"]
intf = gr.Interface(fn=classify_image, inputs=image, outputs=label, examples=exemple)
intf.launch(inline=False)