Spaces:
Sleeping
Sleeping
import gradio as gr | |
import torch | |
from transformers import AutoImageProcessor, AutoModelForImageClassification | |
from torchvision.transforms import Compose, Resize, ToTensor, Normalize | |
from PIL import Image | |
# Load model and processor | |
model_name = "riyadifirman/klasifikasiburung" | |
processor = AutoImageProcessor.from_pretrained(model_name) | |
model = AutoModelForImageClassification.from_pretrained(model_name) | |
# Define image transformations | |
normalize = Normalize(mean=processor.image_mean, std=processor.image_std) | |
transform = Compose([ | |
Resize((224, 224)), | |
ToTensor(), | |
normalize, | |
]) | |
def predict(image): | |
image = Image.fromarray(image) | |
inputs = transform(image).unsqueeze(0) | |
outputs = model(inputs) | |
logits = outputs.logits | |
predicted_class_idx = logits.argmax(-1).item() | |
return processor.decode(predicted_class_idx) | |
# Create Gradio interface | |
# In newer versions of Gradio, 'inputs' and 'outputs' are directly | |
# specified within the gr.Interface constructor. | |
interface = gr.Interface( | |
fn=predict, | |
inputs=gr.Image(type="numpy"), # Changed from gr.inputs.Image to gr.Image | |
outputs="text", | |
title="Bird Classification", | |
description="Upload an image of a bird to classify it." | |
) | |
if __name__ == "__main__": | |
interface.launch() |