Este proyecto implementa una Red Neuronal Artificial (MLP) construida desde cero con PyTorch para clasificar el famoso dataset de flores Iris. El modelo es capaz de predecir la especie de una flor (Setosa, Versicolor o Virginica) basándose en las 4 medidas de sus sépalos y pétalos.
Durante el desarrollo de este modelo, se han aplicado buenas prácticas de Deep Learning y resolución de problemas específicos del entorno:
- Gestión de Datos por Lotes (Batches): Implementación de
DataLoadermanejando correctamente el multiprocesamiento (num_workers=0para compatibilidad en entornos Windows/Jupyter). - Entrenamiento y Validación: Estructuración limpia del bucle de entrenamiento, separando correctamente la fase de optimización de la fase de validación con
torch.no_grad()para maximizar el rendimiento de la memoria. - Cálculo de Precisión Vectorial: Uso avanzado de álgebra de tensores (
torch.argmaxcondim=1) para comparar correctamente matrices 2D de predicciones por lotes contra etiquetas con codificación One-Hot. - Visualización de Curvas de Aprendizaje: Integración con
matplotlibpara graficar la evolución de la pérdida (Loss) y el porcentaje de precisión (Accuracy) a lo largo de las 100 épocas. - Monitorización Profesional: Registro de métricas binarias exportadas a TensorBoard (
SummaryWriter) para análisis y auditoría del entrenamiento en tiempo real. - Persistencia del Modelo: Extracción y guardado del
state_dict(pesos y sesgos optimizados) en un archivo.pthpara permitir predicciones futuras sin necesidad de reentrenar.
├── modelos/
│ └── modelo_iris_entrenado.pth # Archivo con los pesos finales de la red (~96% precisión)
├── runs/
│ └── experimento_iris/ # Logs binarios generados para TensorBoard
├── red_neuronal_iris.ipynb # Código fuente interactivo con el modelo y los bucles
└── README.md # Documentación del proyecto
Puedes explorar el código completo, las explicaciones paso a paso y las gráficas generadas directamente en el cuaderno principal del proyecto haciendo clic en el siguiente enlace:
👉 Abrir el Jupyter Notebook: red_neuronal_iris.ipynb
💡 Nota: GitHub renderiza los archivos
.ipynbde forma nativa, por lo que puedes visualizar todo el código, los comentarios y los resultados de las ejecuciones directamente desde tu navegador sin necesidad de descargar nada.
Sigue estos pasos para clonar el proyecto y ejecutar el modelo en tu máquina local:
El módulo venv viene instalado por defecto al instalar Python en Windows y macOS. Sin embargo, si usas una distribución de Linux basada en Debian/Ubuntu y te da error al intentar crearlo, instálalo manualmente con este comando:
sudo apt update
sudo apt install python3-venvAbre tu terminal y descarga el código:
git clone [https://github.com/Alexisfpy/Red-Neuronal-Iris.git(https://github.com/Alexisfpy/Red-Neuronal-Iris.git)
cd Red-Neuronal-Iris
python -m venv .venv.venv\Scripts\activatesource .venv/bin/activateEste proyecto utiliza un archivo pyproject.toml para gestionar sus paquetes. Con el entorno virtual activado, instala todas las dependencias automáticamente ejecutando:
pip install .o
uv syncUna vez instalado todo, arranca el entorno de Jupyter para ver el código fuente y ejecutar la red neuronal:
jupyter notebook red_neuronal_iris.ipynbEste proyecto está bajo la Licencia MIT - mira el archivo LICENSE para más detalles.