from fastai.vision.all import * import gradio as gr def is_cat(x): return x[0].isupper() learn = load_learner('./image_model.pkl') labels = learn.dls.vocab def predict(img): img = PILImage.create(img) pred,pred_idx,probs = learn.predict(img) return {labels[i]: float(probs[i]) for i in range(len(labels))} # All Gradio interfaces are created by constructing a gradio.Interface() object # The Interface() object takes in the function that we want to make an # interface for (usually an ML model inference function) # 'inputs' components (the number of input components should match # the number of parameters of the provided function) # 'outputs' components (the number of output components should match # the number of values returned by the provided function) title = "Dog Cat Classifier" description = "A dog cat classifier trained on the Oxford Pets dataset with fastai. Created as a demo for Gradio and HuggingFace Spaces." article="

Blog post

" examples = ['./cats_1.jpeg'] interpretation='default' enable_queue=True gr.Interface( fn=predict, inputs=gr.inputs.Image(shape=(512, 512)), outputs=gr.outputs.Label(num_top_classes=3), title=title, description=description, article=article, examples=examples, interpretation=interpretation, enable_queue=enable_queue).launch()