import gradio as gr import tensorflow as tf import numpy as np from tensorflow.keras.preprocessing import image # Cargar el modelo def load_model(): return tf.keras.models.load_model("modelo_frutas_transfer.keras") model = load_model() # Clases del modelo class_names = ['Fresa', 'Limon', 'Manzana', 'Pera', 'Platano', 'Uva'] # Función de predicción usando imagen PIL def predict_image(img): img = img.resize((150, 150)) # Asegurar tamaño img_array = image.img_to_array(img) / 255.0 img_array = np.expand_dims(img_array, axis=0) pred = model.predict(img_array) predicted_class = np.argmax(pred, axis=1)[0] return class_names[predicted_class] # Interfaz Gradio (sin "tool", con PIL) iface = gr.Interface( fn=predict_image, inputs=gr.Image(type="pil", label="📷 Sube una imagen de fruta", height=300), outputs=gr.Textbox(label="🍎 Predicción de la clase"), title="Clasificador de Frutas", description="Sube una imagen de una fruta y el modelo predecirá qué fruta es." ) iface.launch()