ComenzarEmpieza gratis

Optimizar con gradientes

Se te da una función de pérdida, \(y = x^{2}\), que quieres minimizar. Puedes hacerlo calculando la pendiente mediante la operación GradientTape() a diferentes valores de x. Si la pendiente es positiva, puedes disminuir la pérdida bajando x. Si es negativo, puedes disminuirlo aumentando x. Así funciona el descenso por gradiente.

La imagen muestra un gráfico de y igual a x al cuadrado. También muestra el gradiente en x igual a -1, x igual a 0 y x igual a 1.

En la práctica, utilizarás una operación de alto nivel tensorflow para realizar el descenso de gradiente automáticamente. En este ejercicio, sin embargo, calcularás la pendiente en x con valores de -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 de ejercicio

  • Define x como una variable con el valor inicial x0.
  • Establece la función de pérdida, y, igual a x multiplicado por x. No utilices la sobrecarga del operador.
  • Configura la función para que devuelva el gradiente de y con respecto a x.

Ejercicio interactivo práctico

Pruebe este ejercicio completando este 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