0Pricing
Deep Learning Academy · Pelajaran

Akumulasi Gradien untuk Batch Besar

Simulasikan batch besar pada GPU kecil

Akumulasi Gradien untuk Batch Besar adalah pelajaran Deep Learning Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Deep Learning Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Deep Learning Academy mencakup 4 pelajaran total.

Bagian dari pelajaran ini belum diterjemahkan dan ditampilkan dalam bahasa Inggris.

The Big-Batch Problem

Large batches often train more smoothly, but they also need lots of GPU memory. A small card simply cannot hold a giant batch at once.

The Core Trick

Gradient accumulation splits one big batch into small chunks. You add up their gradients and update once, as if the whole batch ran together.

Gradients Already Accumulate

PyTorch adds each backward pass into .grad rather than replacing it. This default behavior is exactly what accumulation relies on.

Pick an Accumulation Count

Choose how many mini-batches make one update. With accum_steps of four, four small batches behave like one batch four times larger.

accum_steps = 4

Do Not Zero Every Step

The key change is timing: zero_grad only at the start of an accumulation cycle, not after every single mini-batch.

if step % accum_steps == 0:
    optimizer.zero_grad()

Scale the Loss

Divide each mini-batch loss by accum_steps before backward. This keeps the average gradient identical to running the full batch at once.

loss = loss_fn(model(x), y) / accum_steps
loss.backward()

Step Only When Full

After enough mini-batches pile up, call optimizer.step. The accumulated gradients now reflect the whole large batch.

if (step + 1) % accum_steps == 0:
    optimizer.step()

The Full Pattern

Put it together: scale the loss, backward every step, but only step and zero once per cycle. The loop stays simple.

for step, (x, y) in enumerate(loader):
    loss = loss_fn(model(x), y) / accum_steps
    loss.backward()
    if (step + 1) % accum_steps == 0:
        optimizer.step()
        optimizer.zero_grad()

Memory Stays Small

You only ever hold one mini-batch in memory at a time. That is why a modest GPU can mimic a batch many times its real capacity.

The Trade-Off

Accumulation trades time for memory: more forward and backward passes per update mean each effective batch takes a little longer to finish.

Mind Batch Norm

Batch norm still sees only the small mini-batch, so its statistics are noisier than a true large batch would produce. Keep that in mind.

Quick Check

You accumulate over 4 mini-batches. When should you call optimizer.step()?

Recap

Split a big batch into chunks, divide the loss by accum_steps, backward every chunk, and step only once per cycle to fake a large batch on small memory. 🧮

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Akumulasi Gradien untuk Batch Besar” gratis?

Ya — teks lengkap “Akumulasi Gradien untuk Batch Besar” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Deep Learning Academy, upgrade ke CoddyKit PRO. Kursus Deep Learning Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Akumulasi Gradien untuk Batch Besar”?

Simulasikan batch besar pada GPU kecil Kamu berlatih Deep Learning Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Deep Learning Academy?

Tidak diperlukan pengalaman sebelumnya. Deep Learning Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.

Berapa lama pelajaran “Akumulasi Gradien untuk Batch Besar” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Deep Learning Academy ini?

Ya. Setiap pelajaran Deep Learning Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Presisi Campuran dengan autocast dan GradScaler
  2. Akumulasi Gradien untuk Batch Besar
  3. Profilkan Bottleneck
  4. Kurangi Penggunaan Memori GPU
← Kembali ke Deep Learning Academy