Spec-Zone.ru › TensorFlow 2.9

tf.tpu.experimental.embedding.FTRL

Параметры оптимизации для FTRL с TPU встраиванием.

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

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

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

tf.compat.v1.tpu.experimental.embedding.FTRL

tf.tpu.experimental.embedding.FTRL(
    learning_rate: Union[float, Callable[[], float]] = 0.001,
    learning_rate_power: float = -0.5,
    l1_regularization_strength: float = 0.0,
    l2_regularization_strength: float = 0.0,
    beta: float = 0.0,
    initial_accumulator_value: float = 0.1,
    use_gradient_accumulation: bool = True,
    clip_weight_min: Optional[float] = None,
    clip_weight_max: Optional[float] = None,
    weight_decay_factor: Optional[float] = None,
    multiply_weight_decay_factor_by_learning_rate: bool = None,
    slot_variable_creation_fn: Optional[SlotVarCreationFnType] = None,
    clipvalue: Optional[ClipValueType] = None,
    multiply_linear_by_learning_rate: bool = False,
    allow_zero_accumulator: bool = False
)

См. Алгоритм 1 в этой статье.

Передайте это в tf.tpu.experimental.embedding.TPUEmbedding через аргумент optimizer, чтобы задать глобальный оптимизатор и его параметры:

embedding = tf.tpu.experimental.embedding.TPUEmbedding(
    ...
    optimizer=tf.tpu.experimental.embedding.FTRL(0.1))

Это также можно использовать в tf.tpu.experimental.embedding.TableConfig в качестве параметра оптимизатора, чтобы задать оптимизатор для определенной таблицы. Это переопределит оптимизатор и параметры для глобального оптимизатора встраивания, определённого выше:

table_one = tf.tpu.experimental.embedding.TableConfig(
    vocabulary_size=...,
    dim=...,
    optimizer=tf.tpu.experimental.embedding.FTRL(0.2))
table_two = tf.tpu.experimental.embedding.TableConfig(
    vocabulary_size=...,
    dim=...)

feature_config = (
    tf.tpu.experimental.embedding.FeatureConfig(
        table=table_one),
    tf.tpu.experimental.embedding.FeatureConfig(
        table=table_two))

embedding = tf.tpu.experimental.embedding.TPUEmbedding(
    feature_config=feature_config,
    batch_size=...
    optimizer=tf.tpu.experimental.embedding.FTRL(0.1))

В приведенном выше примере первый признак будет извлечён из таблицы с скоростью обучения 0,2, а второй признак — из таблицы с скоростью обучения 0,1.

См. 'tensorflow/core/protobuf/tpu/optimization_parameters.proto' для полного описания этих параметров и их влияния на алгоритм оптимизации.

Аргументы
learning_rate Скорость обучения. Должно быть число с плавающей точкой или вызываемая без аргументов функция для динамической скорости обучения.
learning_rate_power Число с плавающей точкой, должно быть меньше или равно нулю. Управляет тем, как скорость обучения уменьшается во время обучения. Используйте ноль для фиксированной скорости обучения.
l1_regularization_strength Число с плавающей точкой, должно быть больше или равно нулю.
l2_regularization_strength Число с плавающей точкой, должно быть больше или равно нулю.
beta Число с плавающей точкой, представляющее значение beta из статьи.
initial_accumulator_value Начальное значение для аккумуляторов. Разрешены только нулевые или положительные значения.
use_gradient_accumulation Установка этого значения в False делает вычисление градиентов встраивания менее точным, но быстрее.
clip_weight_min минимальное значение для обрезки; None означает -бесконечность.
clip_weight_max максимальное значение для обрезки; None означает +бесконечность.
weight_decay_factor величина затухания весов; None означает, что веса не затухают.
multiply_weight_decay_factor_by_learning_rate если True, то weight_decay_factor умножается на текущую скорость обучения.
slot_variable_creation_fn Если вы хотите напрямую контролировать создание переменных слотов, установите это значение в вызываемую функцию, принимающую три параметра: переменную таблицы, список имён слотов, которые нужно создать для неё, и список инициализаторов. Эта функция должна возвращать словарь с именами слотов в качестве ключей и созданными переменными в качестве значений с типами, соответствующими переменной таблицы. При установке в None (по умолчанию) используется встроенное создание переменных.
clipvalue Управляет обрезкой градиента. Устанавливается либо в одно положительное скалярное значение для обрезки, либо в кортеж скалярных значений (min, max) для установки отдельного максимального или минимального значения. Если одно из двух значений равно None, то в этом направлении обрезки не будет.
multiply_linear_by_learning_rate Если установлено в True, используется изменённая формула для FTRL, которая рассматривает "линейный" аккумулятор как предварительно умноженный на скорость обучения (т.е., аккумулятор с именем "линейный" фактически хранит "линейный * скорость_обучения"). Кроме совместимости с контрольными точками, это математически эквивалентно для статической скорости обучения; для динамической скорости обучения это почти то же самое, пока скорость обучения не меняется быстро. Преимущество этого в том, что изменённая формула обрабатывает нулевые и близкие к нулю скорости обучения без создания NaN, что улучшает гибкость для увеличения скорости обучения.
allow_zero_accumulator Если установлено в True, изменяет некоторые внутренние формулы, чтобы позволить нулевые и близкие к нулю значения аккумуляторов за счёт некоторой производительности; это нужно установить только в том случае, если вы используете начальное значение аккумулятора, равное нулю, что бывает редко.

© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.9/api_docs/python/tf/tpu/experimental/embedding/FTRL

Spec-Zone.ru

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