Zacznij terazZacznij za darmo

Optymalizacja za pomocą gradientów

Dana jest funkcja straty \(y = x^{2}\), którą chcesz zminimalizować. Możesz to zrobić, obliczając nachylenie za pomocą operacji GradientTape() dla różnych wartości x. Jeśli nachylenie jest dodatnie, możesz zmniejszyć stratę, obniżając wartość x. Jeśli jest ujemne, możesz ją zmniejszyć, zwiększając x. Na tej zasadzie działa metoda gradientu prostego.

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.

W praktyce do automatycznego wykonywania metody gradientu prostego będziesz używać wysokopoziomowych operacji tensorflow. W tym ćwiczeniu jednak samodzielnie obliczysz nachylenie dla wartości x równych -1, 1 i 0. Dostępne są następujące operacje: GradientTape(), multiply() oraz Variable().

To ćwiczenie jest częścią kursu

Wprowadzenie do TensorFlow w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Zdefiniuj x jako zmienną z wartością początkową x0.
  • Ustaw funkcję straty y jako iloczyn x przez x. Nie używaj przeciążania operatorów.
  • Ustaw funkcję tak, aby zwracała gradient y względem x.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

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))
Edytuj i uruchom kod