File size: 1,167 Bytes
ca1d264
 
 
 
b174fde
 
328df23
ca1d264
 
132e68e
 
ca1d264
 
b174fde
 
 
ca1d264
 
 
b174fde
 
fece23c
b174fde
 
 
ca1d264
 
 
 
b174fde
 
ca1d264
b174fde
ca1d264
 
b174fde
ca1d264
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 numpy as np
import gradio as gr
from transformers import AutoImageProcessor, AutoModelForImageClassification
from PIL import Image
import torch
import pandas as pd



processor = AutoImageProcessor.from_pretrained("Moreza009/HF_CVcourse_FoodClassifier")
model = AutoModelForImageClassification.from_pretrained("Moreza009/HF_CVcourse_FoodClassifier")

def classifier(image):
    if isinstance(image, np.ndarray):
        image = Image.fromarray(image)
    #image = Image.open(image)
    inputs = processor(images=image, return_tensors="pt")
    outputs = model(**inputs)
    logits = outputs.logits
    probabilities = torch.nn.functional.softmax(logits, dim=-1)
    predicted_class_idxs = probabilities.topk(5, dim=-1)[1].tolist()[0]
    probabilities = sorted(probabilities.tolist()[0],  reverse=True)[:5]
    classes = [model.config.id2label[idx] for idx in predicted_class_idxs]
    df = pd.DataFrame({'food':classes , 'posibility': probabilities})
    return df.to_html(index=False)


food = gr.Interface(
    fn=classifier,
    inputs=gr.Image(type="pil"),
    outputs="html",
    title = "what's your eating?",
    description = " :)  "
)


food.launch()