Deep Learning Academy · Pelajaran

torch.no_grad() untuk Inferensi

Lewati pelacakan graf untuk menghemat memori

Pelajaran 4 dari 413 langkah

torch.no_grad() untuk Inferensi adalah pelajaran Deep Learning Academy gratis di CoddyKit. Ini adalah pelajaran 4 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.

Tidak Setiap Lintasan Memerlukan Gradien

Anda hanya memerlukan gradien saat melatih model. Saat hanya ingin membuat prediksi, melacak graf adalah pekerjaan yang sia-sia, sehingga PyTorch memungkinkan Anda menonaktifkannya. 🛑

Kenali torch.no_grad

Bungkus kode dalam blok torch.no_grad(), lalu autograd berhenti merekam kode di dalamnya. Tidak ada graf yang dibangun dan tidak ada gradien yang disimpan.

with torch.no_grad():
    preds = model(x)

Mengapa Melewati Graf

Membangun graf memerlukan memori untuk mengingat setiap langkah demi lintasan mundur yang tidak akan pernah dilakukan. Saat inferensi, beban tambahan ini benar-benar sia-sia.

Lebih Cepat dan Ringan

Di dalam no_grad, lintasan forward Anda menggunakan lebih sedikit memori dan berjalan sedikit lebih cepat. Pada model besar, ini memungkinkan Anda memuat batch yang lebih besar saat hanya membuat prediksi.

Output Tidak Terhubung

Tensor yang dibuat di dalam blok ini memiliki requires_grad false. Tensor tersebut hanyalah hasil biasa yang dapat Anda tampilkan, simpan, atau ubah menjadi NumPy tanpa masalah.

Gunakan untuk Evaluasi

Perulangan validasi dan pengujian sebaiknya selalu berjalan di bawah no_grad. Anda sedang menilai model, bukan melatihnya, sehingga tidak ada alasan untuk melacak gradien.

with torch.no_grad():
    for x, y in val_loader:
        out = model(x)

Padukan dengan Mode eval

Untuk inferensi, atur model.eval() dan bungkus pemanggilan bersama no_grad. eval memperbaiki lapisan seperti dropout, sedangkan no_grad menghentikan graf. Keduanya menyelesaikan masalah yang berbeda.

Ini Adalah Pengelola Konteks

no_grad hanya memengaruhi kode di dalam blok with. Setelah Anda keluar darinya, autograd secara otomatis mengaktifkan kembali pelacakan untuk langkah pelatihan berikutnya.

Bentuk Dekorator

Anda juga dapat menandai seluruh fungsi dengan @torch.no_grad(). Setelah itu, setiap operasi tensor di dalam fungsi tersebut berjalan tanpa membangun graf.

@torch.no_grad()
def predict(x):
    return model(x)

Detach untuk Satu Tensor

Perlu membebaskan satu tensor saja dari graf, bukan seluruh blok? Panggil .detach() pada tensor tersebut untuk mendapatkan salinan yang tidak membawa riwayat gradien.

frozen = output.detach()

Kebiasaan yang Aman dan Umum

Gunakan no_grad kapan pun Anda tidak sedang melakukan pembelajaran: saat inferensi, menghitung metrik, atau menyimpan output. Perubahan kecil ini menghemat memori dan waktu secara diam-diam.

Pemeriksaan Singkat

Pastikan Anda tahu kapan harus menggunakan no_grad.

Ringkasan

Bungkus inferensi dengan torch.no_grad() untuk melewati pembangunan graf dan menghemat memori serta waktu. Padukan dengan model.eval() setiap kali Anda membuat prediksi, bukan melatih model. 🚀

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 “torch.no_grad() untuk Inferensi” gratis?

Ya — teks lengkap “torch.no_grad() untuk Inferensi” 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 “torch.no_grad() untuk Inferensi”?

Lewati pelacakan graf untuk menghemat memori 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 4 dari 4.

Berapa lama pelajaran “torch.no_grad() untuk Inferensi” 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. requires_grad dan Graf Komputasi
  2. Panggil backward() untuk Mendapatkan Gradien
  3. Membaca dan Mengosongkan .grad
  4. torch.no_grad() untuk Inferensi
← Kembali ke Deep Learning Academy