Spec-Zone.ru › TensorFlow 2.9

tf.tpu.experimental.embedding.Adam

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

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

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

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

tf.compat.v1.tpu.experimental.embedding.Adam

tf.tpu.experimental.embedding.Adam(
    learning_rate: Union[float, Callable[[], float]] = 0.001,
    beta_1: float = 0.9,
    beta_2: float = 0.999,
    epsilon: float = 1e-07,
    lazy_adam: bool = True,
    sum_inside_sqrt: bool = True,
    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
)

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

Примечание: По умолчанию этот оптимизатор является ленивым, то есть он не будет применять обновление градиента нуля к строкам, которые не были найдены. Вы можете изменить это поведение, установив lazy_adam в False.
embedding = tf.tpu.experimental.embedding.TPUEmbedding(
    ...
    optimizer=tf.tpu.experimental.embedding.Adam(0.1))

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

table_one = tf.tpu.experimental.embedding.TableConfig(
    vocabulary_size=...,
    dim=...,
    optimizer=tf.tpu.experimental.embedding.Adam(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.Adam(0.1))

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

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

Аргументы
learning_rate Скорость обучения. Она должна быть числом с плавающей точкой или вызываемой функцией без аргументов для динамической скорости обучения.
beta_1 Значение с плавающей точкой. Экспоненциальная скорость затухания для оценок первого момента.
beta_2 Значение с плавающей точкой. Экспоненциальная скорость затухания для оценок второго момента.
epsilon Маленькая константа для обеспечения числовой устойчивости.
lazy_adam Использовать ленивый Adam вместо Adam. Ленивый Adam тренируется быстрее.
sum_inside_sqrt Если это значение true, формула обновления Adam изменяется с m / (sqrt(v) + epsilon) на m / sqrt(v + epsilon**2). Этот параметр улучшает производительность обучения на TPU и, как ожидается, не навредит качеству модели.
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 Управляет обрезкой градиента. Устанавливается либо в одно положительное скалярное значение для обрезки, либо в тройку скалярных значений (мин, макс) для установки отдельного максимума или минимума. Если одно из двух значений равно None, то обрезка в этом направлении не будет выполняться.

© 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/Adam

Spec-Zone.ru

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