Spec-Zone.ru › TensorFlow

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 Значение типа float, должно быть меньше или равно нулю. Определяет, как скорость обучения уменьшается во время обучения. Для фиксированной скорости обучения используйте ноль.
l1_regularization_strength Значение типа float, должно быть больше или равно нулю.
l2_regularization_strength Значение типа float, должно быть больше или равно нулю.
beta Значение типа float, соответствующее значению бета из статьи.
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 используется изменённая формула, в которой предполагается, что аккумулятор "linear" предварительно умножен на скорость обучения (то есть аккумулятор с именем "linear" фактически хранит значение "linear * learning_rate"). За исключением совместимости с контрольными точками, для статической скорости обучения эта формула математически эквивалентна исходной; при динамической скорости обучения она даёт почти тот же результат, если скорость обучения не меняется резко. Преимущество изменённой формулы в том, что она обрабатывает нулевую и близкую к нулю скорость обучения без генерации 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