tf.tpu.experimental.embedding.AdagradMomentum
Параметры оптимизации для Adagrad + Momentum с TPU встраиванием.
tf.tpu.experimental.embedding.AdagradMomentum(
learning_rate: Union[float, Callable[[], float]] = 0.001,
momentum: float = 0.0,
use_nesterov: bool = False,
exponent: float = 2,
beta2: float = 1,
epsilon: float = 1e-10,
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, чтобы установить глобальный оптимизатор и его параметры:
embedding = tf.tpu.experimental.embedding.TPUEmbedding(
...
optimizer=tf.tpu.experimental.embedding.AdagradMomentum(0.1))
Это также можно использовать в tf.tpu.experimental.embedding.TableConfig в качестве параметра оптимизатора, чтобы установить оптимизатор, специфичный для таблицы. Это переопределит оптимизатор и параметры для глобального оптимизатора встраивания, определённого выше:
table_one = tf.tpu.experimental.embedding.TableConfig(
vocabulary_size=...,
dim=...,
optimizer=tf.tpu.experimental.embedding.AdagradMomentum(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.AdagradMomentum(0.1))
В приведённом выше примере первый признак будет ищется в таблице, имеющей скорость обучения 0,2, а второй признак — в таблице, имеющей скорость обучения 0,1.
См. «tensorflow/core/protobuf/tpu/optimization_parameters.proto» для полного описания этих параметров и их влияния на алгоритм оптимизации.
| Аргументы | |
|---|---|
learning_rate | Скорость обучения. Должно быть число с плавающей точкой или вызываемая функция без аргументов для динамической скорости обучения. |
momentum | Параметр скользящего среднего для аккумулятора импульса. |
use_nesterov | Использовать ли вариант Nesterov импульса. См. Sutskever et al., 2013. |
exponent | Экспонента для аккумулятора Adagrad. |
beta2 | Параметр скользящего среднего для аккумулятора Adagrad. |
epsilon | Изначальный накопитель для аккумулятора Adagrad. |
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, то обрезки в этом направлении не будет. |
© 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/AdagradMomentum