Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Flertrins-Bagudpropagering | Mere Avancerede Begreber
Pytorch Essentials

bookFlertrins-Bagudpropagering

Ligesom Tensorflow tillader PyTorch også opbygning af mere komplekse beregningsgrafer, der involverer flere mellemliggende tensorer.

12345678910111213
import 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)
copy

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]])
Opgave

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.

  1. Definér en tilfældig vægtmatrix (tensor) W med formen 1x3, initialiseret med værdier fra en uniform fordeling over [0, 1], med gradientsporing aktiveret.
  2. Opret en inputmatrix (tensor) X baseret på denne liste: [[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]].
  3. Udfør matrixmultiplikation mellem W og X for at beregne Y.
  4. Beregn middelkvadreret fejl (MSE): tab = mean((Y - Ytarget)2).
  5. Beregn gradienten af tabet (loss) med hensyn til W ved hjælp af backpropagation.
  6. Udskriv den beregnede gradient for W.

Løsning

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 2
single

single

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

close

Awesome!

Completion rate improved to 5

bookFlertrins-Bagudpropagering

Stryg for at vise menuen

Ligesom Tensorflow tillader PyTorch også opbygning af mere komplekse beregningsgrafer, der involverer flere mellemliggende tensorer.

12345678910111213
import 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)
copy

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]])
Opgave

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.

  1. Definér en tilfældig vægtmatrix (tensor) W med formen 1x3, initialiseret med værdier fra en uniform fordeling over [0, 1], med gradientsporing aktiveret.
  2. Opret en inputmatrix (tensor) X baseret på denne liste: [[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]].
  3. Udfør matrixmultiplikation mellem W og X for at beregne Y.
  4. Beregn middelkvadreret fejl (MSE): tab = mean((Y - Ytarget)2).
  5. Beregn gradienten af tabet (loss) med hensyn til W ved hjælp af backpropagation.
  6. Udskriv den beregnede gradient for W.

Løsning

Switch to desktopSkift til skrivebord for at øve i den virkelige verdenFortsæt der, hvor du er, med en af nedenstående muligheder
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 2
single

single

some-alt