Spec-Zone.ru › TensorFlow

tf.tpu.experimental.embedding.FTRL

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: Optional[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,
    low_dimensional_packing_status: 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 Вещественное значение, представляющее значение бета из статьи.
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, изменяются некоторые внутренние формулы, чтобы разрешить нулевые и близкие к нулю значения накопителей за счёт некоторого снижения производительности; это нужно устанавливать только в том случае, если вы используете начальное значение накопителя равное нулю, что бывает редко.
low_dimensional_packing_status Статус оптимизации упаковки встраивания низкой размерности управляет тем, следует ли оптимизировать упаковку таблиц встраивания размерности 1, 2 и 4 в памяти.

Методы

__eq__

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

__eq__(
    other: Any
) -> Union[Any, bool]

Возвращает self==value.

© 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/api_docs/python/tf/tpu/experimental/embedding/FTRL

Spec-Zone.ru

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