ÎncepețiÎncepe gratuit

Optimizare cu gradienți

Ți se oferă o funcție de pierdere, \(y = x^{2}\), pe care vrei să o minimizezi. Poți face acest lucru calculând panta cu ajutorul operației GradientTape() pentru diferite valori ale lui x. Dacă panta este pozitivă, poți reduce pierderea scăzând valoarea lui x. Dacă este negativă, o poți reduce mărind valoarea lui x. Aceasta este esența algoritmului de coborâre pe gradient.

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.

În practică, vei folosi o operație tensorflow de nivel înalt pentru a efectua coborârea pe gradient în mod automat. În acest exercițiu, însă, vei calcula panta pentru valorile x egale cu -1, 1 și 0. Operațiile disponibile sunt: GradientTape(), multiply() și Variable().

Acest exercițiu face parte din cursul

Introducere în TensorFlow în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Definește x ca variabilă cu valoarea inițială x0.
  • Setează funcția de pierdere, y, egală cu x înmulțit cu x. Nu folosi supraîncărcarea operatorilor.
  • Setează funcția să returneze gradientul lui y în raport cu x.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

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))
Editează și rulează codul