imanolcb commited on
Commit
2a0985b
verified
1 Parent(s): ebb1441

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +20 -22
app.py CHANGED
@@ -1,25 +1,20 @@
1
- import streamlit as st
2
  import tensorflow as tf
3
  import numpy as np
4
  from tensorflow.keras.preprocessing import image
5
  from huggingface_hub import hf_hub_download
6
 
7
- # Cargar el modelo desde Hugging Face
8
- @st.cache_resource # Usamos cache para no cargar el modelo en cada interacci贸n
9
  def load_model():
10
- model_path = "modelo_frutas_transfer.keras"
11
  model = tf.keras.models.load_model(model_path)
12
  return model
13
 
14
  # Cargar el modelo
15
  model = load_model()
16
 
17
- # T铆tulo de la app
18
- st.title('Clasificador de Frutas')
19
- st.write('Sube una imagen de una fruta y el modelo predecir谩 qu茅 fruta es.')
20
-
21
- # Cargar imagen
22
- uploaded_image = st.file_uploader("Elige una imagen", type=['jpg', 'png', 'jpeg'])
23
 
24
  # Funci贸n para preprocesar la imagen y hacer la predicci贸n
25
  def predict_image(image_input):
@@ -35,16 +30,19 @@ def predict_image(image_input):
35
 
36
  # Obtener la clase predicha
37
  predicted_class = np.argmax(pred, axis=1)
38
- return predicted_class
39
-
40
- # Si se carga una imagen
41
- if uploaded_image is not None:
42
- st.image(uploaded_image, caption='Imagen cargada', use_column_width=True)
43
- st.write("")
44
 
45
- # Predecir la clase de la imagen
46
- predicted_class = predict_image(uploaded_image)
47
-
48
- # Mostrar el resultado
49
- st.write(f'Predicci贸n de la clase: {predicted_class}')
50
-
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
  import tensorflow as tf
3
  import numpy as np
4
  from tensorflow.keras.preprocessing import image
5
  from huggingface_hub import hf_hub_download
6
 
7
+ # Cargar el modelo desde Hugging Face Model Hub
 
8
  def load_model():
9
+ model_path = hf_hub_download(repo_id="tu_usuario/tu_repositorio", filename="modelo_frutas_transfer.keras")
10
  model = tf.keras.models.load_model(model_path)
11
  return model
12
 
13
  # Cargar el modelo
14
  model = load_model()
15
 
16
+ # Aqu铆 definimos el mapeo de las clases, aseg煤rate de que las clases est茅n correctamente ordenadas seg煤n tu dataset
17
+ class_names = ['Manzana', 'Banana', 'Naranja', 'Pera', 'Uva'] # Sustituye esto por tus clases reales
 
 
 
 
18
 
19
  # Funci贸n para preprocesar la imagen y hacer la predicci贸n
20
  def predict_image(image_input):
 
30
 
31
  # Obtener la clase predicha
32
  predicted_class = np.argmax(pred, axis=1)
 
 
 
 
 
 
33
 
34
+ # Mapear la clase al nombre
35
+ predicted_class_name = class_names[predicted_class[0]]
36
+ return predicted_class_name
37
+
38
+ # Interfaz Gradio
39
+ iface = gr.Interface(
40
+ fn=predict_image,
41
+ inputs=gr.inputs.Image(type="file", label="Cargar imagen de fruta"),
42
+ outputs=gr.outputs.Textbox(label="Predicci贸n de la clase"),
43
+ title="Clasificador de Frutas",
44
+ description="Sube una imagen de una fruta y el modelo predecir谩 qu茅 fruta es."
45
+ )
46
+
47
+ # Iniciar la interfaz
48
+ iface.launch()