Kom igångKom igång gratis

Optimering med gradienter

Du har en förlustfunktion, \(y = x^{2}\), som du vill minimera. Det gör du genom att beräkna lutningen med operationen GradientTape() för olika värden på x. Om lutningen är positiv kan du minska förlusten genom att sänka x. Om den är negativ kan du minska den genom att öka x. Det är så gradientmetoden fungerar.

Bilden visar ett diagram över y lika med x i kvadrat. Den visar även gradienten vid x lika med -1, x lika med 0 och x lika med 1.

I praktiken används en högnivåoperation i tensorflow för att utföra gradientmetoden automatiskt. I den här övningen beräknar du dock lutningen för x-värdena -1, 1 och 0. Följande operationer finns tillgängliga: GradientTape(), multiply() och Variable().

Den här övningen är en del av kursen

Introduktion till TensorFlow i Python

Visa kurs

Övningsinstruktioner

  • Definiera x som en variabel med startvärdet x0.
  • Sätt förlustfunktionen y lika med x multiplicerat med x. Använd inte operatoröverlagring.
  • Låt funktionen returnera gradienten av y med avseende på x.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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))
Redigera och kör kod