РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
343 of 824 menu

Метод minimize класса Optimizer

Метод minimize применяется для минимизации функции потерь относительно переменных модели. Первым параметром передается функция потерь (или вызываемый объект, возвращающий значение потерь), вторым - список переменных модели, по которым вычисляются градиенты. Метод выполняет вычисление градиентов и один шаг обновления переменных, используя внутренний оптимизатор.

Синтаксис

optimizer.minimize(loss, var_list, [tape])

Пример

Давайте создадим простую линейную модель и выполним один шаг минимизации функции потерь:

import tensorflow as tf tf.random.set_seed(0) w = tf.Variable([1.0, 2.0, 3.0]) b = tf.Variable(0.0) def loss_fn(): x = tf.constant([1.0, 2.0, 3.0]) y_true = tf.constant(10.0) y_pred = tf.reduce_sum(w * x) + b return tf.square(y_pred - y_true) optimizer = tf.keras.optimizers.SGD(learning_rate=0.01) optimizer.minimize(loss_fn, var_list=[w, b]) print(w) print(b)

Результат выполнения кода:

<tf.Variable 'Variable:0' shape=(3,) dtype=float32, numpy=array([0.16, 1.32, 2.48], dtype=float32)> <tf.Variable 'Variable:0' shape=() dtype=float32, numpy=-1.88>

Пример

Давайте выполним несколько шагов минимизации в цикле и посмотрим, как уменьшается значение потерь:

import tensorflow as tf tf.random.set_seed(0) w = tf.Variable([1.0, 2.0, 3.0]) b = tf.Variable(0.0) x = tf.constant([1.0, 2.0, 3.0]) y_true = tf.constant(10.0) def loss_fn(): y_pred = tf.reduce_sum(w * x) + b return tf.square(y_pred - y_true) optimizer = tf.keras.optimizers.SGD(learning_rate=0.001) for step in range(5): loss_value = optimizer.minimize(loss_fn, var_list=[w, b]) print("step", step, "loss", loss_fn().numpy())

Результат выполнения кода:

step 0 loss 116.63999 step 1 loss 79.66065 step 2 loss 54.408306 step 3 loss 37.16463 step 4 loss 25.386543

Смотрите также

  • класс Optimizer,
    который является базовым классом для всех оптимизаторов
  • метод apply_gradients,
    который применяет готовые градиенты к переменным
  • метод update_step,
    который выполняет один шаг обновления переменных
  • атрибут learning_rate,
    который задает скорость обучения оптимизатора
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить