Spaces:
Runtime error
Runtime error
import json | |
import gradio as gr | |
import torch | |
from transformers import EfficientFormerImageProcessor, EfficientFormerForImageClassificationWithTeacher | |
# Load preprocessor and pretrained model | |
model_name = "snap-research/efficientformer-l7-300" | |
processor = EfficientFormerImageProcessor.from_pretrained(model_name) | |
model = EfficientFormerForImageClassificationWithTeacher.from_pretrained(model_name) | |
# Load ImageNet idx to label mapping | |
with open("assets/imagenet_1000_idx2labels.json") as f: | |
idx_to_label = json.load(f) | |
def classify_image(img, top_k): | |
# Preprocess input image | |
inputs = processor(images=img, return_tensors="pt") | |
# Inference | |
with torch.no_grad(): | |
outputs = model(**inputs) | |
# Print the top ImageNet1k class prediction | |
logits = outputs.logits | |
scores = torch.nn.functional.softmax(logits, dim=1) | |
top_k_labels = scores.argsort(descending=True)[0][:top_k].cpu().detach().numpy() | |
top_k_labels = list(top_k_labels) | |
return {idx_to_label[str(idx)] : round(float(scores[0, idx]), 4) for idx in top_k_labels} | |
description = """ | |
Gradio demo for <a href="https://huggingface.co/docs/transformers/main/en/model_doc/efficientformer">EfficientFormer</a>, | |
introduced in <a href="https://arxiv.org/abs/2206.01191">EfficientFormer: Vision Transformers at MobileNet Speed</a>. | |
\n\nEfficientFormer is a mobile-friendly image classification model that achieves MobileNet inference speed with impressive performance gains. | |
To use it, simply upload an image and print the top predictions. | |
""" | |
demo = gr.Interface( | |
classify_image, | |
inputs=[gr.Image(), gr.Slider(0, 1000, value=5)], | |
outputs=gr.outputs.Label(), | |
description=description, | |
title="Image Classification with EfficientFormer-L1", | |
examples=[ | |
["assets/halloween-gaf8ad7ebc_1920.jpeg", 5], | |
["assets/IMG_4484.jpeg", 5], | |
["assets/IMG_4737.jpeg", 5], | |
["assets/IMG_4740.jpeg", 5], | |
], | |
) | |
demo.launch() |