Kuidas PyTorchis 'torch.no_grad' kasutada?

Kuidas Pytorchis Torch No Grad Kasutada



Närvivõrgu kihtide gradientide arvutamine on PyTorchi raamistiku sisseehitatud funktsioon. Kasutajad saavad mõõta külgnevate kihtide vahelist seost, kui gradiente arvutatakse tagasikäigul. See aga mõjutab riistvara, kuna tuleb töödelda suuri andmemahtusid ja antud juhul ' torch.no_grad ” meetodit saab vajadusel kasutada gradiendi arvutamise peatamiseks.

Selles ajaveebis arutame, kuidas kasutada torch.no_grad ” meetod PyTorchis.

Mis on PyTorchi meetod „torch.no_grad”?

' torch.no_grad ” meetodit kasutatakse konteksti haldamiseks PyTorchi arendusraamistikus. Selle eesmärk on peatada süvaõppe mudeli järgnevate kihtide vahelise seose gradientide arvutamine. Selle meetodi kasulikkus seisneb selles, et kui konkreetses mudelis pole gradiente vaja, saab need keelata, et eraldada rohkem riistvararessursse mudeli treeningtsükli töötlemiseks.







Kuidas kasutada PyTorchis meetodit 'torch.no_grad'?

Gradiendid arvutatakse PyTorchis tagurpidikäigul. Vaikimisi on PyTorchis kõigi masinõppemudelite jaoks aktiveeritud automaatne eristamine. Gradiendi arvutamise desaktiveerimine on hädavajalik arendajatele, kellel pole piisavalt riistvaratöötlusressursse.



Järgige allolevaid samme, et õppida, kuidas kasutada torch.no_grad ” meetod PyTorchis gradientide arvutamise keelamiseks:







1. toiming: käivitage Colab IDE

Google Colaboratory on oma spetsiaalsete GPU-de tõttu suurepärane platvormivalik PyTorchi raamistikku kasutavate projektide arendamiseks. Minge Colabi veebisait ja avage ' Uus märkmik ' nagu näidatud:



2. samm: installige ja importige taskulampide teek

Kõik PyTorchi funktsioonid on kapseldatud ' tõrvik ” raamatukogu. Selle paigaldamine ja importimine on enne töö alustamist hädavajalikud. ' !pip Pythoni installipaketti kasutatakse teekide installimiseks ja see imporditakse projekti kasutades importida 'käsk:

!pip install taskulamp
import tõrvik

3. samm: määrake PyTorchi tensor gradiendiga

Lisage projektile PyTorchi tensor, kasutades ' tõrvik.tensor() ” meetod. Seejärel määrake sellele kehtiv gradient, kasutades nuppu ' vaatii_grad=Tõsi ” meetod, nagu on näidatud allolevas koodis:

A = tõrvik.tensor ([5.0], nõuab_grad = Tõene)

4. samm: kasutage gradiendi eemaldamiseks meetodit „torch.no_grad”.

Järgmisena eemaldage gradient eelnevalt määratletud tenorist, kasutades nuppu ' torch.no_grad ” meetod:

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

Ülaltoodud kood töötab järgmiselt:

  • ' no_grad() 'meetodit kasutatakse ' koos 'silmus.
  • Igal tsüklis sisalduval tensoril on gradient eemaldatud.
  • Lõpuks määratlege näidisaritmeetiline arvutus, kasutades eelnevalt määratletud tensorit ja määrake see ' B ” muutuja, nagu ülal näidatud:

5. samm: kontrollige gradiendi eemaldamist

Viimane samm on kontrollida, mida just tehti. Gradient tensorist ' A ' eemaldati ja seda tuleb väljundis kontrollida, kasutades nuppu ' print() ” meetod:

print('Gradientarvutus torch.no_grad:', A.grad)
print('\nAlgne tensor: ', A)
print('\nAritmeetilise arvutuse näidis: ', B)

Ülaltoodud kood töötab järgmiselt:

  • ' grad 'meetod annab meile tensori gradiendi' A ”. See ei näita allolevas väljundis ühtegi, kuna gradient on eemaldatud ' torch.no_grad ” meetod.
  • Algne tensor näitab endiselt, et sellel on gradient, nagu näha vaatii_grad=Tõsi ” avaldus väljundis.
  • Lõpuks näitab näidisaritmeetiline arvutus eelnevalt määratletud võrrandi tulemust:

Märge : meie Colabi märkmikule pääsete juurde siit link .

Pro-Tip

' torch.no_grad ” meetod on ideaalne, kui gradiente pole vaja või kui on vaja vähendada riistvara töötlemiskoormust. Seda meetodit kasutatakse ka järelduste tegemisel, kuna mudelit kasutatakse ainult uute andmete põhjal prognooside tegemiseks. Kuna koolitust pole vaja, on täiesti loogiline gradientide arvutamine lihtsalt keelata.

Edu! Näitasime teile, kuidas kasutada PyTorchis gradientide keelamiseks meetodit „torch.no_grad”.

Järeldus

Kasuta ' torch.no_grad ” meetodit PyTorchis, määratledes selle „ koos ” silmus ja kõigi selles sisalduvate tensorite gradient eemaldatakse. See parandab töötlemiskiirust ja hoiab ära gradientide kuhjumise treeningtsüklis. Selles blogis oleme näidanud, kuidas see ' torch.no_grad ” meetodit saab kasutada PyTorchis valitud tensorite gradientide keelamiseks.