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 Использовать Lazy Adam вместо Adam. Lazy 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 Управляет ограничением градиента. Задайте одно положительное скалярное значение для включения ограничения или кортеж из скалярных значений (min, max), чтобы задать отдельные минимальное и максимальное значения. Если одна из двух записей равна 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