Začněte nyníZačněte zdarma

Optimalizace pomocí gradientů

Máš k dispozici ztrátovou funkci \(y = x^{2}\), kterou chceš minimalizovat. Toho dosáhneš výpočtem směrnice pomocí operace GradientTape() pro různé hodnoty x. Pokud je směrnice kladná, ztrátovou funkci snížíš zmenšením x. Pokud je záporná, snížíš ji zvětšením x. Přesně takto funguje gradientní sestup.

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.

V praxi budeš k automatickému provádění gradientního sestupu používat high-level operace tensorflow. V tomto cvičení si ale sám/sama vypočítáš směrnici pro hodnoty x rovné -1, 1 a 0. Máš k dispozici tyto operace: GradientTape(), multiply() a Variable().

Toto cvičení je součástí kurzu

Úvod do TensorFlow v Pythonu

Zobrazit kurz

Pokyny k cvičení

  • Definuj x jako proměnnou s počáteční hodnotou x0.
  • Nastav ztrátovou funkci y jako součin x krát x. Nepoužívej přetěžování operátorů.
  • Nastav funkci tak, aby vracela gradient y vzhledem k x.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

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))
Upravit a spustit kód