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)