Spec-Zone.ru › TensorFlow

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: Optional[bool] = None,
    slot_variable_creation_fn: Optional[SlotVarCreationFnType] = None,
    clipvalue: Optional[ClipValueType] = None,
    low_dimensional_packing_status: bool = False
)

Передайте это в 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, то обрезки в этом направлении не будет.
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/Adam

Spec-Zone.ru

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