Kursinhalt
Einführung in TensorFlow
Einführung in TensorFlow
Gradient Tape
Gradient Tape
Nachdem wir nun die grundlegenden Tensoroperationen verstanden haben, können wir diese Prozesse mit integrierten TensorFlow-Funktionen optimieren und beschleunigen. Das erste dieser fortgeschrittenen Werkzeuge, das wir erkunden werden, ist das Gradient Tape.
Was ist Gradient Tape?
In diesem Kapitel werden wir eines der grundlegenden Konzepte in TensorFlow, das Gradient Tape, näher betrachten. Diese Funktion ist entscheidend für das Verständnis und die Implementierung von gradientenbasierten Optimierungstechniken, insbesondere im Deep Learning.
Gradient Tape in TensorFlow ist ein Werkzeug, das Operationen für die automatische Differenzierung aufzeichnet. Wenn Sie Operationen innerhalb eines Gradient Tape-Blocks ausführen, verfolgt TensorFlow alle Berechnungen, die stattfinden. Dies ist besonders nützlich für das Training von maschinellen Lernmodellen, bei denen Gradienten benötigt werden, um Modellparameter zu optimieren.
Hinweis
Im Wesentlichen ist ein Gradient eine Menge von partiellen Ableitungen.
Verwendung von Gradient Tape
Um Gradient Tape zu verwenden, befolgen Sie diese Schritte:
- Erstellen Sie einen Gradient Tape-Block: Verwenden Sie
with tf.GradientTape() as tape:
. Innerhalb dieses Blocks werden alle Berechnungen verfolgt; - Definieren Sie die Berechnungen: Führen Sie Operationen mit Tensoren innerhalb des Blocks durch (z.B. definieren Sie einen Vorwärtsdurchlauf eines neuronalen Netzwerks);
- Berechnen Sie die Gradienten: Verwenden Sie
tape.gradient(target, sources)
, um die Gradienten des Ziels in Bezug auf die Quellen zu berechnen.
Einfache Gradientenberechnung
Lassen Sie uns ein einfaches Beispiel durchgehen, um dies besser zu verstehen.
import tensorflow as tf # Define input variables x = tf.Variable(3.0) # Start recording the operations with tf.GradientTape() as tape: # Define the calculations y = x * x # Extract the gradient for the specific input (`x`) grad = tape.gradient(y, x) print(f'Result of y: {y}') print(f'The gradient of y with respect to x is: {grad.numpy()}')
Dieser Code berechnet den Gradienten von y = x^2
bei x = 3
. Dies entspricht der partiellen Ableitung von y
in Bezug auf x
.
Mehrere partielle Ableitungen
Wenn der Output von mehreren Eingaben beeinflusst wird, können wir eine partielle Ableitung in Bezug auf jede dieser Eingaben (oder nur einige ausgewählte) berechnen. Dies wird erreicht, indem eine Liste von Variablen als sources
-Parameter bereitgestellt wird.
Das Ergebnis dieser Operation wird eine entsprechende Liste von Tensoren sein, wobei jeder Tensor die partielle Ableitung in Bezug auf jede der in sources
angegebenen Variablen darstellt.
import tensorflow as tf # Define input variables x = tf.Variable(tf.fill((2, 3), 3.0)) z = tf.Variable(5.0) # Start recording the operations with tf.GradientTape() as tape: # Define the calculations y = tf.reduce_sum(x * x + 2 * z) # Extract the gradient for the specific inputs (`x` and `z`) grad = tape.gradient(y, [x, z]) print(f'Result of y: {y}') print(f"The gradient of y with respect to x is:\n{grad[0].numpy()}") print(f"The gradient of y with respect to z is: {grad[1].numpy()}")
Dieser Code berechnet den Gradienten der Funktion y = sum(x^2 + 2*z)
für gegebene Werte von x
und z
. In diesem Beispiel wird der Gradient von x
als ein 2D-Tensor dargestellt, wobei jedes Element der partiellen Ableitung des jeweiligen Wertes in der ursprünglichen x
-Matrix entspricht.
Hinweis
Für zusätzliche Einblicke in die Fähigkeiten von Gradient Tape, einschließlich höherer Ableitungen und der Extraktion der Jacobian-Matrix, konsultieren Sie die offizielle TensorFlow-Dokumentation.
Swipe to start coding
Ihr Ziel ist es, den Gradient (Ableitung) einer gegebenen mathematischen Funktion an einem bestimmten Punkt mit TensorFlows Gradient Tape zu berechnen. Die Funktion und der Punkt werden bereitgestellt, und Sie werden sehen, wie Sie TensorFlow verwenden, um den Gradient an diesem Punkt zu finden.
Betrachten Sie eine quadratische Funktion einer einzelnen Variablen x
, definiert als:
f(x) = x^2 + 2x - 1
Ihre Aufgabe ist es, die Ableitung dieser Funktion bei x = 2
zu berechnen.
Schritte
- Definieren Sie die Variable
x
an dem Punkt, an dem Sie die Ableitung berechnen möchten. - Verwenden Sie Gradient Tape, um die Berechnung der Funktion
f(x)
aufzuzeichnen. - Berechnen Sie den Gradient von
f(x)
an dem angegebenen Punkt.
Hinweis
Der Gradient kann nur für Werte des Gleitkommatyps berechnet werden.

Lösung
Danke für Ihr Feedback!
Gradient Tape
Gradient Tape
Nachdem wir nun die grundlegenden Tensoroperationen verstanden haben, können wir diese Prozesse mit integrierten TensorFlow-Funktionen optimieren und beschleunigen. Das erste dieser fortgeschrittenen Werkzeuge, das wir erkunden werden, ist das Gradient Tape.
Was ist Gradient Tape?
In diesem Kapitel werden wir eines der grundlegenden Konzepte in TensorFlow, das Gradient Tape, näher betrachten. Diese Funktion ist entscheidend für das Verständnis und die Implementierung von gradientenbasierten Optimierungstechniken, insbesondere im Deep Learning.
Gradient Tape in TensorFlow ist ein Werkzeug, das Operationen für die automatische Differenzierung aufzeichnet. Wenn Sie Operationen innerhalb eines Gradient Tape-Blocks ausführen, verfolgt TensorFlow alle Berechnungen, die stattfinden. Dies ist besonders nützlich für das Training von maschinellen Lernmodellen, bei denen Gradienten benötigt werden, um Modellparameter zu optimieren.
Hinweis
Im Wesentlichen ist ein Gradient eine Menge von partiellen Ableitungen.
Verwendung von Gradient Tape
Um Gradient Tape zu verwenden, befolgen Sie diese Schritte:
- Erstellen Sie einen Gradient Tape-Block: Verwenden Sie
with tf.GradientTape() as tape:
. Innerhalb dieses Blocks werden alle Berechnungen verfolgt; - Definieren Sie die Berechnungen: Führen Sie Operationen mit Tensoren innerhalb des Blocks durch (z.B. definieren Sie einen Vorwärtsdurchlauf eines neuronalen Netzwerks);
- Berechnen Sie die Gradienten: Verwenden Sie
tape.gradient(target, sources)
, um die Gradienten des Ziels in Bezug auf die Quellen zu berechnen.
Einfache Gradientenberechnung
Lassen Sie uns ein einfaches Beispiel durchgehen, um dies besser zu verstehen.
import tensorflow as tf # Define input variables x = tf.Variable(3.0) # Start recording the operations with tf.GradientTape() as tape: # Define the calculations y = x * x # Extract the gradient for the specific input (`x`) grad = tape.gradient(y, x) print(f'Result of y: {y}') print(f'The gradient of y with respect to x is: {grad.numpy()}')
Dieser Code berechnet den Gradienten von y = x^2
bei x = 3
. Dies entspricht der partiellen Ableitung von y
in Bezug auf x
.
Mehrere partielle Ableitungen
Wenn der Output von mehreren Eingaben beeinflusst wird, können wir eine partielle Ableitung in Bezug auf jede dieser Eingaben (oder nur einige ausgewählte) berechnen. Dies wird erreicht, indem eine Liste von Variablen als sources
-Parameter bereitgestellt wird.
Das Ergebnis dieser Operation wird eine entsprechende Liste von Tensoren sein, wobei jeder Tensor die partielle Ableitung in Bezug auf jede der in sources
angegebenen Variablen darstellt.
import tensorflow as tf # Define input variables x = tf.Variable(tf.fill((2, 3), 3.0)) z = tf.Variable(5.0) # Start recording the operations with tf.GradientTape() as tape: # Define the calculations y = tf.reduce_sum(x * x + 2 * z) # Extract the gradient for the specific inputs (`x` and `z`) grad = tape.gradient(y, [x, z]) print(f'Result of y: {y}') print(f"The gradient of y with respect to x is:\n{grad[0].numpy()}") print(f"The gradient of y with respect to z is: {grad[1].numpy()}")
Dieser Code berechnet den Gradienten der Funktion y = sum(x^2 + 2*z)
für gegebene Werte von x
und z
. In diesem Beispiel wird der Gradient von x
als ein 2D-Tensor dargestellt, wobei jedes Element der partiellen Ableitung des jeweiligen Wertes in der ursprünglichen x
-Matrix entspricht.
Hinweis
Für zusätzliche Einblicke in die Fähigkeiten von Gradient Tape, einschließlich höherer Ableitungen und der Extraktion der Jacobian-Matrix, konsultieren Sie die offizielle TensorFlow-Dokumentation.
Swipe to start coding
Ihr Ziel ist es, den Gradient (Ableitung) einer gegebenen mathematischen Funktion an einem bestimmten Punkt mit TensorFlows Gradient Tape zu berechnen. Die Funktion und der Punkt werden bereitgestellt, und Sie werden sehen, wie Sie TensorFlow verwenden, um den Gradient an diesem Punkt zu finden.
Betrachten Sie eine quadratische Funktion einer einzelnen Variablen x
, definiert als:
f(x) = x^2 + 2x - 1
Ihre Aufgabe ist es, die Ableitung dieser Funktion bei x = 2
zu berechnen.
Schritte
- Definieren Sie die Variable
x
an dem Punkt, an dem Sie die Ableitung berechnen möchten. - Verwenden Sie Gradient Tape, um die Berechnung der Funktion
f(x)
aufzuzeichnen. - Berechnen Sie den Gradient von
f(x)
an dem angegebenen Punkt.
Hinweis
Der Gradient kann nur für Werte des Gleitkommatyps berechnet werden.

Lösung
Danke für Ihr Feedback!