Membaca dan Mengosongkan .grad
Mengapa kecerunan terkumpul dan perlu ditetapkan semula.
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 = Noneset_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
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. 🧹
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
- requires_grad dan Graf Pengiraan
- Panggil backward() untuk Mendapatkan Kecerunan
- Membaca dan Mengosongkan .grad
- torch.no_grad() untuk Inferens