1 minute read

Week 39 – Optimización de Datasets, Balanceo de Datos y Migración a HDF5

Trabajo realizado

  • Balanceo de Dataset (Binning): Se desarrolló un script en Pandas para corregir el desbalance masivo hacia la conducción en línea recta (steer 0.0). Se aplicó una técnica de agrupamiento (binning) y submuestreo aleatorio para garantizar que la red neuronal no se vuelva perezosa y aprenda efectivamente a negociar las curvas.
  • Optimización de Frecuencia de Muestreo: Se ajustó el tick de extracción del CARLA Recorder de 50 FPS (20 ms) a 10 FPS (100 ms). Esto elimina la altísima redundancia temporal (correlación entre cuadros adyacentes) y mejora drásticamente la densidad de información geométrica del dataset.
  • Migración a Arquitectura HDF5: Para solucionar el cuello de botella de lectura de disco (I/O starvation), se reemplazó el formato tradicional de imágenes JPG sueltas y CSV por un único archivo binario masivo (.h5) utilizando la librería h5py.
  • Aceleración de Hardware (PyTorch + AMD): Se rediseñó la clase Dataset para realizar “Carga Perezosa” (Lazy Loading) del archivo HDF5. Se configuró el DataLoader con num_workers=8 y pin_memory=True para maximizar el uso del procesador Ryzen 9 e inundar rápidamente la VRAM de la gráfica RX 6750 XT utilizando ROCm.

Configuraciones del Pipeline de Datos

Componente Configuración / Valor
Frecuencia de Extracción 10 FPS (Delta: 100 ms)
Estrategia de Balanceo Undersampling por Bins (Máx. muestras por bin)
Formato de Almacenamiento Archivo Binario HDF5 (.h5)
Aceleración Dataloader pin_memory=True, num_workers=8
Entorno de GPU AMD ROCm (HSA_OVERRIDE_GFX_VERSION=10.3.0)

Resultados de Optimización

Los tiempos de carga por época se han reducido de minutos a segundos gracias a la lectura secuencial en RAM del archivo binario, permitiendo iterar modelos de PilotNet a una velocidad significativamente mayor sin saturar el procesador principal.