Bagaimana untuk Menggunakan 'torch.no_grad' dalam PyTorch?

Bagaimana Untuk Menggunakan Torch No Grad Dalam Pytorch



Pengiraan kecerunan untuk lapisan rangkaian saraf ialah ciri terbina dalam rangka kerja PyTorch. Pengguna boleh mengukur sambungan antara lapisan bersebelahan apabila kecerunan dikira dalam hantaran ke belakang. Walau bagaimanapun, ini mengambil tol pada perkakasan kerana jumlah data yang besar yang perlu diproses dan, dalam kes ini, ' torch.no_grad ” kaedah boleh digunakan untuk menghentikan pengiraan kecerunan di mana sahaja diperlukan.

Dalam blog ini, kita akan membincangkan cara menggunakan “ torch.no_grad ” kaedah dalam PyTorch.

Apakah Kaedah 'torch.no_grad' dalam PyTorch?

' torch.no_grad ” kaedah digunakan untuk pengurusan konteks dalam rangka kerja pembangunan PyTorch. Tujuannya adalah untuk menghentikan pengiraan kecerunan untuk sambungan antara lapisan seterusnya model pembelajaran mendalam. Kegunaan kaedah ini ialah apabila kecerunan tidak diperlukan dalam model tertentu, maka ia boleh dilumpuhkan untuk memperuntukkan lebih banyak sumber perkakasan untuk pemprosesan gelung latihan model.







Bagaimana untuk Menggunakan Kaedah 'torch.no_grad' dalam PyTorch?

Kecerunan dikira dalam hantaran ke belakang dalam PyTorch. Secara lalai, PyTorch telah mengaktifkan pembezaan automatik untuk semua model pembelajaran mesin. Penyahaktifan pengiraan kecerunan adalah penting untuk pembangun yang tidak mempunyai sumber pemprosesan perkakasan yang mencukupi.



Ikuti langkah di bawah untuk mengetahui cara menggunakan “ torch.no_grad ” kaedah untuk melumpuhkan pengiraan kecerunan dalam PyTorch:







Langkah 1: Lancarkan IDE Colab

Google Colaboratory ialah pilihan platform yang sangat baik untuk pembangunan projek menggunakan rangka kerja PyTorch kerana GPU khususnya. Pergi ke Colab laman web dan buka ' Buku Nota Baharu ' seperti yang ditunjukkan:



Langkah 2: Pasang dan Import Perpustakaan Obor

Semua fungsi PyTorch dirangkumkan oleh ' obor ” perpustakaan. Pemasangan dan importnya adalah penting sebelum memulakan kerja. ' !pip ” pakej pemasangan Python digunakan untuk memasang perpustakaan dan ia diimport ke dalam projek menggunakan “ import ” perintah:

!pip pasang obor
obor import

Langkah 3: Tentukan Tensor PyTorch dengan Gradien

Tambah tensor PyTorch pada projek menggunakan ' torch.tensor() ” kaedah. Kemudian, berikan kecerunan yang sah menggunakan ' require_grad=Benar ” kaedah seperti yang ditunjukkan dalam kod di bawah:

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

Langkah 4: Gunakan Kaedah 'torch.no_grad' untuk Alih Keluar Kecerunan

Seterusnya, keluarkan kecerunan daripada tensor yang ditakrifkan sebelum ini menggunakan “ torch.no_grad ' kaedah:

dengan torch.no_grad():
B = A**2 + 16

Kod di atas berfungsi seperti berikut:

  • ' no_grad() Kaedah ' digunakan di dalam ' dengan ” gelung.
  • Setiap tensor yang terkandung dalam gelung telah dikeluarkan kecerunannya.
  • Akhir sekali, tentukan pengiraan aritmetik sampel menggunakan tensor yang ditakrifkan sebelum ini dan tetapkan ia kepada “ B ” pembolehubah seperti yang ditunjukkan di atas:

Langkah 5: Sahkan Pembuangan Gradien

Langkah terakhir ialah mengesahkan perkara yang baru dilakukan. Kecerunan daripada tensor ' A ' telah dialih keluar dan ia mesti disemak dalam output menggunakan ' cetak() ' kaedah:

print('Gradient Computation with torch.no_grad: ', A.grad)
print('\nTensor Asal: ', A)
print('\nContoh Pengiraan Aritmetik: ', B)

Kod di atas berfungsi seperti berikut:

  • ' grad Kaedah 'memberi kita kecerunan tensor' A ”. Ia tidak menunjukkan satu pun dalam output di bawah kerana kecerunan telah dialih keluar menggunakan ' torch.no_grad ” kaedah.
  • Tensor asal masih menunjukkan bahawa ia mempunyai kecerunan seperti yang dilihat dari ' require_grad=Benar ” pernyataan dalam output.
  • Akhir sekali, pengiraan aritmetik sampel menunjukkan hasil persamaan yang ditakrifkan sebelum ini:

Catatan : Anda boleh mengakses Buku Nota Colab kami di sini pautan .

Petua Pro

' torch.no_grad ” kaedah sesuai di mana kecerunan tidak diperlukan atau apabila terdapat keperluan untuk mengurangkan beban pemprosesan pada perkakasan. Satu lagi kegunaan kaedah ini ialah semasa inferens kerana model hanya digunakan untuk membuat ramalan berdasarkan data baharu. Memandangkan tiada latihan yang terlibat, adalah masuk akal untuk melumpuhkan pengiraan kecerunan sahaja.

Berjaya! Kami telah menunjukkan kepada anda cara menggunakan kaedah 'torch.no_grad' untuk melumpuhkan kecerunan dalam PyTorch.

Kesimpulan

Menggunakan ' torch.no_grad ' kaedah dalam PyTorch dengan mentakrifkannya di dalam ' dengan ” gelung dan semua tensor yang terkandung di dalamnya akan dikeluarkan kecerunannya. Ini akan membawa peningkatan dalam kelajuan pemprosesan dan menghalang pengumpulan kecerunan dalam gelung latihan. Dalam blog ini, kami telah mempamerkan bagaimana ini ' torch.no_grad ” kaedah boleh digunakan untuk melumpuhkan kecerunan tensor terpilih dalam PyTorch.