Deep Learning Academy · Pelajaran

Membaca dan Mengosongkan .grad

Mengapa kecerunan terkumpul dan perlu ditetapkan semula.

Pelajaran 3 daripada 413 langkah

Membaca dan Mengosongkan .grad ialah pelajaran Deep Learning Academy percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Deep Learning Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Deep Learning Academy merangkumi sejumlah 4 pelajaran.

Atribut .grad

Selepas backward, setiap tensor yang dilatih menyimpan kecerunannya dalam .grad. Membacanya memberitahu anda cara kerugian berubah apabila tensor itu berubah.

print(weight.grad)

Kecerunan Bermula sebagai None

Sebelum sebarang panggilan backward, .grad ialah None, bukannya sifar. PyTorch hanya memperuntukkan ruang untuknya apabila set kecerunan pertama benar-benar tiba.

Kecerunan Terkumpul

Inilah perkara yang mengejutkan: backward menambah nilai pada .grad dan bukannya menggantikannya. Panggil backward dua kali tanpa mengosongkannya, lalu nilainya akan terkumpul.

Mengapa Pengumpulan Berlaku

Tingkah laku penambahan ini disengajakan. Ia membolehkan anda menjumlahkan kecerunan daripada beberapa kelompok mini sebelum satu kemas kini, berguna untuk mensimulasikan kelompok yang lebih besar.

Pepijat Tersembunyi

Jika anda terlupa mengosongkannya, kecerunan lama akan merosakkan langkah seterusnya, menyebabkan model dilatih menggunakan nombor yang salah. Pepijat senyap ini pernah mengelirukan hampir semua orang sekurang-kurangnya sekali.

Sifarkan pada Setiap Langkah

Penyelesaiannya ialah menetapkan semula kecerunan sebelum setiap backward. Dengan pengoptimum, anda hanya perlu memanggil zero_grad() pada awal setiap langkah latihan.

optimizer.zero_grad()

Urutan yang Betul

Rentak gelung adalah tetap: zero_grad, forward, kerugian, backward, step. Menyifarkan terlebih dahulu memastikan setiap langkah hanya menggunakan kecerunan kelompok semasa.

optimizer.zero_grad()
loss.backward()
optimizer.step()

Mengosongkan Tanpa Pengoptimum

Belum menggunakan pengoptimum? Anda boleh mengosongkan kecerunan sendiri dengan menetapkan .grad setiap tensor kembali kepada None sebelum panggilan backward seterusnya.

w.grad = None

set_to_none Lebih Jimat

Kod yang lebih baharu mengutamakan zero_grad(set_to_none=True). Menetapkan kecerunan kepada None dan bukannya mengisinya dengan sifar menjimatkan sedikit memori dan masa.

Membaca Kecerunan untuk Menyahpepijat

Memeriksa .grad sangat berguna untuk penyahpepijatan. Semua nilai sifar mungkin menandakan neuron mati, manakala nilai yang terlalu besar memberi amaran tentang kecerunan meletup sebelum latihan menjadi tidak terkawal.

Tabiat yang Wajar Diamalkan

Biasakan diri menyifarkan kecerunan secara automatik. Setiap gelung latihan yang boleh dipercayai mengosongkan kecerunan terlebih dahulu, supaya model hanya belajar daripada kelompok semasa.

Semakan Pantas

Semak perkara penting tentang pengumpulan kecerunan.

Imbas Kembali

Kecerunan disimpan dalam .grad dan terkumpul merentasi panggilan backward, jadi anda mesti mengosongkannya pada setiap langkah menggunakan zero_grad. Jika terlupa, latihan akan terganggu tanpa disedari. 🧹

Percuma untuk bermula

Pelajari Python dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
30
Pelajaran
120

Soalan Lazim

Adakah pelajaran “Membaca dan Mengosongkan .grad” percuma?

Ya — teks penuh “Membaca dan Mengosongkan .grad” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Deep Learning Academy, tingkat taraf kepada CoddyKit PRO. Kursus Deep Learning Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Membaca dan Mengosongkan .grad”?

Mengapa kecerunan terkumpul dan perlu ditetapkan semula. Anda berlatih Deep Learning Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Deep Learning Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Deep Learning Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.

Berapa lamakah pelajaran “Membaca dan Mengosongkan .grad” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Deep Learning Academy ini?

Ya. Setiap pelajaran Deep Learning Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. requires_grad dan Graf Pengiraan
  2. Panggil backward() untuk Mendapatkan Kecerunan
  3. Membaca dan Mengosongkan .grad
  4. torch.no_grad() untuk Inferens
← Kembali ke Deep Learning Academy