| import gradio as gr |
| from transformers import AutoModelForImageClassification, AutoImageProcessor |
| import torch |
| import numpy as np |
|
|
| examples = [ |
| "shrimp.png", |
| "adverarial.png" |
| ] |
|
|
| hugging_face_model = "Kaludi/food-category-classification-v2.0" |
| model = AutoModelForImageClassification.from_pretrained(hugging_face_model) |
| processor = AutoImageProcessor.from_pretrained(hugging_face_model) |
|
|
| def predict(img): |
| inputs = processor(images=img, return_tensors="pt") |
| outputs = model(**inputs) |
| logits = outputs.logits |
|
|
|
|
| |
| probabilities = torch.softmax(logits, dim=1)[0].tolist() |
| labels = model.config.id2label |
| top_10_indices = np.argsort(probabilities)[::-1][:10] |
| top_10_labels = [labels[i] for i in top_10_indices] |
| top_10_probabilities = [probabilities[i] for i in top_10_indices] |
| label_confidences = {label: prob for label, prob in zip(top_10_labels, top_10_probabilities)} |
| return label_confidences |
|
|
| demo = gr.Interface( |
| fn=predict, |
| inputs=gr.Image(), |
| outputs=gr.Label(), |
| examples=examples |
| ) |
|
|
| demo.launch() |