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.

Î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
Instrucțiuni pentru exercițiu
- Definește
xca variabilă cu valoarea inițialăx0. - Setează funcția de pierdere,
y, egală cuxînmulțit cux. Nu folosi supraîncărcarea operatorilor. - Setează funcția să returneze gradientul lui
yîn raport cux.
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))