Gradienter i PyTorch
Gradienter er grundlæggende i optimeringsopgaver såsom træning af neurale netværk, hvor de hjælper med at justere vægte og bias for at minimere fejl. I PyTorch beregnes de automatisk ved hjælp af autograd
-modulet, som sporer operationer på tensorer og effektivt udregner afledte.
Aktivering af gradientsporing
For at aktivere gradientsporing for en tensor anvendes argumentet requires_grad=True
, når tensoren oprettes. Dette instruerer PyTorch i at spore alle operationer på tensoren til gradientberegning.
1234import torch # Create a tensor with gradient tracking enabled tensor = torch.tensor(2.0, requires_grad=True) print(tensor)
Opbygning af en beregningsgraf
PyTorch opbygger en dynamisk beregningsgraf, når du udfører operationer på tensores med requires_grad=True
. Denne graf gemmer relationerne mellem tensores og operationer, hvilket muliggør automatisk differentiering.
Vi starter med at definere en forholdsvis simpel polynomiel funktion:
y = 5x
Målet er at beregne den afledte med hensyn til x
ved x = 2
.
123456import 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}")
Visualiseringen af denne beregningsgraf, som er oprettet ved hjælp af PyTorchViz-biblioteket, kan virke en smule kompleks, men den formidler effektivt hovedideen bag:
Beregning af gradienter
For at beregne gradienten skal backward()
-metoden kaldes på output-tensoren. Dette beregner den afledte af funktionen med hensyn til input-tensoren.
Den beregnede gradient kan derefter tilgås med attributten .grad
.
12345678import 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}")
Den beregnede gradient er den afledte af y
med hensyn til x
, evalueret ved x = 2
.
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Can you explain how the backward() method works in more detail?
What does the computational graph represent in PyTorch?
How is the gradient value interpreted in this example?
Awesome!
Completion rate improved to 5
Gradienter i PyTorch
Stryg for at vise menuen
Gradienter er grundlæggende i optimeringsopgaver såsom træning af neurale netværk, hvor de hjælper med at justere vægte og bias for at minimere fejl. I PyTorch beregnes de automatisk ved hjælp af autograd
-modulet, som sporer operationer på tensorer og effektivt udregner afledte.
Aktivering af gradientsporing
For at aktivere gradientsporing for en tensor anvendes argumentet requires_grad=True
, når tensoren oprettes. Dette instruerer PyTorch i at spore alle operationer på tensoren til gradientberegning.
1234import torch # Create a tensor with gradient tracking enabled tensor = torch.tensor(2.0, requires_grad=True) print(tensor)
Opbygning af en beregningsgraf
PyTorch opbygger en dynamisk beregningsgraf, når du udfører operationer på tensores med requires_grad=True
. Denne graf gemmer relationerne mellem tensores og operationer, hvilket muliggør automatisk differentiering.
Vi starter med at definere en forholdsvis simpel polynomiel funktion:
y = 5x
Målet er at beregne den afledte med hensyn til x
ved x = 2
.
123456import 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}")
Visualiseringen af denne beregningsgraf, som er oprettet ved hjælp af PyTorchViz-biblioteket, kan virke en smule kompleks, men den formidler effektivt hovedideen bag:
Beregning af gradienter
For at beregne gradienten skal backward()
-metoden kaldes på output-tensoren. Dette beregner den afledte af funktionen med hensyn til input-tensoren.
Den beregnede gradient kan derefter tilgås med attributten .grad
.
12345678import 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}")
Den beregnede gradient er den afledte af y
med hensyn til x
, evalueret ved x = 2
.
Tak for dine kommentarer!