Hvordan bruke 'torch.no_grad' i PyTorch?

Hvordan Bruke Torch No Grad I Pytorch



Beregningen av gradienter for lagene i et nevralt nettverk er en innebygd funksjon i PyTorch-rammeverket. Brukerne kan måle forbindelsen mellom tilstøtende lag når gradienter beregnes i bakoverpasseringen. Dette tar imidlertid en toll på maskinvaren på grunn av de store datamengdene som må behandles, og i dette tilfellet ' torch.no_grad ”-metoden kan brukes til å stoppe gradientberegning der det er nødvendig.

I denne bloggen vil vi diskutere hvordan du bruker ' torch.no_grad ”-metoden i PyTorch.

Hva er 'torch.no_grad'-metoden i PyTorch?

« torch.no_grad ”-metoden brukes for styring av kontekst innenfor PyTorchs utviklingsramme. Formålet er å stoppe beregningen av gradienter for sammenhengen mellom påfølgende lag av dyplæringsmodellen. Nytten av denne metoden er at når gradienter ikke er nødvendig i en bestemt modell, kan de deaktiveres for å allokere flere maskinvareressurser for behandlingen av treningssløyfen til modellen.







Hvordan bruke «torch.no_grad»-metoden i PyTorch?

Gradienter beregnes innenfor bakoverpasseringen i PyTorch. Som standard har PyTorch automatisk differensiering aktivert for alle maskinlæringsmodeller. Deaktivering av gradientberegning er avgjørende for utviklere som ikke har tilstrekkelige maskinvarebehandlingsressurser.



Følg trinnene nedenfor for å lære hvordan du bruker ' torch.no_grad ' metode for å deaktivere beregningen av gradienter i PyTorch:







Trinn 1: Start Colab IDE

Google Colaboratory er et utmerket valg av plattform for utvikling av prosjekter som bruker PyTorch-rammeverket på grunn av dets dedikerte GPU-er. Gå til Colab nettsted og åpne en ' Ny notatbok ' som vist:



Trinn 2: Installer og importer Torch Library

All funksjonaliteten til PyTorch er innkapslet av ' lommelykt ' bibliotek. Installasjon og import er avgjørende før du starter arbeidet. « !pip ' installasjonspakken til Python brukes til å installere biblioteker og den importeres inn i prosjektet ved å bruke ' import ' kommando:

!pip installasjonslykt
importere lommelykt

Trinn 3: Definer en PyTorch-tensor med en gradient

Legg til en PyTorch-tensor til prosjektet ved å bruke ' torch.tensor() 'metoden. Deretter gir du den en gyldig gradient ved å bruke ' requires_grad=Sant ”-metoden som vist i koden nedenfor:

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

Trinn 4: Bruk 'torch.no_grad'-metoden for å fjerne gradienten

Deretter fjerner du gradienten fra den tidligere definerte tensoren ved å bruke ' torch.no_grad ' metode:

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

Koden ovenfor fungerer som følger:

  • « no_grad() '-metoden brukes i en ' med ' Løkke.
  • Hver tensor inneholdt i løkken har sin gradient fjernet.
  • Til slutt, definer en eksempel aritmetisk beregning ved å bruke den tidligere definerte tensoren og tilordne den til ' B variabel som vist ovenfor:

Trinn 5: Bekreft fjerning av gradient

Det siste trinnet er å bekrefte hva som nettopp ble gjort. Gradienten fra tensor ' EN ' ble fjernet og den må sjekkes i utgangen ved å bruke ' skrive ut() ' metode:

print('Gradientberegning med torch.no_grad: ', A.grad)
print('\nOriginal Tensor: ', A)
print('\nEksempel på aritmetisk beregning: ', B)

Koden ovenfor fungerer som følger:

  • « grad 'metoden gir oss gradienten til tensor' EN '. Den viser ingen i utdataene nedenfor fordi gradienten er fjernet ved hjelp av ' torch.no_grad 'metoden.
  • Den originale tensoren viser fortsatt at den har sin gradient sett fra ' requires_grad=Sant ” uttalelse i utgangen.
  • Til slutt viser den aritmetiske prøveberegningen resultatet av ligningen definert tidligere:

Merk : Du kan få tilgang til Colab Notebook her link .

Pro-Tips

« torch.no_grad ”-metoden er ideell der gradientene ikke er nødvendige eller når det er behov for å redusere prosesseringsbelastningen på maskinvaren. En annen bruk av denne metoden er under inferens fordi modellen kun brukes til å lage spådommer basert på nye data. Siden det ikke er noen trening involvert, er det helt fornuftig å deaktivere beregningen av gradienter.

Suksess! Vi har vist deg hvordan du bruker 'torch.no_grad'-metoden for å deaktivere gradienter i PyTorch.

Konklusjon

Bruke ' torch.no_grad '-metoden i PyTorch ved å definere den i en ' med ”-løkken og alle tensorer inne i vil få sin gradient fjernet. Dette vil gi forbedringer i prosesseringshastigheter og forhindre akkumulering av gradienter i treningssløyfen. I denne bloggen har vi vist frem hvordan dette ' torch.no_grad ”-metoden kan brukes til å deaktivere gradientene til utvalgte tensorer i PyTorch.