RodrigoGariv commited on
Commit
4800f22
·
verified ·
1 Parent(s): e1cc279

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +39 -0
app.py ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import torch
3
+ from torchvision import models, transforms
4
+ from PIL import Image
5
+
6
+ # Carga modelo base preentrenado
7
+ model = models.mobilenet_v2(pretrained=True)
8
+ model.eval()
9
+
10
+ # Transformaciones de imagen
11
+ transform = transforms.Compose([
12
+ transforms.Resize(256),
13
+ transforms.CenterCrop(224),
14
+ transforms.ToTensor()
15
+ ])
16
+
17
+ # Labels simplificados (imagenet)
18
+ # Nota: La lista de etiquetas está incompleta en la imagen.
19
+ # Deberías obtener la lista completa de etiquetas de ImageNet si necesitas todas.
20
+ labels = ["tench", "goldfish", "great white shark", "...", "Egyptian cat", "tabby cat", "tiger cat", "Persian cat", ...]
21
+
22
+ def clasificar(imagen):
23
+ # Aplica las transformaciones y añade una dimensión de batch
24
+ img_t = transform(imagen).unsqueeze(0)
25
+ # Desactiva el cálculo de gradientes para la inferencia
26
+ with torch.no_grad():
27
+ # Pasa la imagen por el modelo
28
+ salida = model(img_t)
29
+ # Obtiene el índice de la clase con la mayor probabilidad
30
+ idx = salida[0].argmax().item()
31
+ # Devuelve la etiqueta correspondiente a ese índice
32
+ return labels[idx]
33
+
34
+ # Crea la interfaz de Gradio
35
+ gr.Interface(fn=clasificar,
36
+ inputs=gr.Image(type="pil"), # La entrada es una imagen PIL
37
+ outputs="label", # La salida es una etiqueta de texto
38
+ title="Clasificador de Imágenes",
39
+ description="Clasifica imágenes usando MobileNetV2").launch()