Deep Learning Academy · Lección

Precisión mixta con autocast y GradScaler

Aritmética de media precisión para grandes mejoras de velocidad

Lección 1 de 413 pasos

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. ⚡

Gratis para empezar

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

  1. Precisión mixta con autocast y GradScaler
  2. Acumulación de gradientes para lotes grandes
  3. Perfilar el cuello de botella
  4. Reduzca el uso de memoria de la GPU
← Volver a Deep Learning Academy