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

Класс Adagrad

Класс Adagrad представляет собой оптимизатор, который адаптирует скорость обучения для каждого параметра модели. Он накапливает сумму квадратов градиентов по всем предыдущим шагам и делит текущий градиент на корень из этой суммы. Первым параметром передается скорость обучения learning_rate, вторым - начальное значение накопленной суммы квадратов initial_accumulator_value, третьим - небольшое число epsilon для предотвращения деления на ноль. Также можно передать словарь **kwargs для дополнительных параметров базового класса Optimizer.

Синтаксис

tf.keras.optimizers.Adagrad( learning_rate=0.001, initial_accumulator_value=0.1, epsilon=1e-07, **kwargs )

Пример

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

import tensorflow as tf opt = tf.keras.optimizers.Adagrad() config = opt.get_config() print(config)

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

{'name': 'Adagrad', 'learning_rate': 0.001, 'initial_accumulator_value': 0.1, 'epsilon': 1e-07}

Пример

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

import tensorflow as tf tf.random.set_seed(0) model = tf.keras.Sequential([ tf.keras.layers.Dense(1, input_shape=(1,)) ]) opt = tf.keras.optimizers.Adagrad(learning_rate=0.1) model.compile(optimizer=opt, loss='mse') x = tf.constant([[1.0], [2.0], [3.0]]) y = tf.constant([[2.0], [4.0], [6.0]]) loss = model.train_on_batch(x, y) print(loss)

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

2.8487213

Пример

Давайте создадим оптимизатор Adagrad с нестандартными параметрами и применим его к тензору переменных:

import tensorflow as tf var = tf.Variable([1.0, 2.0, 3.0]) opt = tf.keras.optimizers.Adagrad( learning_rate=0.01, initial_accumulator_value=0.5, epsilon=1e-06 ) with tf.GradientTape() as tape: loss = tf.reduce_sum(var ** 2) grads = tape.gradient(loss, [var]) opt.apply_gradients(zip(grads, [var])) print(var.numpy())

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

[0.99000001 1.99000001 2.99000001]

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

  • оптимизатор Adam,
    который сочетает идеи моментов и адаптивной скорости обучения
  • оптимизатор SGD,
    который выполняет стохастический градиентный спуск
  • оптимизатор RMSprop,
    который использует скользящее среднее квадратов градиентов
  • оптимизатор Adadelta,
    который является расширением Adagrad без накопления всех градиентов
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить