Flerstegs-Backpropagering
Precis som Tensorflow tillåter PyTorch att bygga mer komplexa beräkningsgrafer som involverar flera intermediära 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 av output_mean med avseende på x beräknas med hjälp av kedjeregeln. Resultatet visar hur mycket en liten förändring i varje element av x påverkar output_mean.
Inaktivering av gradientspårning
I vissa fall kan det vara önskvärt att inaktivera gradientspårning för att spara minne och beräkningsresurser. Eftersom requires_grad=False är standardbeteendet kan du helt enkelt skapa tensorn utan att ange denna parameter:
x = torch.tensor([[1.0, 2.0, 3.0], [3.0, 2.0, 1.0]])
Swipe to start coding
Du ska bygga ett enkelt neuralt nätverk i PyTorch. Målet är att beräkna gradienten av förlusten med avseende på viktmatrisen.
- Definiera en slumpmässig viktmatris (tensor)
Wmed formen1x3, initialiserad med värden från en uniform fördelning över [0, 1], med gradientspårning aktiverad. - Skapa en inmatningsmatris (tensor)
Xbaserad på denna lista:[[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]]. - Utför matrismultiplikation mellan
WochXför att beräknaY. - Beräkna medelkvadratfel (MSE):
loss = mean((Y - Ytarget)
2 ). - Beräkna gradienten av förlusten (
loss) med avseende påWmed hjälp av backpropagation. - Skriv ut den beräknade gradienten för
W.
Lösning
Tack för dina kommentarer!
single
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
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
Flerstegs-Backpropagering
Svep för att visa menyn
Precis som Tensorflow tillåter PyTorch att bygga mer komplexa beräkningsgrafer som involverar flera intermediära 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 av output_mean med avseende på x beräknas med hjälp av kedjeregeln. Resultatet visar hur mycket en liten förändring i varje element av x påverkar output_mean.
Inaktivering av gradientspårning
I vissa fall kan det vara önskvärt att inaktivera gradientspårning för att spara minne och beräkningsresurser. Eftersom requires_grad=False är standardbeteendet kan du helt enkelt skapa tensorn utan att ange denna parameter:
x = torch.tensor([[1.0, 2.0, 3.0], [3.0, 2.0, 1.0]])
Swipe to start coding
Du ska bygga ett enkelt neuralt nätverk i PyTorch. Målet är att beräkna gradienten av förlusten med avseende på viktmatrisen.
- Definiera en slumpmässig viktmatris (tensor)
Wmed formen1x3, initialiserad med värden från en uniform fördelning över [0, 1], med gradientspårning aktiverad. - Skapa en inmatningsmatris (tensor)
Xbaserad på denna lista:[[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]]. - Utför matrismultiplikation mellan
WochXför att beräknaY. - Beräkna medelkvadratfel (MSE):
loss = mean((Y - Ytarget)
2 ). - Beräkna gradienten av förlusten (
loss) med avseende påWmed hjälp av backpropagation. - Skriv ut den beräknade gradienten för
W.
Lösning
Tack för dina kommentarer!
single