CommencerCommencer gratuitement

Optimiser avec les gradients

On vous donne une fonction de perte, \(y = x^{2}\), que vous souhaitez minimiser. Vous pouvez y parvenir en calculant la pente avec l’opération GradientTape() pour différentes valeurs de x. Si la pente est positive, vous pouvez diminuer la perte en réduisant x. Si elle est négative, vous pouvez la diminuer en augmentant x. C’est ainsi que fonctionne la descente de 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.

En pratique, vous utiliserez une opération de haut niveau de tensorflow pour effectuer automatiquement la descente de gradient. Dans cet exercice, toutefois, vous calculerez la pente pour des valeurs de x égales à -1, 1 et 0. Les opérations suivantes sont disponibles : GradientTape(), multiply(), et Variable().

Cet exercice fait partie du cours

Introduction à TensorFlow en Python

Afficher le cours

Instructions

  • Définissez x comme une variable avec la valeur initiale x0.
  • Définissez la fonction de perte y comme x multiplié par x. N’utilisez pas la surcharge d’opérateur.
  • Configurez la fonction pour renvoyer le gradient de y par rapport à x.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

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))
Modifier et exécuter le code