Gradienten in PyTorch
Gradienten sind grundlegend bei Optimierungsaufgaben wie dem Training von neuronalen Netzwerken, da sie helfen, Gewichte und Biases anzupassen, um den Fehler zu minimieren. In PyTorch werden sie automatisch mit dem autograd
-Modul berechnet, das Operationen auf Tensoren verfolgt und Ableitungen effizient berechnet.
Aktivierung der Gradientenverfolgung
Um die Gradientenverfolgung für einen Tensor zu aktivieren, wird beim Erstellen des Tensors das Argument requires_grad=True
verwendet. Dies weist PyTorch an, alle Operationen auf dem Tensor für die Gradientenberechnung zu verfolgen.
1234import torch # Create a tensor with gradient tracking enabled tensor = torch.tensor(2.0, requires_grad=True) print(tensor)
Aufbau eines Rechenbaums
PyTorch erstellt einen dynamischen Rechenbaum (computational graph), während Operationen an Tensoren mit requires_grad=True
durchgeführt werden. Dieser Graph speichert die Beziehungen zwischen Tensoren und Operationen und ermöglicht so die automatische Differenzierung.
Wir beginnen mit der Definition einer einfachen Polynomfunktion:
y = 5x
Das Ziel ist es, die Ableitung bezüglich x
an der Stelle x = 2
zu berechnen.
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}")
Die Visualisierung dieses Rechenbaums, erstellt mit der PyTorchViz-Bibliothek, mag auf den ersten Blick komplex erscheinen, vermittelt jedoch effektiv das zugrunde liegende Prinzip:
Gradientenberechnung
Um den Gradienten zu berechnen, muss die Methode backward()
auf dem Ausgabetensor aufgerufen werden. Dadurch wird die Ableitung der Funktion bezüglich des Eingabetensors berechnet.
Der berechnete Gradient kann anschließend über das Attribut .grad
abgerufen werden.
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}")
Der berechnete Gradient ist die Ableitung von y
nach x
, ausgewertet bei x = 2
.
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Awesome!
Completion rate improved to 5
Gradienten in PyTorch
Swipe um das Menü anzuzeigen
Gradienten sind grundlegend bei Optimierungsaufgaben wie dem Training von neuronalen Netzwerken, da sie helfen, Gewichte und Biases anzupassen, um den Fehler zu minimieren. In PyTorch werden sie automatisch mit dem autograd
-Modul berechnet, das Operationen auf Tensoren verfolgt und Ableitungen effizient berechnet.
Aktivierung der Gradientenverfolgung
Um die Gradientenverfolgung für einen Tensor zu aktivieren, wird beim Erstellen des Tensors das Argument requires_grad=True
verwendet. Dies weist PyTorch an, alle Operationen auf dem Tensor für die Gradientenberechnung zu verfolgen.
1234import torch # Create a tensor with gradient tracking enabled tensor = torch.tensor(2.0, requires_grad=True) print(tensor)
Aufbau eines Rechenbaums
PyTorch erstellt einen dynamischen Rechenbaum (computational graph), während Operationen an Tensoren mit requires_grad=True
durchgeführt werden. Dieser Graph speichert die Beziehungen zwischen Tensoren und Operationen und ermöglicht so die automatische Differenzierung.
Wir beginnen mit der Definition einer einfachen Polynomfunktion:
y = 5x
Das Ziel ist es, die Ableitung bezüglich x
an der Stelle x = 2
zu berechnen.
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}")
Die Visualisierung dieses Rechenbaums, erstellt mit der PyTorchViz-Bibliothek, mag auf den ersten Blick komplex erscheinen, vermittelt jedoch effektiv das zugrunde liegende Prinzip:
Gradientenberechnung
Um den Gradienten zu berechnen, muss die Methode backward()
auf dem Ausgabetensor aufgerufen werden. Dadurch wird die Ableitung der Funktion bezüglich des Eingabetensors berechnet.
Der berechnete Gradient kann anschließend über das Attribut .grad
abgerufen werden.
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}")
Der berechnete Gradient ist die Ableitung von y
nach x
, ausgewertet bei x = 2
.
Danke für Ihr Feedback!