| import gradio as gr | |
| from PIL import Image | |
| from model import predict | |
| def classify_image(img: Image.Image): | |
| label, confidence, probs = predict(img) | |
| return ( | |
| label, | |
| round(confidence, 3), | |
| {k: round(v, 3) for k, v in probs.items()} | |
| ) | |
| demo = gr.Interface( | |
| fn=classify_image, | |
| inputs=gr.Image(type="pil", label="Upload an image"), | |
| outputs=[ | |
| gr.Label(label="Predicted Class"), | |
| gr.Number(label="Confidence"), | |
| gr.JSON(label="All Probabilities") | |
| ], | |
| title="Animal Image Classifier", | |
| description="Upload an image and the model will predict the animal." | |
| ) | |
| if __name__ == "__main__": | |
| demo.launch() |