Gradienten in PyTorch
Zur Wiederholung: Gradienten sind partielle Ableitungen einer Funktion bezüglich ihrer Eingaben.
Gradienten sind grundlegend für Optimierungsaufgaben wie das Trainieren von neuronalen Netzen, da sie helfen, Gewichte und Biases zur Fehlerminimierung anzupassen. 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 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 Tensors mit requires_grad=True durchgeführt werden. Dieser Graph speichert die Beziehungen zwischen Tensors und Operationen und ermöglicht so die automatische Differenzierung.
Wir beginnen mit der Definition einer einfachen Polynomfunktion:
y = 5x
Das Ziel ist, 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 (computational graph), erstellt mit der PyTorchViz-Bibliothek, mag auf den ersten Blick etwas komplex erscheinen, vermittelt jedoch effektiv die dahinterliegende Hauptidee:
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
Großartig!
Completion Rate verbessert auf 5
Gradienten in PyTorch
Swipe um das Menü anzuzeigen
Zur Wiederholung: Gradienten sind partielle Ableitungen einer Funktion bezüglich ihrer Eingaben.
Gradienten sind grundlegend für Optimierungsaufgaben wie das Trainieren von neuronalen Netzen, da sie helfen, Gewichte und Biases zur Fehlerminimierung anzupassen. 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 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 Tensors mit requires_grad=True durchgeführt werden. Dieser Graph speichert die Beziehungen zwischen Tensors und Operationen und ermöglicht so die automatische Differenzierung.
Wir beginnen mit der Definition einer einfachen Polynomfunktion:
y = 5x
Das Ziel ist, 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 (computational graph), erstellt mit der PyTorchViz-Bibliothek, mag auf den ersten Blick etwas komplex erscheinen, vermittelt jedoch effektiv die dahinterliegende Hauptidee:
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!