Multi-Trins Backpropagation
Ligesom Tensorflow tillader PyTorch også opbygning af mere komplekse beregningsgrafer, der involverer flere mellemliggende tensorer.
12345678910111213import torch # Create a 2D tensor with gradient tracking x = torch.tensor([[1.0, 2.0, 3.0], [3.0, 2.0, 1.0]], requires_grad=True) # Define intermediate layers y = 6 * x + 3 z = 10 * y ** 2 # Compute the mean of the final output output_mean = z.mean() print(f"Output: {output_mean}") # Perform backpropagation output_mean.backward() # Print the gradient of x print("Gradient of x:\n", x.grad)
Gradienten af output_mean
med hensyn til x
beregnes ved hjælp af kædereglen. Resultatet viser, hvor meget en lille ændring i hvert element af x
påvirker output_mean
.
Deaktivering af gradientsporing
I visse tilfælde kan det være ønskeligt at deaktivere gradientsporing for at spare hukommelse og beregning. Da requires_grad=False
er standardindstillingen, kan du blot oprette tensoren uden at angive denne parameter:
x = torch.tensor([[1.0, 2.0, 3.0], [3.0, 2.0, 1.0]])
Swipe to start coding
Du skal opbygge et simpelt neuralt netværk i PyTorch. Dit mål er at beregne gradienten af tabet med hensyn til vægtmatricen.
- Definér en tilfældig vægtmatrix (tensor)
W
med formen1x3
, initialiseret med værdier fra en uniform fordeling over [0, 1], med gradientsporing aktiveret. - Opret en inputmatrix (tensor)
X
baseret på denne liste:[[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]]
. - Udfør matrixmultiplikation mellem
W
ogX
for at beregneY
. - Beregn middelkvadreret fejl (MSE):
tab = mean((Y - Ytarget)
2 ). - Beregn gradienten af tabet (
loss
) med hensyn tilW
ved hjælp af backpropagation. - Udskriv den beregnede gradient af
W
.
Løsning
Tak for dine kommentarer!
single
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 gradients are calculated in this example?
What happens if I change the values in the tensor `x`?
How do I disable gradient tracking for specific operations?
Awesome!
Completion rate improved to 5
Multi-Trins Backpropagation
Stryg for at vise menuen
Ligesom Tensorflow tillader PyTorch også opbygning af mere komplekse beregningsgrafer, der involverer flere mellemliggende tensorer.
12345678910111213import torch # Create a 2D tensor with gradient tracking x = torch.tensor([[1.0, 2.0, 3.0], [3.0, 2.0, 1.0]], requires_grad=True) # Define intermediate layers y = 6 * x + 3 z = 10 * y ** 2 # Compute the mean of the final output output_mean = z.mean() print(f"Output: {output_mean}") # Perform backpropagation output_mean.backward() # Print the gradient of x print("Gradient of x:\n", x.grad)
Gradienten af output_mean
med hensyn til x
beregnes ved hjælp af kædereglen. Resultatet viser, hvor meget en lille ændring i hvert element af x
påvirker output_mean
.
Deaktivering af gradientsporing
I visse tilfælde kan det være ønskeligt at deaktivere gradientsporing for at spare hukommelse og beregning. Da requires_grad=False
er standardindstillingen, kan du blot oprette tensoren uden at angive denne parameter:
x = torch.tensor([[1.0, 2.0, 3.0], [3.0, 2.0, 1.0]])
Swipe to start coding
Du skal opbygge et simpelt neuralt netværk i PyTorch. Dit mål er at beregne gradienten af tabet med hensyn til vægtmatricen.
- Definér en tilfældig vægtmatrix (tensor)
W
med formen1x3
, initialiseret med værdier fra en uniform fordeling over [0, 1], med gradientsporing aktiveret. - Opret en inputmatrix (tensor)
X
baseret på denne liste:[[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]]
. - Udfør matrixmultiplikation mellem
W
ogX
for at beregneY
. - Beregn middelkvadreret fejl (MSE):
tab = mean((Y - Ytarget)
2 ). - Beregn gradienten af tabet (
loss
) med hensyn tilW
ved hjælp af backpropagation. - Udskriv den beregnede gradient af
W
.
Løsning
Tak for dine kommentarer!
Awesome!
Completion rate improved to 5single