import gradio as gr from fastai.vision.all import * import os # --- Model Loading (Assumes model.pkl exists in the root) --- try: learn = load_learner('model.pkl') except Exception: print("Error loading model.pkl. Check file path/existence.") raise 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))} # --- Interface Setup --- examples = ["birman.jpg", "pomerian.jpg", "british.jpg"] title = "Pet Breed Classifier" description = "A pet breed classifier trained on the Oxford Pets dataset with fastai. Created as a demo for Gradio and HuggingFace Spaces." article="

Blog post

" demo = gr.Interface( fn=predict, inputs=gr.Image(type="pil"), outputs=gr.Label(num_top_classes=3), title=title, description=description, article=article, examples=examples ) if __name__ == "__main__": demo.launch()