ComeçarComece gratuitamente

Otimização com gradientes

Você recebe 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ê poderá reduzir a perda diminuindo x. Se for negativo, você pode reduzi-lo aumentando x. É assim que funciona a descida do gradiente.

A imagem mostra um gráfico de y igual a x ao quadrado. Ele também mostra o gradiente em x igual a -1, x igual a 0 e x igual a 1.

Na prática, você usará uma operação de alto nível no site tensorflow para realizar a descida do gradiente automaticamente. Neste exercício, no entanto, você calculará a inclinação em x valores de -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 de exercício

  • Defina x como uma variável com o valor inicial x0.
  • Defina a função de perda, y, igual a x multiplicado por x. Não faça uso de sobrecarga do operador.
  • Defina a função para retornar o gradiente de y com relação a x.

Exercício interativo prático

Experimente este exercício preenchendo 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 código