Deep Learning Academy · Pelajaran

Presisi Campuran dengan autocast dan GradScaler

Matematika presisi setengah untuk peningkatan kecepatan besar

Pelajaran 1 dari 413 langkah

Presisi Campuran dengan autocast dan GradScaler adalah pelajaran Deep Learning Academy gratis di CoddyKit. Ini adalah pelajaran 1 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.

Makna Presisi Campuran

Secara default, PyTorch melakukan perhitungan dengan bilangan pecahan 32-bit. Presisi campuran menjalankan banyak operasi dalam 16-bit, sehingga lebih cepat dan menggunakan jauh lebih sedikit memori.

Mengapa Presisi Setengah Lebih Cepat

GPU modern memiliki inti tensor khusus yang dioptimalkan untuk perhitungan 16-bit. Memasukkan data berpresisi setengah dapat mempercepat pelatihan dua atau tiga kali lipat dengan sedikit kehilangan akurasi.

Kelemahan 16-Bit

Presisi setengah memiliki rentang yang sangat kecil, sehingga nilai gradien yang sangat kecil dapat dibulatkan menjadi nol. Underflow yang tidak terlihat ini menghentikan pembelajaran jika tidak ditangani.

Berkenalan dengan autocast

Bungkus proses maju Anda dengan autocast, dan PyTorch akan memilih presisi yang aman untuk setiap operasi secara otomatis. Anda tidak perlu mengonversi tensor secara manual.

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

Bagian yang Dibungkus autocast

Tempatkan hanya proses maju dan kerugian di dalam autocast. Pemanggilan mundur tetap berada di luar blok tersebut, tempat PyTorch menangani presisi untuk Anda.

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

Berkenalan dengan GradScaler

GradScaler mengatasi underflow dengan mengalikan loss dengan faktor besar sebelum backward, sehingga gradien kecil tetap cukup besar untuk bertahan dalam 16-bit.

scaler = torch.cuda.amp.GradScaler()

Skalakan Loss

Alih-alih menggunakan loss.backward(), panggil scaler.scale(loss).backward(). Scaler terlebih dahulu memperbesar loss agar gradien yang dihasilkan tidak menghilang.

scaler.scale(loss).backward()

Lakukan Step melalui Scaler

Jalankan optimizer dengan scaler.step, yang secara diam-diam mengembalikan skala gradien ke ukuran normal sebelum menerapkan pembaruan.

scaler.step(optimizer)

Perbarui Faktor Skala

Akhiri setiap step dengan scaler.update(). Faktor ini diperbesar ketika semuanya stabil dan diperkecil jika mendeteksi overflow.

scaler.update()

Step AMP Lengkap

Jika digabungkan, pemanggilan ini membentuk satu iterasi AMP yang rapi: zero grads, forward dengan autocast, backward berskala, scaler step, lalu 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()

Kapan Sebaiknya Menggunakannya

Presisi campuran sangat bermanfaat pada GPU NVIDIA terbaru dengan batch besar. Pada CPU biasa, manfaatnya kecil, jadi gunakan ini untuk pelatihan yang sebenarnya.

Pemeriksaan Singkat

Anda mengaktifkan autocast, tetapi gradien kecil terus menghilang. Alat apa yang dapat mengatasinya?

Rangkuman

Bungkus forward dengan autocast untuk perhitungan 16-bit yang cepat, lalu gunakan GradScaler untuk melakukan penskalaan, step, dan update agar gradien kecil tetap bertahan. ⚡

Gratis untuk memulai

Belajar Python dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
30
Pelajaran
120

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Presisi Campuran dengan autocast dan GradScaler” gratis?

Ya — teks lengkap “Presisi Campuran dengan autocast dan GradScaler” 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 “Presisi Campuran dengan autocast dan GradScaler”?

Matematika presisi setengah untuk peningkatan kecepatan besar 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 1 dari 4.

Berapa lama pelajaran “Presisi Campuran dengan autocast dan GradScaler” 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