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.

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
Övningsinstruktioner
- Definiera
xsom en variabel med startvärdetx0. - Sätt förlustfunktionen
ylika medxmultiplicerat medx. Använd inte operatoröverlagring. - Låt funktionen returnera gradienten av
ymed 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))