Conversión de imágenes a tensores con PyTorch
Clase 9 de 15 • Curso de Redes Neuronales Convolucionales
Resumen
Transformar imágenes a tensores es fundamental para procesarlas mediante redes neuronales con PyTorch. En este tutorial aprenderás cómo convertir imágenes en tensores y prepararlas adecuadamente para un entrenamiento eficaz utilizando GPU.
¿Cómo preparar la GPU y habilitar CUDA?
Al utilizar redes neuronales en PyTorch, especialmente cuando manejamos muchas imágenes, es importante aprovechar la capacidad de cómputo paralela que ofrece una GPU. Para ello, verificamos que CUDA esté habilitado y asignamos el device correcto:
- Instalamos dependencias (PyTorch, numpy y matplotlib).
- Habilitamos CUDA con un comando específico proporcionado por PyTorch.
- Seleccionamos el device GPU o CPU disponibles. Normalmente, al conectar una GPU (como T4), el predeterminado será GPU.
¿Qué transformaciones aplicamos a las imágenes?
Las imágenes originalmente no están listas para procesos neuronales, necesitan pasar por ciertas transformaciones cruciales:
- Conversión a tensores: Transforma la imagen en un tensor que la red neuronal pueda entender.
- Normalización: A partir de la media y desviación estándar, homogenizamos las gamas de colores para mejorar los resultados.
Estas transformaciones pueden ser distintas en las etapas de entrenamiento y validación, aunque generalmente coinciden.
¿Cómo cargar el dataset correctamente?
Tienes dos opciones prácticas para cargar tus imágenes:
- Desde un archivo local (.zip):
- Listas tu archivo con el comando ls.
-
Copias la ruta del archivo descomprimido.
-
Desde Google Drive:
- Accede a Drive/MyDrive.
- Copia y pega la ruta del directorio por medio de clic derecho.
Luego aplicas las transformaciones en los directorios especificando claramente las carpetas "entrenamiento" y "validación" dentro de tu dataset.
¿Cómo elegir correctamente los parámetros de procesamiento?
Existen tres parámetros claves relacionados directamente con tu hardware:
- Batch size (tamaño del lote): Grupos de imágenes procesadas simultáneamente. La GPU (como la T4) permite un paralelismo útil para acelerar el proceso de entrenamiento. Se recomienda un valor bajo como 4.
- Shuffle (barajado): Garantiza que la distribución de imágenes sea aleatoria para cada iteración.
- Num workers: Mejora la carga de datos paralelizando tareas. Recomendación inicial es 2 o 4 dependiendo del hardware.
Pueden verse las clases y dimensiones del dataset para asegurar que todo cargó correctamente.
¿Tienes preguntas sobre estas configuraciones? ¡Coméntanos tus inquietudes y dudas debajo!