Spec-Zone.ru › TensorFlow 2.3

tf.keras.optimizers.Ftrl

Просмотреть исходный код на GitHub

Оптимизатор, реализующий алгоритм FTRL.

Наследуется от: Optimizer

Просмотр псевдонимов

Основные псевдонимы

tf.optimizers.Ftrl

Псевдонимы совместимости для миграции

См. Руководство по миграции для получения более подробной информации.

tf.compat.v1.keras.optimizers.Ftrl

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, name='Ftrl',
    l2_shrinkage_regularization_strength=0.0, **kwargs
)

См. Алгоритм 1 в этой статье. Эта версия поддерживает как онлайн L2 (штраф L2, указанный в статье выше), так и L2 типа сжатия (добавление штрафа L2 к функции потерь).

Аргументы
learning_rate Значение с плавающей точкой, или расписание, которое является tf.keras.optimizers.schedules.LearningRateSchedule. Скорость обучения.
learning_rate_power Значение с плавающей точкой, должно быть меньше или равно нулю. Управляет уменьшением скорости обучения во время обучения. Используйте ноль для фиксированной скорости обучения.
initial_accumulator_value Начальное значение для аккумуляторов. Допускаются только нулевые или положительные значения.
l1_regularization_strength Значение с плавающей точкой, должно быть больше или равно нулю.
l2_regularization_strength Значение с плавающей точкой, должно быть больше или равно нулю.
name Необязательное префиксное имя для операций, созданных при применении градиентов. По умолчанию "Ftrl".
l2_shrinkage_regularization_strength Значение с плавающей точкой, должно быть больше или равно нулю. Это отличается от вышеупомянутого L2, так как вышеупомянутое L2 является штрафом стабилизации, а это L2 сжатия — штрафом по величине. При разряженной входной информации сжатие произойдёт только для активных весов.
**kwargs Дополнительные ключевые аргументы. Допускается использование "clipnorm" или "clipvalue". "clipnorm" (с плавающей точкой) — ограничение градиентов по норме; "clipvalue" (с плавающей точкой) — ограничение градиентов по значению.

Ссылка:

  • статья
Аргументы
name Непустая строка. Имя, используемое для аккумуляторов, созданных для оптимизатора.
**kwargs Дополнительные ключевые аргументы. Допускается использование {clipnorm, clipvalue, lr, decay}. clipnorm — ограничение градиентов по норме; clipvalue — ограничение градиентов по значению, decay включена для обратной совместимости, чтобы разрешить обратное обратное затухание скорости обучения. lr включена для обратной совместимости, рекомендуется использовать learning_rate вместо нее.
Исключения
ValueError Если имя имеет неправильный формат.
Атрибуты
iterations Переменная. Количество шагов обучения, выполненных этим оптимизатором.
weights Возвращает переменные этого оптимизатора в порядке создания.

Методы

add_slot

Просмотреть исходный код

add_slot(
    var, slot_name, initializer='zeros'
)

Добавить новую переменную слота для var.

add_weight

Просмотреть исходный код

add_weight(
    name, shape, dtype=None, initializer='zeros', trainable=None,
    synchronization=tf.VariableSynchronization.AUTO,
    aggregation=tf.compat.v1.VariableAggregation.NONE
)

apply_gradients

Просмотреть исходный код

apply_gradients(
    grads_and_vars, name=None, experimental_aggregate_gradients=True
)

Применить градиенты к переменным.

Это вторая часть minimize(). Возвращает Operation для применения градиентов.

По умолчанию метод суммирует градиенты со всех реплик при использовании tf.distribute.Strategy. Вы можете самостоятельно агрегировать градиенты, передав experimental_aggregate_gradients=False.

Пример:

grads = tape.gradient(loss, vars)
grads = tf.distribute.get_replica_context().all_reduce('sum', grads)
# Processing aggregated gradients.
optimizer.apply_gradients(zip(grads, vars),
    experimental_aggregate_gradients=False)

Аргументы
grads_and_vars Список пар (градиент, переменная).
name Необязательное имя возвращаемой операции. По умолчанию — имя, переданное конструктору Optimizer.
experimental_aggregate_gradients Нужно ли суммировать градиенты от разных реплик при наличии tf.distribute.Strategy. Если False, ответственность за агрегацию градиентов лежит на пользователе. По умолчанию True.
Возвращает
Operation для применения указанных градиентов. Значение iterations автоматически увеличивается на 1.
Исключения
TypeError Если grads_and_vars имеет неправильный формат.
ValueError Если ни одна из переменных не имеет градиентов.

from_config

Просмотреть исходный код

@classmethod
from_config(
    config, custom_objects=None
)

Создать оптимизатор из его конфигурации.

Этот метод является обратным к get_config, позволяющим восстановить тот же оптимизатор из словаря конфигурации.

Аргументы
config Словарь Python, обычно результат get_config.
custom_objects Словарь Python, сопоставляющий имена дополнительным объектам Python, используемым для создания данного оптимизатора, например, функции, используемой для гиперпараметра.
Возвращает
Экземпляр оптимизатора.

get_config

Просмотреть исходный код

get_config()

Возвращает конфигурацию оптимизатора.

Конфигурация оптимизатора — это словарь Python (сериализуемый), содержащий конфигурацию оптимизатора. Тот же оптимизатор можно позже восстановить (без сохранённого состояния) из этой конфигурации.

Возвращает
Словарь Python.

get_gradients

Просмотреть исходный код

get_gradients(
    loss, params
)

Возвращает градиенты loss по отношению к params.

Аргументы
loss Тензор потерь.
params Список переменных.
Возвращает
Список тензоров градиента.
Исключения
ValueError В случае, если градиент не может быть вычислен (например, если функция градиента не реализована).

get_slot

Просмотреть исходный код

get_slot(
    var, slot_name
)

get_slot_names

Просмотреть исходный код

get_slot_names()

Список имён слотов данного оптимизатора.

get_updates

Просмотреть исходный код

get_updates(
    loss, params
)

get_weights

Просмотреть исходный код

get_weights()

Возвращает текущие веса оптимизатора.

Веса оптимизатора — это его состояние (т.е. переменные). Эта функция возвращает значения весов, ассоциированные с этим оптимизатором, как список массивов NumPy. Первое значение всегда — счётчик итераций оптимизатора, а затем переменные состояния оптимизатора в порядке их создания. Полученный список можно использовать для загрузки состояния в аналогичные оптимизаторы с такой же параметризацией.

END_OF_DOCUMENT_MARKER

Например, оптимизатор RMSprop для этой простой модели возвращает список из трёх значений — количество итераций, а затем среднеквадратическое значение ядра и смещения единственного слоя Dense:

opt = tf.keras.optimizers.RMSprop()
m = tf.keras.models.Sequential([tf.keras.layers.Dense(10)])
m.compile(opt, loss='mse')
data = np.arange(100).reshape(5, 20)
labels = np.zeros(5)
print('Training'); results = m.fit(data, labels)
Training ...
len(opt.get_weights())
3
Возвращаемые значения
Значения весов в виде списка массивов NumPy.

minimize

Просмотреть исходный код

minimize(
    loss, var_list, grad_loss=None, name=None
)

Минимизировать loss путём обновления var_list.

Этот метод просто вычисляет градиент с помощью tf.GradientTape и вызывает apply_gradients(). Если вы хотите обработать градиент перед применением, то вызовите tf.GradientTape и apply_gradients() явно вместо использования этой функции.

Аргументы
loss Функция без аргументов, возвращающая значение, которое нужно минимизировать.
var_list Список или кортеж объектов Variable, которые нужно обновить, чтобы минимизировать loss, или функция, возвращающая список или кортеж объектов Variable. Используйте функцию, когда список переменных может быть неполным перед minimize, так как переменные создаются в первый раз, когда вызывается loss.
grad_loss Необязательно. Объект Tensor, содержащий вычисленный градиент для loss.
name Необязательное имя возвращаемой операции.
Возвращаемые значения
Объект Operation, который обновляет переменные в var_list. Значение iterations автоматически увеличится на 1.
Исключения
ValueError Если некоторые переменные не являются объектами Variable.

set_weights

Просмотреть исходный код

set_weights(
    weights
)

Устанавливает веса оптимизатора.

Веса оптимизатора — это его состояние (т.е. переменные). Эта функция принимает значения весов, ассоциированные с этим оптимизатором, в виде списка массивов NumPy. Первое значение всегда — счётчик итераций оптимизатора, а затем — переменные состояния оптимизатора в порядке их создания. Переданные значения используются для установки нового состояния оптимизатора.

Например, оптимизатор RMSprop для этой простой модели принимает список из трёх значений — количество итераций, а затем среднеквадратическое значение ядра и смещения единственного слоя Dense:

opt = tf.keras.optimizers.RMSprop()
m = tf.keras.models.Sequential([tf.keras.layers.Dense(10)])
m.compile(opt, loss='mse')
data = np.arange(100).reshape(5, 20)
labels = np.zeros(5)
print('Training'); results = m.fit(data, labels)
Training ...
new_weights = [np.array(10), np.ones([20, 10]), np.zeros([10])]
opt.set_weights(new_weights)
opt.iterations
<tf.Variable 'RMSprop/iter:0' shape=() dtype=int64, numpy=10>
Аргументы
weights Значения весов в виде списка массивов NumPy.

variables

Просмотреть исходный код

variables()

Возвращает переменные этого оптимизатора в порядке их создания.

© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.3/api_docs/python/tf/keras/optimizers/Ftrl

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API