ComenzarEmpieza gratis

Optimización con gradientes

Tienes una función de pérdida, \(y = x^{2}\), que quieres minimizar. Puedes hacerlo calculando la pendiente con la operación GradientTape() en distintos valores de x. Si la pendiente es positiva, puedes reducir la pérdida disminuyendo x. Si es negativa, puedes reducirla aumentando x. Así es como funciona el descenso por gradiente.

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 la práctica, usarás una operación de alto nivel de tensorflow para realizar el descenso por gradiente de forma automática. En este ejercicio, sin embargo, calcularás la pendiente en los valores de x -1, 1 y 0. Están disponibles las siguientes operaciones: GradientTape(), multiply(), y Variable().

Este ejercicio forma parte del curso

Introducción a TensorFlow en Python

Ver curso

Instrucciones del ejercicio

  • Define x como una variable con el valor inicial x0.
  • Define la función de pérdida, y, como x multiplicado por x. No uses sobrecarga de operadores.
  • Haz que la función devuelva el gradiente de y con respecto a x.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

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))
Editar y ejecutar código