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 installasjonslyktimportere 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.