from fastai.vision.all import * from huggingface_hub import from_pretrained_fastai import gradio as gr # ------------------------------ # 1. Cargar el modelo desde Hugging Face # ------------------------------- repo_id = "AdrianRevi/Practica1Blindness" # Cambiar si es necesario learner = from_pretrained_fastai(repo_id) labels = learner.dls.vocab # ------------------------------- # 2. Función de predicción # ------------------------------- def predict(img): try: pred, pred_idx, probs = learner.predict(img) return {labels[i]: float(probs[i]) for i in range(len(labels))} except Exception as e: return {"Error": str(e)} # ------------------------------- # 3. Interfaz Gradio # ------------------------------- title = "👁️ Clasificador de Ceguera con FastAI" description = """ Esta aplicación utiliza un modelo de **Aprendizaje Profundo** entrenado con `fastai` para predecir el **grado de ceguera** en imágenes de retina. 📌 El modelo fue entrenado en Google Colab y desplegado en Hugging Face Spaces mediante `from_pretrained_fastai`. 🔍 Puedes subir tu propia imagen o usar uno de los ejemplos de la galería. 📷 La imagen se redimensiona automáticamente a 128x128 píxeles (tamaño de entrada del modelo). """ examples = ['20068.jpg', '20084.jpg'] # Archivos locales en el Space # ------------------------------- # 4. Crear y lanzar interfaz # ------------------------------- demo = gr.Interface( fn=predict, inputs=gr.Image(type="pil", shape=(128, 128), label="Sube una imagen de retina"), outputs=gr.Label(num_top_classes=3, label="Predicción (Top 3)"), examples=examples, title=title, description=description, allow_flagging="never", live=False, theme="default", ) if __name__ == "__main__": demo.launch(show_error=True)