Spec-Zone.ru › TensorFlow 1.15

tf.keras.optimizers.Nadam

Просмотреть исходный код на GitHub

Оптимизатор, реализующий алгоритм NAdam.

Наследуется от: Optimizer

Псевдонимы

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

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

tf.compat.v1.keras.optimizers.Nadam, `tf.compat.v2.keras.optimizers.Nadam`, `tf.compat.v2.optimizers.Nadam`

tf.keras.optimizers.Nadam(
    learning_rate=0.001, beta_1=0.9, beta_2=0.999, epsilon=1e-07, name='Nadam',
    **kwargs
)

Подобно тому, как Adam — это фактически RMSprop с моментом, Nadam — это Adam с моментом Нестерова.

Инициализация:

$$m_0 := 0 \text{(Инициализировать вектор первого момента)}$$
$$v_0 := 0 \text{(Инициализировать вектор второго момента)}$$
$$mu_0 := 1$$
$$t := 0 \text{(Инициализировать шаг)}$$

Вычисляет:

$$t := t + 1$$
$$\mu_t := \beta_1 * (1 - 0.5 * 0.96^{0.004 * t})$$
$$g' := g / (1 - \prod_{i=1}^{t}{\mu_i})$$
$$m_t := \beta_1 * m_{t-1} + (1 - \beta_1) * g$$
$$m' := m_t / (1 - \prod_{i=1}^{t+1}{\mu_i})$$
$$v_t := \beta_2 * v_{t-1} + (1 - \beta_2) * g * g$$
$$v' := v_t / (1 - \beta_2^t)$$
$$\bar{m} := (1 - \mu_t) * g' + \mu_{t+1} * m'$$
$$\theta_t := \theta_{t-1} - lr * \bar{m} / (\sqrt{v'} + \epsilon)$$

градиент вычисляется в точке theta(t) + momentum * v(t), а переменные всегда хранят theta + beta_1 * m / sqrt(v) вместо theta.

Ссылки См. Dozat, T., 2015.

Аргументы
learning_rate Tensor или значение с плавающей запятой. Скорость обучения.
beta_1 Значение с плавающей запятой или постоянный тензор с плавающей запятой. Скорость экспоненциального затухания для оценок первого момента.
beta_2 Значение с плавающей запятой или постоянный тензор с плавающей запятой. Скорость экспоненциального затухания для экспоненциально взвешенной бесконечной нормы.
epsilon Малая константа для обеспечения числовой устойчивости.
name Необязательное имя для операций, создаваемых при применении градиентов. По умолчанию «Adamax».
**kwargs Дополнительные ключевые аргументы. Разрешены {clipnorm, clipvalue, lr, decay}. clipnorm — это ограничение градиентов по норме; clipvalue — это ограничение градиентов по значению, decay включено для обратной совместимости, чтобы разрешить обратное затухание скорости обучения с течением времени. lr включено для обратной совместимости, рекомендуется использовать learning_rate вместо него.
Атрибуты
iterations Переменная. Количество шагов обучения, выполненных этим оптимизатором.
weights Возвращает переменные этого оптимизатора в порядке их создания.

Методы

add_slot

Просмотреть исходный код

add_slot(
    var, slot_name, initializer='zeros'
)

Добавляет новую переменную-слот для var.

add_weight

Просмотреть исходный код

add_weight(
    name, shape, dtype=None, initializer='zeros', trainable=None,
    synchronization=tf.VariableSynchronization.AUTO,
    aggregation=tf.VariableAggregation.NONE
)

apply_gradients

Просмотреть исходный код

apply_gradients(
    grads_and_vars, name=None
)

Применяет градиенты к переменным.

Это вторая часть minimize(). Она возвращает Operation, который применяет градиенты.

Аргументы
grads_and_vars Список пар (градиент, переменная).
name Необязательное имя возвращаемой операции. По умолчанию совпадает с именем, переданным в конструктор Optimizer.
Возвращаемое значение
Operation, который применяет указанные градиенты. Значение iterations автоматически увеличится на 1.
Исключения
TypeError Если grads_and_vars имеет неправильный формат.
ValueError Если у ни одной из переменных нет градиентов.

from_config

Просмотреть исходный код

@classmethod
from_config(
    config, custom_objects=None
)

Создает оптимизатор из его конфигурации.

Этот метод является обратным к get_config, способным восстановить тот же оптимизатор из словаря конфигурации.

Аргументы
config Словарь Python, как правило, результат вызова get_config.
custom_objects Словарь Python, сопоставляющий имена с дополнительными объектами Python, используемыми для создания этого оптимизатора, например, функцией, используемой для гиперпараметра.
Возвращаемое значение
Экземпляр оптимизатора.

get_config

Просмотреть исходный код

get_config()

Возвращает конфигурацию оптимизатора.

Конфигурация оптимизатора — это словарь Python (сериализуемый), содержащий конфигурацию оптимизатора. Тот же оптимизатор можно восстановить позже (без сохранения состояния) из этой конфигурации.

Возвращаемое значение
Словарь Python.

get_gradients

Просмотреть исходный код

get_gradients(
    loss, params
)

Возвращает градиенты loss по отношению к params.

Аргументы
loss Тензор потери.
params Список переменных.
Возвращаемое значение
Список тензоров градиента.
Исключения
ValueError В случае, если какой-либо градиент не может быть вычислен (например, если функция градиента не реализована).

get_slot

Просмотреть исходный код

get_slot(
    var, slot_name
)

get_slot_names

Просмотреть исходный код

get_slot_names()

Список имён слотов данного оптимизатора.

get_updates

Просмотреть исходный код

get_updates(
    loss, params
)

get_weights

Просмотреть исходный код

get_weights()

minimize

Просмотреть исходный код

minimize(
    loss, var_list, grad_loss=None, name=None
)

Минимизирует loss путем обновления var_list.

Этот метод просто вычисляет градиент с помощью tf.GradientTape и вызывает apply_gradients(). Если вы хотите обработать градиент перед применением, то вызовите tf.GradientTape и apply_gradients() явно вместо использования этой функции.

Аргументы
loss Функция без аргументов, которая возвращает значение для минимизации.
var_list список или кортеж объектов Variable, которые нужно обновить, чтобы минимизировать loss, или функция, возвращающая список или кортеж объектов Variable . Используйте функцию, когда список переменных в противном случае будет неполным до вызова minimize, поскольку переменные создаются в первый раз, когда вызывается loss.
grad_loss Необязательно. Tensor , содержащий градиент, вычисленный для loss .
name Необязательное имя для возвращаемой операции.
Возвращаемое значение
Операция, которая обновляет переменные в var_list. Если global_step не было None, эта операция также увеличивает global_step.
Исключения
ValueError Если некоторые переменные не являются объектами Variable.

set_weights

Просмотреть исходный код

set_weights(
    weights
)

variables

Просмотреть исходный код

variables()

Возвращает переменные данного оптимизатора в порядке их создания.

© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/keras/optimizers/Nadam

Spec-Zone.ru

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