IniziaInizia gratis

Ottimizzazione con i gradienti

Ti viene data una funzione di perdita, \(y = x^{2}\), che vuoi minimizzare. Puoi farlo calcolando la pendenza usando l'operazione GradientTape() a diversi valori di x. Se la pendenza è positiva, puoi ridurre la perdita diminuendo x. Se è negativa, puoi ridurla aumentando x. Questo è il funzionamento del gradient descent.

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.

Nella pratica, userai un'operazione di alto livello di tensorflow per eseguire automaticamente il gradient descent. In questo esercizio, però, calcolerai la pendenza ai valori di x -1, 1 e 0. Sono disponibili le seguenti operazioni: GradientTape(), multiply(), e Variable().

Questo esercizio fa parte del corso

Introduzione a TensorFlow in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Definisci x come variabile con valore iniziale x0.
  • Imposta la funzione di perdita, y, uguale a x moltiplicato per x. Non usare l'operator overloading.
  • Fai in modo che la funzione restituisca il gradiente di y rispetto a x.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

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))
Modifica ed esegui il codice