3D-Face-GCNs/
├── data/
│ ├── processed/
│ └── raw/
├── models/
│ ├── __init__.py
│ ├── gcn_model.py
│ └── loss.py
├── scripts/
│ ├── train.py
│ └── evaluate.py
├── config/
│ └── config.yaml
├── README.md
└── requirements.txt
El proyecto se organiza en varias carpetas clave:
- data/: Contiene tanto los datos sin procesar como los datos ya transformados para su uso en el modelo.
- models/: Alberga las definiciones de arquitectura. El archivo
gcn_model.pyimplementa la red convolucional de grafos, mientras queloss.pydefine las funciones de pérdida utilizadas durante el entrenamiento. - scripts/: Incluye los ejecutables principales.
train.pygestiona el entrenamiento del modelo yevaluate.pyse encarga de la validación y métricas de rendimiento. - config/: Contiene
config.yaml, que centraliza todos los parámetros configurables del proyecto. - README.md: Documentación general del repositorio.
- requirements.txt: Lista de dependencias de Python necesarias para ejecutar el proyecto.
Archivos de Ejecución Principal
Entrenamiento: scripts/train.py
Este script es responsable de iniciar el proceso de entrenamiento del modelo de reconocimiento facial 3D. Sus responsabilidades principales son:
- Cargar la configuración desde el archivo YAML.
- Preparar los cargadores de datos e instanciar la arquitectura del modelo.
- Ejecutar el ciclo de entrenamiento, que incluye propagación hacia adelante, cálculo de la función de pérdida, retropropagación y actualización de pesos.
- Persistir los checkpoints del modelo y los registros de progreso en disco.
Evaluación: scripts/evaluate.py
Este script permite medir el desempeño de un modelo previamente entrenado. Sus funciones incluyen:
- Leer la configuración del proyecto desde
config.yaml. - Cargar los pesos del modelo entrenado desde el disco.
- Realizar inferencias sobre el conjunto de prueba y calcular las métricas de evaluación.
- Mostrar los resultados obtenidos.
Archivo de Configuración
config/config.yaml
El archivo YAML de configuración centraliza todos los hiperparámetros necesarios para el entrenamiento y la evaluación. Los parámetros más relevantes son:
- data_path: Ruta al directorio de datos.
- model_params: Hiperparámetros de la arquitectura, como dimensiones de entrada, tamaño de capas ocultas y dimensiones de salida.
- train_params: Configuración del entrenamiento, incluyendo tasa de aprendizaje, tamaño de lote y número de épocas.
- eval_params: Parámetros de evaluación, como la ruta del dataset de prueba y las métricas a calcular.
Ejemplo de configuración:
dataset:
input_dir: "data/processed"
architecture:
feature_dim: 35709
latent_dim: 256
output_dim: 80
optimization:
lr: 0.001
batch_sz: 32
max_epochs: 100
validation:
test_dir: "data/processed"
metrics: ["accuracy", "loss"]
La modificación de este archivo permite adaptar fácilmente el comportamiento del sistema sin necesidad de alterar el código fuente.