Spaces:
Sleeping
Sleeping
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) |