Ariel013 commited on
Commit
91c0b3e
verified
1 Parent(s): 40472a6

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +47 -33
app.py CHANGED
@@ -18,60 +18,74 @@ def preprocess_image(image):
18
 
19
  def predict(image):
20
  """Realizar predicci贸n y formatear resultados"""
 
 
 
21
  processed_img = preprocess_image(image)
22
  preds = model.predict(np.expand_dims(processed_img, axis=0))[0]
23
  return {label: float(preds[i]) for i, label in enumerate(cifar10_labels)}
24
 
25
- # Configurar ejemplos con miniaturas y etiquetas
26
  examples = [
27
- "ejemplos/avion.jpg",
28
- "ejemplos/automovil.jpg",
29
- "ejemplos/pajaro.jpg",
30
- "ejemplos/gato.jpg",
31
- "ejemplos/venado.jpg",
32
- "ejemplos/perro.jpg",
33
- "ejemplos/rana.jpg",
34
- "ejemplos/caballo.jpg",
35
- "ejemplos/barco.jpg",
36
- "ejemplos/camion.jpg"
37
  ]
38
 
39
- # Construir interfaz con m煤ltiples fuentes de entrada
40
- with gr.Blocks(theme=gr.themes.Soft(), css=".example-image {max-height: 150px}") as app:
41
- gr.Markdown("# 馃摲 Clasificador CIFAR-10 Multifuente")
42
 
43
  with gr.Row():
44
  with gr.Column():
45
- # Entrada de imagen con m煤ltiples fuentes
46
  input_image = gr.Image(
47
  sources=["upload", "webcam", "clipboard"],
48
  type="pil",
49
- label="Selecciona, toma foto o pega imagen (Ctrl+V)",
50
- height=300
51
  )
52
- submit_btn = gr.Button("Clasificar 馃殌", variant="primary")
 
 
53
 
54
  with gr.Column():
55
  output_label = gr.Label(
56
  label="Resultados",
57
- num_top_classes=10,
58
- container=True,
59
  show_label=True
60
  )
61
 
62
- # Secci贸n de ejemplos con miniaturas y etiquetas
63
- gr.Markdown("## Ejemplos del Dataset (10 categor铆as)")
64
- with gr.Row(variant="panel"):
65
- for label, example in zip(cifar10_labels, examples):
66
- with gr.Column(scale=1, min_width=120):
67
- gr.Image(
68
- example,
69
- label=label.capitalize(),
70
- show_label=True,
71
- container=True,
72
- elem_classes="example-image"
73
- )
 
 
 
 
 
 
 
 
 
 
 
 
74
 
75
- # Lanzar aplicaci贸n
76
  if __name__ == "__main__":
77
  app.launch()
 
18
 
19
  def predict(image):
20
  """Realizar predicci贸n y formatear resultados"""
21
+ if image is None:
22
+ raise gr.Error("隆Por favor sube una imagen o toma una foto!")
23
+
24
  processed_img = preprocess_image(image)
25
  preds = model.predict(np.expand_dims(processed_img, axis=0))[0]
26
  return {label: float(preds[i]) for i, label in enumerate(cifar10_labels)}
27
 
28
+ # Configurar ejemplos
29
  examples = [
30
+ ["ejemplos/avion.jpg"],
31
+ ["ejemplos/automovil.jpg"],
32
+ ["ejemplos/pajaro.jpg"],
33
+ ["ejemplos/gato.jpg"],
34
+ ["ejemplos/venado.jpg"],
35
+ ["ejemplos/perro.jpg"],
36
+ ["ejemplos/rana.jpg"],
37
+ ["ejemplos/caballo.jpg"],
38
+ ["ejemplos/barco.jpg"],
39
+ ["ejemplos/camion.jpg"]
40
  ]
41
 
42
+ # Construir interfaz
43
+ with gr.Blocks(theme=gr.themes.Soft()) as app:
44
+ gr.Markdown("# 馃摲 Clasificador CIFAR-10")
45
 
46
  with gr.Row():
47
  with gr.Column():
 
48
  input_image = gr.Image(
49
  sources=["upload", "webcam", "clipboard"],
50
  type="pil",
51
+ label="Entrada de imagen",
52
+ height=250
53
  )
54
+ with gr.Row():
55
+ submit_btn = gr.Button("Predecir", variant="primary")
56
+ clear_btn = gr.Button("Limpiar")
57
 
58
  with gr.Column():
59
  output_label = gr.Label(
60
  label="Resultados",
61
+ num_top_classes=3,
 
62
  show_label=True
63
  )
64
 
65
+ # Ejemplos con miniaturas
66
+ gr.Markdown("## Ejemplos de categor铆as")
67
+ with gr.Row():
68
+ for example in examples:
69
+ gr.Examples(
70
+ examples=example,
71
+ inputs=input_image,
72
+ label=cifar10_labels[examples.index(example)].capitalize(),
73
+ examples_per_page=10
74
+ )
75
+
76
+ # Conectar eventos
77
+ submit_btn.click(
78
+ fn=predict,
79
+ inputs=input_image,
80
+ outputs=output_label,
81
+ api_name="predict"
82
+ )
83
+
84
+ clear_btn.click(
85
+ fn=lambda: [None, None],
86
+ inputs=None,
87
+ outputs=[input_image, output_label]
88
+ )
89
 
 
90
  if __name__ == "__main__":
91
  app.launch()