4. Análisis detallado de código
Esta sección disecciona el código real del proyecto, archivo por archivo. Para cada módulo relevante se cubre: propósito, flujo interno, funciones (entradas/salidas/complejidad/casos borde), clases y los bloques de código críticos explicados por su intención, no solo su sintaxis.
Cómo está organizada
Por volumen, se divide en subpáginas temáticas que siguen las capas del proyecto:
| Subpágina | Cubre | Archivos |
|---|---|---|
| Configuración y rutas | El contrato de configuración y resolución de rutas | config/dataset.yaml, src/config.py |
| Capa de datos | Carga, dataset, splits, transforms, sampler | src/data/* |
| Modelos y registry | Catálogo de arquitecturas, patrón registry | src/models/* |
| Entrenamiento | El loop funcional y las utilidades compartidas | train_baselines.py, train.py, src/training/common.py |
| Explicabilidad | LIME, Grad-CAM, reportes visuales | src/explainability/*, explain_*.py |
| Scripts de soporte | Predicción, checks, dataset, Modal, cleanup | predict.py, scripts/checks/*, scripts/dataset/*, scripts/modal/* |
Convenciones de lectura del código (obligatorias para modificar)
Estas reglas están grabadas en CLAUDE.md y las skills del proyecto. Interiorízalas antes de tocar nada:
- Un único punto de entrada a imagen. Toda lectura de imagen pasa por
load_and_normalize_image()(datos). No abrir imágenes con PIL en otro lugar. - Rutas nunca hardcodeadas. Dataset fuente vía
get_dataset_root(); artefactos víaget_output_root()(configuración). Nunca usar la constanteDATASET_ROOTdirecta (esPath | None). - Config centralizada. Clases,
target_size, seed y perfil baseline viven enconfig/dataset.yaml. No hardcodear constantes de dominio. - Sin
sys.path.append. El paquete es editable (pip install -e .); los importssrc.*resuelven directo. target_sizees(alto, ancho)— convención(h, w)de torchvision. ElResizecon distorsión de aspecto es intencional y consistente entre train/eval; no "corregirlo" a Resize+CenterCrop.
Grafo de dependencias entre módulos
Empieza por Configuración y rutas: es la base que todo lo demás consume.