НачатьНачать бесплатно

Оптимизация с помощью градиентов

Вам дана функция потерь \(y = x^{2}\), которую нужно минимизировать. Для этого можно вычислить наклон с помощью операции GradientTape() при различных значениях x. Если наклон положительный, потери можно уменьшить, снизив значение x. Если отрицательный — увеличив x. Именно так работает градиентный спуск.

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.

На практике вы будете использовать высокоуровневые операции tensorflow, чтобы выполнять градиентный спуск автоматически. В этом упражнении, однако, вы вычислите наклон при значениях x, равных -1, 1 и 0. Доступны следующие операции: GradientTape(), multiply() и Variable().

Это упражнение является частью курса

Введение в TensorFlow на Python

Посмотреть курс

Инструкции к упражнению

  • Определите x как переменную с начальным значением x0.
  • Задайте функцию потерь y равной произведению x на x. Не используйте перегрузку операторов.
  • Настройте функцию так, чтобы она возвращала градиент y по переменной x.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

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))
Редактировать и запускать код