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

Класс Ftrl

Класс Ftrl представляет оптимизатор FTRL, который сочетает L1- и L2-регуляризацию и хорошо подходит для разреженных данных. Первым параметром передается скорость обучения learning_rate, вторым - начальное значение накопленного градиента learning_rate_power, третьим - коэффициент L1-регуляризации l1_regularization_strength, четвертым - коэффициент L2-регуляризации l2_regularization_strength. Дополнительно можно задать beta, initial_accumulator_value и другие параметры.

Синтаксис

tf.keras.optimizers.Ftrl( learning_rate=0.001, learning_rate_power=-0.5, initial_accumulator_value=0.1, l1_regularization_strength=0.0, l2_regularization_strength=0.0, beta=0.0, name='Ftrl', **kwargs )

Пример

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

import tensorflow as tf opt = tf.keras.optimizers.Ftrl(learning_rate=0.01) config = opt.get_config() print(config['learning_rate']) print(config['l1_regularization_strength']) print(config['l2_regularization_strength'])

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

0.01 0.0 0.0

Пример

Давайте применим оптимизатор Ftrl для обучения простой модели на тензорах:

import tensorflow as tf tf.random.set_seed(0) opt = tf.keras.optimizers.Ftrl(learning_rate=0.1) var = tf.Variable([1.0, 2.0, 3.0]) 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.9 1.9 2.9]

Пример

Давайте обучим модель с оптимизатором Ftrl и L1-регуляризацией:

import tensorflow as tf tf.random.set_seed(0) model = tf.keras.Sequential([ tf.keras.layers.Dense(1, input_shape=(2,)) ]) model.compile( optimizer=tf.keras.optimizers.Ftrl( learning_rate=0.1, l1_regularization_strength=0.01 ), loss='mse' ) x = tf.constant([[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]]) y = tf.constant([[1.0], [2.0], [3.0]]) history = model.fit(x, y, epochs=3, verbose=0) print(round(history.history['loss'][-1], 4))

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

1.5447

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

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