CommencezCommencez gratuitement

Optimiser avec des gradients

On vous donne une fonction de perte, \(y = x^{2}\), que vous souhaitez minimiser. Vous pouvez y arriver en calculant la pente à l'aide de l'opération GradientTape() pour différentes valeurs de x. Si la pente est positive, vous pouvez réduire la perte en diminuant x. Si elle est négative, vous pouvez la réduire en augmentant x. C'est le principe de 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 exécuter automatiquement la descente de gradient. Dans cet exercice toutefois, vous allez calculer la pente aux valeurs de x égales à -1, 1 et 0. Les opérations suivantes sont disponibles : GradientTape(), multiply(), et Variable().

Cette activité fait partie du cours

Introduction à TensorFlow en Python

Voir le cours

Instructions de l’exercice

  • 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érateurs.
  • Configurez la fonction pour retourner le gradient de y par rapport à x.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

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