Gradiënten in PyTorch
Gradiënten zijn essentieel bij optimalisatietaken zoals het trainen van neurale netwerken, waar ze helpen om gewichten en biases aan te passen om de fout te minimaliseren. In PyTorch worden ze automatisch berekend met behulp van de autograd-module, die bewerkingen op tensors volgt en efficiënt afgeleiden berekent.
Inschakelen van gradiënttracking
Om gradiënttracking voor een tensor in te schakelen, wordt het argument requires_grad=True gebruikt bij het aanmaken van de tensor. Dit geeft aan PyTorch door om alle bewerkingen op de tensor te volgen voor gradiëntberekeningen.
1234import torch # Create a tensor with gradient tracking enabled tensor = torch.tensor(2.0, requires_grad=True) print(tensor)
Het opbouwen van een computationeel graaf
PyTorch bouwt een dynamische computationele graaf terwijl je bewerkingen uitvoert op tensors met requires_grad=True. Deze graaf slaat de relaties op tussen tensors en bewerkingen, waardoor automatische differentiatie mogelijk wordt.
We beginnen met het definiëren van een vrij eenvoudige polynoomfunctie:
y = 5x
Ons doel is om de afgeleide te berekenen ten opzichte van x bij x = 2.
123456import torch # Define the tensor x = torch.tensor(2.0, requires_grad=True) # Define the function y = 5 * x ** 3 + 2 * x ** 2 + 4 * x + 8 print(f"Function output: {y}")
De visualisatie van deze computationele graaf die is gemaakt met behulp van de PyTorchViz-bibliotheek kan enigszins complex lijken, maar geeft het belangrijkste idee erachter effectief weer:
Gradienten berekenen
Om de gradiënt te berekenen, moet de methode backward() worden aangeroepen op de output-tensor. Dit berekent de afgeleide van de functie ten opzichte van de input-tensor.
De berekende gradiënt kan vervolgens worden geraadpleegd met het .grad-attribuut.
12345678import torch x = torch.tensor(2.0, requires_grad=True) y = 5 * x ** 3 + 2 * x ** 2 + 4 * x + 8 # Perform backpropagation y.backward() # Print the gradient of x grad = x.grad print(f"Gradient of x: {grad}")
De berekende gradiënt is de afgeleide van y ten opzichte van x, geëvalueerd bij x = 2.
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Can you explain how the backward() method works in more detail?
What does the computed gradient value represent in this context?
How can I use these gradients for optimization in PyTorch?
Awesome!
Completion rate improved to 5
Gradiënten in PyTorch
Veeg om het menu te tonen
Gradiënten zijn essentieel bij optimalisatietaken zoals het trainen van neurale netwerken, waar ze helpen om gewichten en biases aan te passen om de fout te minimaliseren. In PyTorch worden ze automatisch berekend met behulp van de autograd-module, die bewerkingen op tensors volgt en efficiënt afgeleiden berekent.
Inschakelen van gradiënttracking
Om gradiënttracking voor een tensor in te schakelen, wordt het argument requires_grad=True gebruikt bij het aanmaken van de tensor. Dit geeft aan PyTorch door om alle bewerkingen op de tensor te volgen voor gradiëntberekeningen.
1234import torch # Create a tensor with gradient tracking enabled tensor = torch.tensor(2.0, requires_grad=True) print(tensor)
Het opbouwen van een computationeel graaf
PyTorch bouwt een dynamische computationele graaf terwijl je bewerkingen uitvoert op tensors met requires_grad=True. Deze graaf slaat de relaties op tussen tensors en bewerkingen, waardoor automatische differentiatie mogelijk wordt.
We beginnen met het definiëren van een vrij eenvoudige polynoomfunctie:
y = 5x
Ons doel is om de afgeleide te berekenen ten opzichte van x bij x = 2.
123456import torch # Define the tensor x = torch.tensor(2.0, requires_grad=True) # Define the function y = 5 * x ** 3 + 2 * x ** 2 + 4 * x + 8 print(f"Function output: {y}")
De visualisatie van deze computationele graaf die is gemaakt met behulp van de PyTorchViz-bibliotheek kan enigszins complex lijken, maar geeft het belangrijkste idee erachter effectief weer:
Gradienten berekenen
Om de gradiënt te berekenen, moet de methode backward() worden aangeroepen op de output-tensor. Dit berekent de afgeleide van de functie ten opzichte van de input-tensor.
De berekende gradiënt kan vervolgens worden geraadpleegd met het .grad-attribuut.
12345678import torch x = torch.tensor(2.0, requires_grad=True) y = 5 * x ** 3 + 2 * x ** 2 + 4 * x + 8 # Perform backpropagation y.backward() # Print the gradient of x grad = x.grad print(f"Gradient of x: {grad}")
De berekende gradiënt is de afgeleide van y ten opzichte van x, geëvalueerd bij x = 2.
Bedankt voor je feedback!