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()