Precisión mixta con autocast y GradScaler
Aritmética de media precisión para grandes mejoras de velocidad
Precisión mixta con autocast y GradScaler es una lección gratuita de Deep Learning Academy en CoddyKit. Esta es la lección 1 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.
Qué significa la precisión mixta
De forma predeterminada, PyTorch realiza los cálculos con números de coma flotante de 32 bits. La precisión mixta ejecuta muchas operaciones en 16 bits, lo que es más rápido y utiliza mucha menos memoria.
Por qué la precisión media es más rápida
Las GPU modernas tienen tensor cores especiales optimizados para cálculos de 16 bits. Usar datos de precisión media puede acelerar el entrenamiento dos o tres veces con una pequeña pérdida de precisión.
El inconveniente de los 16 bits
La precisión media tiene un rango muy reducido, por lo que los valores de gradiente muy pequeños pueden redondearse a cero. Este underflow silencioso detiene el aprendizaje si no hace nada al respecto.
Conozca autocast
Envuelva el forward pass en autocast y PyTorch elegirá automáticamente una precisión segura para cada operación. No tendrá que convertir tensores manualmente.
with torch.autocast(device_type='cuda'):
out = model(x)Qué envuelve autocast
Coloque únicamente el forward pass y la pérdida dentro de autocast. La llamada backward permanece fuera del bloque, donde PyTorch gestiona la precisión por usted.
with torch.autocast(device_type='cuda'):
out = model(x)
loss = loss_fn(out, y)Conozca GradScaler
GradScaler corrige el underflow multiplicando la pérdida por un factor grande antes de backward, para que los gradientes pequeños sean suficientemente grandes como para sobrevivir en 16 bits.
scaler = torch.cuda.amp.GradScaler()Escalar la pérdida
En lugar de loss.backward(), llame a scaler.scale(loss).backward(). El scaler aumenta primero la pérdida para que los gradientes resultantes no desaparezcan.
scaler.scale(loss).backward()Avanzar con el scaler
Ejecute el optimizador con scaler.step, que deshace silenciosamente la escala de los gradientes antes de aplicar la actualización.
scaler.step(optimizer)Actualizar el factor de escala
Termine cada paso con scaler.update(). Aumenta la escala cuando todo es estable y la reduce si detecta un overflow.
scaler.update()El paso completo de AMP
Juntas, estas llamadas forman una iteración limpia de AMP: poner a cero los gradientes, forward con autocast, backward escalado, paso del scaler y, después, actualización.
optimizer.zero_grad()
with torch.autocast(device_type='cuda'):
loss = loss_fn(model(x), y)
scaler.scale(loss).backward()
scaler.step(optimizer)
scaler.update()Cuándo utilizarlo
La precisión mixta destaca en una GPU NVIDIA reciente con lotes grandes. En una CPU normal aporta pocos beneficios, así que resérvela para entrenamientos reales.
Comprobación rápida
Ha activado autocast, pero los gradientes pequeños siguen desapareciendo. ¿Qué herramienta lo soluciona?
Resumen
Envuelva el forward en autocast para realizar cálculos rápidos en 16 bits y use después GradScaler para escalar, avanzar y actualizar, de modo que los gradientes pequeños sobrevivan. ⚡
Aprende Python con un tutor de IA — gratis
Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.
- Cursos
- 30
- Lecciones
- 120
Preguntas frecuentes
¿La lección «Precisión mixta con autocast y GradScaler» es gratis?
Sí — el texto completo de «Precisión mixta con autocast y GradScaler» 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 «Precisión mixta con autocast y GradScaler»?
Aritmética de media precisión para grandes mejoras de velocidad 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 1 de 4.
¿Cuánto tiempo toma la lección «Precisión mixta con autocast y GradScaler»?
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