File size: 1,075 Bytes
bc68a98 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
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
# ChatGPT Code: I have no idea what is going on
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() |