tf.keras.optimizers.Adam
| Просмотреть исходный код на GitHub |
Оптимизатор, реализующий алгоритм Adam.
Наследуется от: Optimizer
tf.keras.optimizers.Adam(
learning_rate=0.001, beta_1=0.9, beta_2=0.999, epsilon=1e-07, amsgrad=False,
name='Adam', **kwargs
)
Оптимизация Adam — это метод стохастического градиентного спуска, основанный на адаптивном оценивании моментов первого и второго порядка. Согласно статье Adam: A Method for Stochastic Optimization. Kingma et al., 2014, этот метод «вычислительно эффективен, имеет малые требования к памяти, инвариантен к диагональному масштабированию градиентов и хорошо подходит для задач, больших по объёму данных/параметров».
Для AMSGrad см. On The Convergence Of Adam And Beyond. Reddi et al., 5-8.
| Аргументы | |
|---|---|
learning_rate | Тензор или значение с плавающей запятой. Скорость обучения. |
beta_1 | Значение с плавающей запятой или постоянный тензор с плавающей запятой. Экспоненциальная скорость затухания для оценок моментов первого порядка. |
beta_2 | Значение с плавающей запятой или постоянный тензор с плавающей запятой. Экспоненциальная скорость затухания для оценок моментов второго порядка. |
epsilon | Небольшая константа для обеспечения числовой устойчивости. Эта величина ε — это «ε шляпа» в работе Кингмы и Ба (в формуле перед разделом 2.1), а не ε в алгоритме 1 статьи. |
amsgrad | Булево значение. Применять ли вариант AMSGrad этого алгоритма из статьи «On the Convergence of Adam and beyond». |
name | Необязательное имя для операций, созданных при применении градиентов. По умолчанию равно «Adam». |
**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(). Она возвращает операцию, которая применяет градиенты.
| Аргументы | |
|---|---|
grads_and_vars | Список пар (градиент, переменная). |
name | Необязательное имя для возвращаемой операции. По умолчанию совпадает с именем, переданным в конструктор Optimizer. |
| Возвращаемое значение | |
|---|---|
Операция, которая применяет указанные градиенты. Счётчик 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/Adam