ComeçarComece de graça

Otimização com gradientes

Você recebeu uma função de perda, \(y = x^{2}\), que deseja minimizar. Você pode fazer isso calculando a inclinação usando a operação GradientTape() em diferentes valores de x. Se a inclinação for positiva, você pode reduzir a perda diminuindo x. Se for negativa, você pode reduzi-la aumentando x. É assim que o gradient descent funciona.

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.

Na prática, você usará uma operação de alto nível do tensorflow para executar o gradient descent automaticamente. Neste exercício, porém, você vai calcular a inclinação nos valores de x -1, 1 e 0. As seguintes operações estão disponíveis: GradientTape(), multiply(), e Variable().

Este exercício faz parte do curso

Introdução ao TensorFlow em Python

Ver curso

Instruções do exercício

  • Defina x como uma variável com o valor inicial x0.
  • Defina a função de perda, y, como x multiplicado por x. Não use sobrecarga de operadores.
  • Faça a função retornar o gradiente de y em relação a x.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

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 e executar o código