LoslegenKostenlos loslegen

Mit Gradienten optimieren

Gegeben ist eine Verlustfunktion \(y = x^{2}\), die du minimieren möchtest. Das gelingt, indem du die Steigung mit GradientTape() bei verschiedenen Werten von x berechnest. Ist die Steigung positiv, kannst du den Verlust verringern, indem du x verkleinerst. Ist sie negativ, verringerst du ihn, indem du x vergrößerst. So funktioniert Gradientenabstieg.

The image shows a plot of y equals x squared. It also shows the gradient at x equals -1, x equals 0, and x equals 1.

In der Praxis verwendest du eine High-Level-Operation von tensorflow, um den Gradientenabstieg automatisch auszuführen. In dieser Übung berechnest du jedoch die Steigung bei x-Werten von -1, 1 und 0. Folgende Operationen stehen dir zur Verfügung: GradientTape(), multiply() und Variable().

Diese Übung ist Teil des Kurses

Einführung in TensorFlow mit Python

Kurs anzeigen

Anleitung zur Übung

  • Definiere x als Variable mit dem Anfangswert x0.
  • Setze die Verlustfunktion y gleich x mal x. Verwende dabei kein Operator Overloading.
  • Lege fest, dass die Funktion den Gradienten von y bezüglich x zurückgibt.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

def compute_gradient(x0):
  	# Define x as a variable with an initial value of x0
	x = ____(x0)
	with GradientTape() as tape:
		tape.watch(x)
        # Define y using the multiply operation
		y = ____
    # Return the gradient of y with respect to x
	return tape.gradient(____, ____).numpy()

# Compute and print gradients at x = -1, 1, and 0
print(compute_gradient(-1.0))
print(compute_gradient(1.0))
print(compute_gradient(0.0))
Code bearbeiten und ausführen