Kursinhalt
Pytorch Grundlagen
Pytorch Grundlagen
Gradienten in PyTorch
Gradienten sind grundlegend in Optimierungsaufgaben wie dem Training von neuronalen Netzwerken, wo sie helfen, Gewichte und Verzerrungen anzupassen, um Fehler zu minimieren. In PyTorch werden sie automatisch mit dem autograd
-Modul berechnet, das Operationen auf Tensors verfolgt und Ableitungen effizient berechnet.
Aktivierung der Gradientenverfolgung
Um die Gradientenverfolgung für einen Tensor zu aktivieren, wird das Argument requires_grad=True
verwendet, wenn der Tensor erstellt wird. Dies teilt PyTorch mit, alle Operationen auf dem Tensor für die Gradientenberechnung zu verfolgen.
import torch # Create a tensor with gradient tracking enabled tensor = torch.tensor(2.0, requires_grad=True) print(tensor)
Aufbau eines Rechengraphen
PyTorch erstellt einen dynamischen Rechengraphen, während Sie Operationen an Tensors mit requires_grad=True
durchführen. Dieser Graph speichert die Beziehungen zwischen Tensors und Operationen und ermöglicht die automatische Differenzierung.
Wir beginnen mit der Definition einer recht einfachen Polynomfunktion:
y = 5x
Unser Ziel ist es, die Ableitung in Bezug auf x
bei x = 2
zu berechnen.
import 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}")
Die Visualisierung dieses Rechengraphen, erstellt mit der PyTorchViz-Bibliothek, mag etwas komplex erscheinen, vermittelt jedoch effektiv die dahinterstehende Hauptidee:
Berechnung von Gradienten
Um den Gradienten zu berechnen, sollte die Methode backward()
auf dem Ausgabetensor aufgerufen werden. Dies berechnet die Ableitung der Funktion in Bezug auf den Eingabetensor.
Der berechnete Gradient selbst kann dann mit dem Attribut .grad
abgerufen werden.
import 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}")
Der berechnete Gradient ist die Ableitung von y
in Bezug auf x
, ausgewertet bei x = 2
.
Danke für Ihr Feedback!