BytesofSurajm's picture
Create app.py
53e7291 verified
import gradio as gr
from transformers import pipeline
# 1. Choose a Hugging Face image classification model
# You can change this later (for digits, beans, general images etc.)
MODEL_ID = "nateraw/vit-base-beans" # demo model trained on 3 types of beans
# 2. Create a pipeline (this downloads and loads the model)
classifier = pipeline("image-classification", model=MODEL_ID)
# 3. Define a prediction function Gradio will use
def predict(image):
"""
image: PIL.Image (Gradio handles conversion)
returns: dict {label: score} for the top classes
"""
results = classifier(image)
# Gradio's Label component likes a dict: {label: confidence}
output = {r["label"]: float(r["score"]) for r in results}
return output
# 4. Build the Gradio Interface
demo = gr.Interface(
fn=predict,
inputs=gr.Image(type="pil", label="Upload or draw an image"),
outputs=gr.Label(num_top_classes=3, label="Predictions"),
title="Vision Transformer Image Classifier",
description=(
"Upload a small image and this app will classify it using a pretrained "
"Vision Transformer model from Hugging Face."
),
examples=[], # you can add example images later
)
# 5. Run the app (Spaces will call launch() automatically)
if __name__ == "__main__":
demo.launch()