Flertrinns Tilbakepropagering
Som med Tensorflow gir PyTorch deg også mulighet til å bygge mer komplekse beregningsgrafer som involverer flere mellomliggende 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 til output_mean med hensyn til x beregnes ved hjelp av kjerneregelen. Resultatet viser hvor mye en liten endring i hvert element av x påvirker output_mean.
Deaktivere gradientsporing
I enkelte tilfeller kan det være ønskelig å deaktivere gradientsporing for å spare minne og beregningsressurser. Siden requires_grad=False er standardinnstillingen, kan du ganske enkelt opprette tensoren uten å angi denne parameteren:
x = torch.tensor([[1.0, 2.0, 3.0], [3.0, 2.0, 1.0]])
Swipe to start coding
Du skal bygge et enkelt nevralt nettverk i PyTorch. Målet ditt er å beregne gradienten til tapet med hensyn til vektmatrisen.
- Definer en tilfeldig vektmatrise (tensor)
Wmed form1x3, initialisert med verdier fra en uniform fordeling over [0, 1], med gradientsporing aktivert. - Opprett en inputmatrise (tensor)
Xbasert på denne listen:[[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]]. - Utfør matrise-multiplikasjon mellom
WogXfor å beregneY. - Beregn gjennomsnittlig kvadratfeil (MSE):
tap = mean((Y - Ytarget)
2 ). - Beregn gradienten til tapet (
loss) med hensyn tilWved hjelp av tilbakepropagering. - Skriv ut den beregnede gradienten til
W.
Løsning
Takk for tilbakemeldingene dine!
single
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Can you explain how the gradients are calculated in this example?
What happens if I change the values in the tensor `x`?
How does disabling gradient tracking affect performance?
Awesome!
Completion rate improved to 5
Flertrinns Tilbakepropagering
Sveip for å vise menyen
Som med Tensorflow gir PyTorch deg også mulighet til å bygge mer komplekse beregningsgrafer som involverer flere mellomliggende 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 til output_mean med hensyn til x beregnes ved hjelp av kjerneregelen. Resultatet viser hvor mye en liten endring i hvert element av x påvirker output_mean.
Deaktivere gradientsporing
I enkelte tilfeller kan det være ønskelig å deaktivere gradientsporing for å spare minne og beregningsressurser. Siden requires_grad=False er standardinnstillingen, kan du ganske enkelt opprette tensoren uten å angi denne parameteren:
x = torch.tensor([[1.0, 2.0, 3.0], [3.0, 2.0, 1.0]])
Swipe to start coding
Du skal bygge et enkelt nevralt nettverk i PyTorch. Målet ditt er å beregne gradienten til tapet med hensyn til vektmatrisen.
- Definer en tilfeldig vektmatrise (tensor)
Wmed form1x3, initialisert med verdier fra en uniform fordeling over [0, 1], med gradientsporing aktivert. - Opprett en inputmatrise (tensor)
Xbasert på denne listen:[[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]]. - Utfør matrise-multiplikasjon mellom
WogXfor å beregneY. - Beregn gjennomsnittlig kvadratfeil (MSE):
tap = mean((Y - Ytarget)
2 ). - Beregn gradienten til tapet (
loss) med hensyn tilWved hjelp av tilbakepropagering. - Skriv ut den beregnede gradienten til
W.
Løsning
Takk for tilbakemeldingene dine!
single