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