Bagaimana Cara Menggunakan “torch.no_grad” di PyTorch?

Bagaimana Cara Menggunakan Torch No Grad Di Pytorch



Perhitungan gradien untuk lapisan jaringan saraf adalah fitur bawaan kerangka PyTorch. Pengguna dapat mengukur hubungan antara lapisan yang berdekatan ketika gradien dihitung dalam gerakan mundur. Namun, hal ini berdampak buruk pada perangkat keras karena banyaknya volume data yang harus diproses dan, dalam hal ini, “ obor.no_grad Metode ” dapat digunakan untuk menghentikan penghitungan gradien jika diperlukan.

Di blog ini, kita akan membahas cara menggunakan “ obor.no_grad ” metode di PyTorch.

Apa itu Metode “torch.no_grad” di PyTorch?

obor.no_grad Metode ” digunakan untuk pengelolaan konteks dalam kerangka pengembangan PyTorch. Tujuannya adalah menghentikan penghitungan gradien untuk koneksi antar lapisan model pembelajaran mendalam berikutnya. Kegunaan metode ini adalah ketika gradien tidak diperlukan dalam model tertentu, gradien tersebut dapat dinonaktifkan untuk mengalokasikan lebih banyak sumber daya perangkat keras untuk pemrosesan loop pelatihan model.







Bagaimana Cara Menggunakan Metode “torch.no_grad” di PyTorch?

Gradien dihitung dalam backward pass di PyTorch. Secara default, PyTorch mengaktifkan diferensiasi otomatis untuk semua model pembelajaran mesin. Penonaktifan komputasi gradien sangat penting bagi pengembang yang tidak memiliki sumber daya pemrosesan perangkat keras yang memadai.



Ikuti langkah-langkah di bawah ini untuk mempelajari cara menggunakan “ obor.no_grad ” metode untuk menonaktifkan perhitungan gradien di PyTorch:







Langkah 1: Luncurkan IDE Colab

Google Colaboratory adalah pilihan platform yang sangat baik untuk pengembangan proyek menggunakan kerangka PyTorch karena GPU khusus. Buka Colab situs web dan buka “ Buku Catatan Baru ' seperti yang ditunjukkan:



Langkah 2: Instal dan Impor Perpustakaan Torch

Semua fungsi PyTorch dirangkum oleh “ obor ' perpustakaan. Instalasi dan impornya sangat penting sebelum mulai bekerja. “ !pip ” paket instalasi Python digunakan untuk menginstal perpustakaan dan diimpor ke proyek menggunakan “ impor ' memerintah:

!pip instal obor
impor obor

Langkah 3: Tentukan Tensor PyTorch dengan Gradien

Tambahkan tensor PyTorch ke proyek menggunakan “ obor.tensor() ' metode. Kemudian, berikan gradien yang valid menggunakan “ membutuhkan_grad=Benar ” seperti yang ditunjukkan pada kode di bawah ini:

A = obor.tensor([5.0], require_grad=True)

Langkah 4: Gunakan Metode “torch.no_grad” untuk Menghapus Gradien

Selanjutnya, hapus gradien dari tensor yang ditentukan sebelumnya menggunakan “ obor.no_grad ' metode:

dengan obor.no_grad():
B = SEBUAH**2 + 16

Kode di atas berfungsi sebagai berikut:

  • no_grad() ” Metode digunakan di dalam “ dengan ' lingkaran.
  • Setiap tensor yang terdapat dalam loop telah dihapus gradiennya.
  • Terakhir, tentukan contoh penghitungan aritmatika menggunakan tensor yang telah ditentukan sebelumnya dan tetapkan ke “ B ” variabel seperti yang ditunjukkan di atas:

Langkah 5: Verifikasi Penghapusan Gradien

Langkah terakhir adalah memverifikasi apa yang baru saja dilakukan. Gradien dari tensor “ A ” telah dihapus dan harus diperiksa di output menggunakan “ mencetak() ' metode:

print('Perhitungan Gradien dengan torch.no_grad: ', A.grad)
print('\nTensor Asli: ', A)
print('\nContoh Perhitungan Aritmatika: ', B)

Kode di atas berfungsi sebagai berikut:

  • lulusan ” Metode memberi kita gradien tensor “ A ”. Ini tidak menunjukkan apa pun pada output di bawah ini karena gradien telah dihapus menggunakan “ obor.no_grad ' metode.
  • Tensor asli masih menunjukkan gradiennya seperti yang terlihat dari “ membutuhkan_grad=Benar ” pernyataan di output.
  • Terakhir, contoh perhitungan aritmatika menunjukkan hasil persamaan yang ditentukan sebelumnya:

Catatan : Anda dapat mengakses Notebook Colab kami di sini tautan .

Tip Pro

obor.no_grad ” Metode ini ideal ketika gradien tidak diperlukan atau ketika ada kebutuhan untuk mengurangi beban pemrosesan pada perangkat keras. Kegunaan lain dari metode ini adalah pada saat inferensi karena model hanya digunakan untuk membuat prediksi berdasarkan data baru. Karena tidak ada pelatihan yang terlibat, masuk akal untuk menonaktifkan penghitungan gradien saja.

Kesuksesan! Kami telah menunjukkan kepada Anda cara menggunakan metode “torch.no_grad” untuk menonaktifkan gradien di PyTorch.

Kesimpulan

Menggunakan ' obor.no_grad ” metode di PyTorch dengan mendefinisikannya di dalam “ dengan ” loop dan semua tensor yang ada di dalamnya akan dihilangkan gradiennya. Hal ini akan membawa peningkatan dalam kecepatan pemrosesan dan mencegah akumulasi gradien dalam loop pelatihan. Di blog ini, kami telah menunjukkan bagaimana ini “ obor.no_grad Metode ” dapat digunakan untuk menonaktifkan gradien tensor yang dipilih di PyTorch.