Spec-Zone.ru › TensorFlow 2.3

tf.keras.optimizers.Nadam

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

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

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

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

Основные псевдонимы

tf.optimizers.Nadam

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

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

tf.compat.v1.keras.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 с моментом Нестерова.

Аргументы
learning_rate Tensor или значение с плавающей точкой. Скорость обучения.
beta_1 Значение с плавающей точкой или тензор с постоянным значением с плавающей точкой. Скорость экспоненциального затухания для оценок первого момента.
beta_2 Значение с плавающей точкой или тензор с постоянным значением с плавающей точкой. Скорость экспоненциального затухания для экспоненциально взвешенной бесконечной нормы.
epsilon Малая константа для обеспечения числовой устойчивости.
name Необязательное имя для операций, создаваемых при применении градиентов. По умолчанию равно "Nadam".
**kwargs Аргументы ключевых слов. Допускается одно из значений "clipnorm" или "clipvalue". "clipnorm" (с плавающей точкой) обрезает градиенты по норме; "clipvalue" (с плавающей точкой) обрезает градиенты по значению.

Ссылка:

  • Дозат, 2015.
Аргументы
name Непустая строка. Имя, используемое для аккумуляторов, созданных для оптимизатора.
**kwargs Аргументы ключевых слов. Допускается одно из значений {clipnorm, clipvalue, lr, decay}. clipnorm — обрезка градиентов по норме; clipvalue — обрезка градиентов по значению, decay включена для обратной совместимости, чтобы разрешить обратное затухание скорости обучения во времени. lr включена для обратной совместимости; рекомендуется использовать learning_rate вместо нее.
Исключения
ValueError Если имя имеет неправильный формат.
Атрибуты
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.compat.v1.VariableAggregation.NONE
)

apply_gradients

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

apply_gradients(
    grads_and_vars, name=None, experimental_aggregate_gradients=True
)

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

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

Метод суммирует градиенты со всех реплик при наличии tf.distribute.Strategy по умолчанию. Вы можете самостоятельно агрегировать градиенты, передав experimental_aggregate_gradients=False.

Пример:

grads = tape.gradient(loss, vars)
grads = tf.distribute.get_replica_context().all_reduce('sum', grads)
# Processing aggregated gradients.
optimizer.apply_gradients(zip(grads, vars),
    experimental_aggregate_gradients=False)

Аргументы
grads_and_vars Список пар (градиент, переменная).
name Необязательное имя для возвращаемой операции. По умолчанию соответствует имени, переданному конструктору Optimizer.
experimental_aggregate_gradients Нужно ли суммировать градиенты из различных реплик при наличии tf.distribute.Strategy. Если False, ответственность за агрегацию градиентов лежит на пользователе. По умолчанию True.
Возвращает
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()

Возвращает текущие веса оптимизатора.

Веса оптимизатора — это его состояние (т. е. переменные). Эта функция возвращает значения весов, связанные с этим оптимизатором, в виде списка массивов NumPy. Первое значение всегда является счётчиком итераций оптимизатора, за которым следуют переменные состояния оптимизатора в порядке их создания. Возвращаемый список можно использовать для загрузки состояния в аналогичные оптимизаторы с такой же параметризацией.

Например, оптимизатор RMSprop для этой простой модели возвращает список из трёх значений — счётчик итераций, а затем среднеквадратичные значения ядра и смещения единственного слоя Dense:

opt = tf.keras.optimizers.RMSprop()
m = tf.keras.models.Sequential([tf.keras.layers.Dense(10)])
m.compile(opt, loss='mse')
data = np.arange(100).reshape(5, 20)
labels = np.zeros(5)
print('Training'); results = m.fit(data, labels)
Training ...
len(opt.get_weights())
3
Возвращает
Значения весов в виде списка массивов NumPy.

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 Необязательное имя возвращаемой операции.
Возвращает
Объект Operation, который обновляет переменные в var_list. Значение iterations будет автоматически увеличено на 1.
Исключения
ValueError Если некоторые из переменных не являются объектами Variable.

set_weights

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

set_weights(
    weights
)

Устанавливает веса оптимизатора.

Веса оптимизатора — это его состояние (то есть переменные). Эта функция принимает значения весов, связанные с этим оптимизатором, в виде списка массивов NumPy. Первое значение всегда — это счётчик итераций оптимизатора, за которым следуют переменные состояния оптимизатора в порядке их создания. Переданные значения используются для установки нового состояния оптимизатора.

Например, оптимизатор RMSprop для этой простой модели принимает список из трёх значений — счётчик итераций, а затем среднеквадратичное значение ядра и смещения единственного слоя Dense:

opt = tf.keras.optimizers.RMSprop()
m = tf.keras.models.Sequential([tf.keras.layers.Dense(10)])
m.compile(opt, loss='mse')
data = np.arange(100).reshape(5, 20)
labels = np.zeros(5)
print('Training'); results = m.fit(data, labels)
Training ...
new_weights = [np.array(10), np.ones([20, 10]), np.zeros([10])]
opt.set_weights(new_weights)
opt.iterations
<tf.Variable 'RMSprop/iter:0' shape=() dtype=int64, numpy=10>
Аргументы
weights значения весов в виде списка массивов numpy.

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/r2.3/api_docs/python/tf/keras/optimizers/Nadam

Spec-Zone.ru

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