File size: 1,335 Bytes
9dc95d8
 
 
 
40bbe53
9dc95d8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
38
import gradio as gr
from transformers import AutoModelForImageClassification, AutoFeatureExtractor
import torch
from PIL import Image
import requests  

# Cargar el modelo y el extractor de características
model_name = "microsoft/swin-small-patch4-window7-224"
model = AutoModelForImageClassification.from_pretrained(model_name)
feature_extractor = AutoFeatureExtractor.from_pretrained(model_name)

def predict(image):
    # Preprocesar la imagen
    inputs = feature_extractor(images=image, return_tensors="pt")
    outputs = model(**inputs)
    logits = outputs.logits
    # Obtener las predicciones
    probs = torch.nn.functional.softmax(logits, dim=-1)
    top_probs, top_labels = torch.topk(probs, 3)
    top_probs = top_probs.detach().numpy().flatten()
    top_labels = top_labels.detach().numpy().flatten()
    # Convertir las etiquetas a nombres
    id2label = model.config.id2label
    labels = [id2label[label] for label in top_labels]
    return {labels[i]: float(top_probs[i]) for i in range(len(labels))}

titulo = "Mi primer demo con Hugging Face"
descripcion = "Este es un demo ejecutado durante la clase de Hugo Martinez."

demo = gr.Interface(
    fn=predict,
    inputs=gr.Image(label="Carga una imagen aquí"),
    outputs=gr.Label(num_top_classes=3),
    title=titulo,
    description=descripcion
)

demo.launch()