Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Gradienter i PyTorch | Mer Avanserte Konsepter
Pytorch-Essensielt

bookGradienter i PyTorch

Gradienter er grunnleggende i optimaliseringsoppgaver som trening av nevrale nettverk, hvor de bidrar til å justere vekter og bias for å minimere feil. I PyTorch beregnes de automatisk ved hjelp av autograd-modulen, som sporer operasjoner på tensorer og effektivt beregner deriverte.

Aktivering av gradientsporing

For å aktivere gradientsporing for en tensor, brukes argumentet requires_grad=True når tensoren opprettes. Dette forteller PyTorch å spore alle operasjoner på tensoren for gradientberegning.

1234
import torch # Create a tensor with gradient tracking enabled tensor = torch.tensor(2.0, requires_grad=True) print(tensor)
copy

Bygging av en beregningsgraf

PyTorch bygger en dynamisk beregningsgraf når du utfører operasjoner på tensorer med requires_grad=True. Denne grafen lagrer relasjonene mellom tensorer og operasjoner, noe som muliggjør automatisk derivasjon.

Vi starter med å definere en ganske enkel polynomfunksjon:

y = 5x3 + 2x2 + 4x + 8

Målet vårt er å beregne den deriverte med hensyn til x når x = 2.

123456
import torch # Define the tensor x = torch.tensor(2.0, requires_grad=True) # Define the function y = 5 * x ** 3 + 2 * x ** 2 + 4 * x + 8 print(f"Function output: {y}")
copy

Visualiseringen av denne beregningsgrafen laget med PyTorchViz-biblioteket kan virke noe kompleks, men den formidler effektivt hovedideen bak:

Beregning av gradienter

For å beregne gradienten, må backward()-metoden kalles på utgangstensoren. Dette beregner den deriverte av funksjonen med hensyn til inntakstensoren.

Den beregnede gradienten kan deretter nås med .grad-attributtet.

12345678
import torch x = torch.tensor(2.0, requires_grad=True) y = 5 * x ** 3 + 2 * x ** 2 + 4 * x + 8 # Perform backpropagation y.backward() # Print the gradient of x grad = x.grad print(f"Gradient of x: {grad}")
copy

Den beregnede gradienten er den deriverte av y med hensyn til x, evaluert ved x = 2.

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 1

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Awesome!

Completion rate improved to 5

bookGradienter i PyTorch

Sveip for å vise menyen

Gradienter er grunnleggende i optimaliseringsoppgaver som trening av nevrale nettverk, hvor de bidrar til å justere vekter og bias for å minimere feil. I PyTorch beregnes de automatisk ved hjelp av autograd-modulen, som sporer operasjoner på tensorer og effektivt beregner deriverte.

Aktivering av gradientsporing

For å aktivere gradientsporing for en tensor, brukes argumentet requires_grad=True når tensoren opprettes. Dette forteller PyTorch å spore alle operasjoner på tensoren for gradientberegning.

1234
import torch # Create a tensor with gradient tracking enabled tensor = torch.tensor(2.0, requires_grad=True) print(tensor)
copy

Bygging av en beregningsgraf

PyTorch bygger en dynamisk beregningsgraf når du utfører operasjoner på tensorer med requires_grad=True. Denne grafen lagrer relasjonene mellom tensorer og operasjoner, noe som muliggjør automatisk derivasjon.

Vi starter med å definere en ganske enkel polynomfunksjon:

y = 5x3 + 2x2 + 4x + 8

Målet vårt er å beregne den deriverte med hensyn til x når x = 2.

123456
import torch # Define the tensor x = torch.tensor(2.0, requires_grad=True) # Define the function y = 5 * x ** 3 + 2 * x ** 2 + 4 * x + 8 print(f"Function output: {y}")
copy

Visualiseringen av denne beregningsgrafen laget med PyTorchViz-biblioteket kan virke noe kompleks, men den formidler effektivt hovedideen bak:

Beregning av gradienter

For å beregne gradienten, må backward()-metoden kalles på utgangstensoren. Dette beregner den deriverte av funksjonen med hensyn til inntakstensoren.

Den beregnede gradienten kan deretter nås med .grad-attributtet.

12345678
import torch x = torch.tensor(2.0, requires_grad=True) y = 5 * x ** 3 + 2 * x ** 2 + 4 * x + 8 # Perform backpropagation y.backward() # Print the gradient of x grad = x.grad print(f"Gradient of x: {grad}")
copy

Den beregnede gradienten er den deriverte av y med hensyn til x, evaluert ved x = 2.

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 1
some-alt