Flertrins-Bagudpropagering
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)
Wmed formen1x3, initialiseret med værdier fra en uniform fordeling over [0, 1], med gradientsporing aktiveret. - Opret en inputmatrix (tensor)
Xbaseret på denne liste:[[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]]. - Udfør matrixmultiplikation mellem
WogXfor at beregneY. - Beregn middelkvadreret fejl (MSE):
tab = mean((Y - Ytarget)
2 ). - Beregn gradienten af tabet (
loss) med hensyn tilWved hjælp af backpropagation. - Udskriv den beregnede gradient for
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
Awesome!
Completion rate improved to 5
Flertrins-Bagudpropagering
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)
Wmed formen1x3, initialiseret med værdier fra en uniform fordeling over [0, 1], med gradientsporing aktiveret. - Opret en inputmatrix (tensor)
Xbaseret på denne liste:[[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]]. - Udfør matrixmultiplikation mellem
WogXfor at beregneY. - Beregn middelkvadreret fejl (MSE):
tab = mean((Y - Ytarget)
2 ). - Beregn gradienten af tabet (
loss) med hensyn tilWved hjælp af backpropagation. - Udskriv den beregnede gradient for
W.
Løsning
Tak for dine kommentarer!
single