Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Gradient Tape | Grundlagen von TensorFlow
Einführung in TensorFlow
course content

Kursinhalt

Einführung in TensorFlow

Einführung in TensorFlow

1. Tensoren
2. Grundlagen von TensorFlow

book
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.

123456789101112131415
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()}')
copy

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.

1234567891011121314151617
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()}")
copy

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.

Aufgabe

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

  1. Definieren Sie die Variable x an dem Punkt, an dem Sie die Ableitung berechnen möchten.
  2. Verwenden Sie Gradient Tape, um die Berechnung der Funktion f(x) aufzuzeichnen.
  3. Berechnen Sie den Gradient von f(x) an dem angegebenen Punkt.

Hinweis

Der Gradient kann nur für Werte des Gleitkommatyps berechnet werden.

Derivative of a Function at a Point

Lösung

Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 1
toggle bottom row

book
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.

123456789101112131415
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()}')
copy

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.

1234567891011121314151617
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()}")
copy

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.

Aufgabe

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

  1. Definieren Sie die Variable x an dem Punkt, an dem Sie die Ableitung berechnen möchten.
  2. Verwenden Sie Gradient Tape, um die Berechnung der Funktion f(x) aufzuzeichnen.
  3. Berechnen Sie den Gradient von f(x) an dem angegebenen Punkt.

Hinweis

Der Gradient kann nur für Werte des Gleitkommatyps berechnet werden.

Derivative of a Function at a Point

Lösung

Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 1
Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
We're sorry to hear that something went wrong. What happened?
some-alt