Kuinka käyttää 'torch.no_grad' -ohjelmaa PyTorchissa?

Kuinka Kayttaa Torch No Grad Ohjelmaa Pytorchissa



Gradienttien laskenta hermoverkon kerroksille on PyTorch-kehyksen sisäänrakennettu ominaisuus. Käyttäjät voivat mitata vierekkäisten kerrosten välistä yhteyttä, kun kaltevuudet lasketaan taaksepäin ajossa. Tämä kuitenkin rasittaa laitteistoa, koska käsiteltävänä on suuri määrä dataa ja tässä tapauksessa ' torch.no_grad ” -menetelmää voidaan käyttää gradienttilaskennan pysäyttämiseen tarvittaessa.

Tässä blogissa keskustelemme ' torch.no_grad ”-menetelmä PyTorchissa.

Mikä on 'torch.no_grad' -menetelmä PyTorchissa?

' torch.no_grad ” -menetelmää käytetään kontekstin hallintaan PyTorchin kehityskehyksen sisällä. Sen tarkoituksena on pysäyttää gradienttien laskenta syväoppimismallin seuraavien kerrosten välistä yhteyttä varten. Tämän menetelmän hyödyllisyys on siinä, että kun gradientteja ei vaadita tietyssä mallissa, ne voidaan poistaa käytöstä, jotta voidaan varata enemmän laitteistoresursseja mallin opetussilmukan käsittelyyn.







Kuinka käyttää 'torch.no_grad' -menetelmää PyTorchissa?

Gradientit lasketaan PyTorchissa taaksepäin ajettaessa. PyTorchin automaattinen erottelu on oletusarvoisesti käytössä kaikissa koneoppimismalleissa. Gradienttilaskennan deaktivointi on välttämätöntä kehittäjille, joilla ei ole riittävästi laitteiston käsittelyresursseja.



Seuraa alla olevia ohjeita oppiaksesi käyttämään ' torch.no_grad ” -menetelmä, jolla voit poistaa gradienttien laskemisen käytöstä PyTorchissa:







Vaihe 1: Käynnistä Colab IDE

Google Colaboratory on omistettujen grafiikkasuorittimiensa ansiosta erinomainen alustavalinta PyTorch-kehystä käyttävien projektien kehittämiseen. Mene Colabiin verkkosivusto ja avaa ' Uusi muistikirja ' kuten on esitetty:



Vaihe 2: Asenna ja tuo Torch Library

Kaikki PyTorchin toiminnot on koteloitu ' taskulamppu ' kirjasto. Sen asennus ja maahantuonti ovat välttämättömiä ennen työn aloittamista. ' !pip ' Pythonin asennuspakettia käytetään kirjastojen asentamiseen ja se tuodaan projektiin ' tuonti 'komento:

!pip install taskulamppu
tuonti taskulamppu

Vaihe 3: Määritä PyTorch-tensori gradientilla

Lisää PyTorch-tensori projektiin käyttämällä ' torch.tensor() ”menetelmä. Anna sitten kelvollinen gradientti käyttämällä ' vaatii_grad=Tosi ' -menetelmä alla olevan koodin mukaisesti:

A = taskulamppu.tensor([5.0], vaatii_grad=True)

Vaihe 4: Käytä 'torch.no_grad' -menetelmää liukuvärin poistamiseen

Poista seuraavaksi gradientti aiemmin määritetystä tensorista käyttämällä ' torch.no_grad 'menetelmä:

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

Yllä oleva koodi toimii seuraavasti:

  • ' no_grad() 'menetelmää käytetään ' kanssa 'silmukka.
  • Jokaisen silmukan sisältämän tensorin gradientti on poistettu.
  • Lopuksi määritä esimerkkiaritmeettinen laskutoimitus käyttämällä aiemmin määritettyä tensoria ja määritä se ' B ”-muuttuja yllä olevan kuvan mukaisesti:

Vaihe 5: Tarkista gradientin poisto

Viimeinen vaihe on tarkistaa, mitä juuri tehtiin. Gradientti tensorista ' A ' poistettiin ja se on tarkistettava tulosteesta ' Tulosta() 'menetelmä:

print('Gradienttilaskenta käyttäen torch.no_grad:', A.grad)
print('\nAlkuperäinen tensori: ', A)
print('\nEsimerkkiaritmeettinen laskelma: ', B)

Yllä oleva koodi toimii seuraavasti:

  • ' grad 'menetelmä antaa meille tensorin gradientin' A ”. Alla olevassa tulosteessa ei näy mitään, koska liukuväri on poistettu käyttämällä ' torch.no_grad ”menetelmä.
  • Alkuperäinen tensori osoittaa edelleen, että sillä on gradientti, kuten ' vaatii_grad=Tosi ”-lausunto tulosteessa.
  • Lopuksi näytearitmeettinen laskelma näyttää aiemmin määritellyn yhtälön tuloksen:

Huomautus : Pääset käyttämään Colab-muistikirjaamme tästä linkki .

Pro-Tip

' torch.no_grad ” -menetelmä on ihanteellinen silloin, kun gradientteja ei tarvita tai kun on tarve vähentää laitteiston prosessointikuormaa. Toinen tämän menetelmän käyttökohde on päättelyn aikana, koska mallia käytetään vain ennusteiden tekemiseen uuden datan perusteella. Koska siihen ei liity koulutusta, on täysin järkevää yksinkertaisesti poistaa kaltevuuslaskenta käytöstä.

Menestys! Olemme näyttäneet sinulle, kuinka voit käyttää 'torch.no_grad' -menetelmää liukuvärien poistamiseen PyTorchissa.

Johtopäätös

Käytä ' torch.no_grad ' -menetelmää PyTorchissa määrittämällä se ' kanssa ” silmukan ja kaikkien sen sisältämien tensorien gradientti poistetaan. Tämä parantaa käsittelynopeuksia ja estää gradienttien kertymisen harjoitussilmukan sisällä. Tässä blogissa olemme näyttäneet, kuinka tämä ' torch.no_grad ” -menetelmää voidaan käyttää valittujen tensorien gradientin poistamiseen PyTorchissa.