Reduzca el uso de memoria de la GPU
Checkpointing y gestión más inteligente de tensores
Reduzca el uso de memoria de la GPU es una lección gratuita de Deep Learning Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Deep Learning Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Deep Learning Academy incluye 4 lecciones en total.
El temido OOM
Si se queda sin memoria de GPU, el entrenamiento se detiene con un error de out-of-memory. La buena noticia es que varias tácticas sencillas liberan espacio rápidamente.
Dónde se va la memoria
La GPU almacena los pesos del modelo, los gradientes, el estado del optimizador y las activaciones guardadas para la propagación hacia atrás. Las activaciones suelen ocupar más espacio.
Reduzca el lote
La solución más rápida es reducir el batch size. Menos muestras por paso significa menos activaciones que almacenar, y la acumulación puede recuperar el tamaño efectivo.
Sin gradientes durante la inferencia
Durante la evaluación no necesita gradientes. Envolver la inferencia en torch.no_grad evita almacenar activaciones y ahorra mucha memoria.
with torch.no_grad():
preds = model(x)La precisión mixta también ayuda aquí
Los tensores de media precisión simplemente ocupan menos espacio. Activar autocast reduce aproximadamente a la mitad la memoria de activaciones y pesos durante el entrenamiento.
with torch.autocast(device_type='cuda'):
out = model(x)Checkpointing de gradientes
El checkpointing intercambia cómputo por memoria: descarta la mayoría de las activaciones y las vuelve a calcular durante la propagación hacia atrás en lugar de conservarlas todas.
from torch.utils.checkpoint import checkpointAplique checkpointing
Envuelva un bloque costoso en checkpoint para reconstruir sus activaciones durante la propagación hacia atrás. Ahorrará memoria a cambio de realizar cálculos adicionales.
out = checkpoint(heavy_block, x)Desconecte lo que registra
Conservar un tensor de pérdida mantiene todo su grafo en memoria. Llame a .item() para registrar solo el número y permitir que se libere el grafo.
running_loss += loss.item()Use set_to_none
Pase set_to_none a zero_grad para liberar los tensores de gradientes en lugar de limitarse a rellenarlos con ceros, y así liberar su memoria entre pasos.
optimizer.zero_grad(set_to_none=True)Limpie la caché
PyTorch almacena en caché los bloques liberados para reutilizarlos. Cuando realmente necesite recuperar espacio, empty_cache lo devuelve a la GPU, aunque rara vez soluciona las fugas reales.
torch.cuda.empty_cache()Inspeccione su uso
Compruebe cuánto mantiene ocupado con memory_allocated. Observar este número mientras ajusta el modelo confirma qué cambio liberó espacio realmente.
print(torch.cuda.memory_allocated())Comprobación rápida
¿Qué técnica ahorra memoria al volver a calcular las activaciones durante la propagación hacia atrás?
Resumen
Evite quedarse sin memoria reduciendo los lotes y usando no_grad para la inferencia, autocast, checkpointing de gradientes y set_to_none. Mida con memory_allocated. 🧹
Preguntas frecuentes
¿La lección «Reduzca el uso de memoria de la GPU» es gratis?
Sí — el texto completo de «Reduzca el uso de memoria de la GPU» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Deep Learning Academy, actualiza a CoddyKit PRO. El curso de Deep Learning Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Reduzca el uso de memoria de la GPU»?
Checkpointing y gestión más inteligente de tensores Practicas Deep Learning Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Deep Learning Academy?
No se requiere experiencia previa. Deep Learning Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «Reduzca el uso de memoria de la GPU»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Deep Learning Academy?
Sí. Cada lección de Deep Learning Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Precisión mixta con autocast y GradScaler
- Acumulación de gradientes para lotes grandes
- Perfilar el cuello de botella
- Reduzca el uso de memoria de la GPU