0Pricing
Deep Learning Academy · Урок

Смешанная точность с autocast и GradScaler

Вычисления с половинной точностью для значительного ускорения

«Смешанная точность с autocast и GradScaler» — бесплатный урок Deep Learning Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Deep Learning Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Deep Learning Academy содержит 4 уроков всего.

Части этого урока еще не переведены и отображаются на английском.

What Mixed Precision Means

By default PyTorch does math in 32-bit floats. Mixed precision runs many operations in 16-bit instead, which is faster and uses far less memory.

Why Half Precision Is Faster

Modern GPUs have special tensor cores tuned for 16-bit math. Feeding them half-precision data can speed up training two or three times with little accuracy loss.

The Catch With 16-Bit

Half precision has a tiny range, so very small gradient values can round down to zero. That silent underflow stalls learning if you do nothing about it.

Meet autocast

Wrap your forward pass in autocast and PyTorch picks a safe precision per operation automatically. You never cast tensors by hand.

with torch.autocast(device_type='cuda'):
    out = model(x)

What autocast Wraps

Put only the forward pass and loss inside autocast. The backward call stays outside the block, where PyTorch handles precision for you.

with torch.autocast(device_type='cuda'):
    out = model(x)
    loss = loss_fn(out, y)

Meet GradScaler

A GradScaler fixes underflow by multiplying the loss by a large factor before backward, so small gradients stay big enough to survive in 16-bit.

scaler = torch.cuda.amp.GradScaler()

Scale the Loss

Instead of loss.backward(), call scaler.scale(loss).backward(). The scaler inflates the loss first so the resulting gradients do not vanish.

scaler.scale(loss).backward()

Step Through the Scaler

Run the optimizer with scaler.step, which quietly unscales the gradients back to normal size before applying the update.

scaler.step(optimizer)

Update the Scale Factor

Finish each step with scaler.update(). It grows the scale when things are stable and shrinks it if it ever spots an overflow.

scaler.update()

The Full AMP Step

Together these calls form one clean AMP iteration: zero grads, autocast forward, scaled backward, scaler step, then update.

optimizer.zero_grad()
with torch.autocast(device_type='cuda'):
    loss = loss_fn(model(x), y)
scaler.scale(loss).backward()
scaler.step(optimizer)
scaler.update()

When To Reach For It

Mixed precision shines on a recent NVIDIA GPU with large batches. On a plain CPU it gives little benefit, so save it for real training runs.

Quick Check

You enabled autocast but tiny gradients keep vanishing. What tool fixes that?

Recap

Wrap the forward in autocast for fast 16-bit math, then use a GradScaler to scale, step, and update so tiny gradients survive. ⚡

Часто задаваемые вопросы

Урок «Смешанная точность с autocast и GradScaler» бесплатный?

Да — полный текст урока «Смешанная точность с autocast и GradScaler» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Deep Learning Academy, подпишись на CoddyKit PRO. Курс Deep Learning Academy содержит 4 уроков всего.

Чему я научусь в уроке «Смешанная точность с autocast и GradScaler»?

Вычисления с половинной точностью для значительного ускорения Ты практикуешь Deep Learning Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Deep Learning Academy?

Предыдущий опыт не требуется. Deep Learning Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Смешанная точность с autocast и GradScaler»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Deep Learning Academy?

Да. Каждый урок Deep Learning Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Смешанная точность с autocast и GradScaler
  2. Накопление градиентов для больших пакетов
  3. Профилируйте узкое место
  4. Сократите использование памяти GPU
← Назад к Deep Learning Academy