tf.keras.optimizers.SGD
| Просмотреть исходный код на GitHub |
Оптимизатор стохастического градиентного спуска и импульса.
Наследуется от: Optimizer
tf.keras.optimizers.SGD(
learning_rate=0.01, momentum=0.0, nesterov=False, name='SGD', **kwargs
)
Вычисляет:
theta(t+1) = theta(t) - learning_rate * gradient gradient is evaluated at theta(t).
или Вычисляет (если nesterov = False):
v(t+1) = momentum * v(t) - learning_rate * gradient theta(t+1) = theta(t) + v(t+1) if `nesterov` is False, gradient is evaluated at theta(t). if `nesterov` is True, gradient is evaluated at theta(t) + momentum * v(t), and the variables always store theta + m v instead of theta
Некоторые из перечисленных ниже аргументов являются гиперпараметрами, где гиперпараметр определяется как скалярный тензор, обычное значение Python или вызываемая функция (которая будет вычислена, когда apply_gradients вызывается), возвращающая скалярный тензор или значение Python.
Ссылки
nesterov = True, See [Sutskever et al., 2013]( http://jmlr.org/proceedings/papers/v28/sutskever13.pdf).
| Аргументы | |
|---|---|
learning_rate | Гиперпараметр с плавающей точкой >= 0. Скорость обучения. |
momentum | Гиперпараметр с плавающей точкой >= 0, ускоряющий SGD в соответствующем направлении и уменьшающий колебания. |
nesterov | Булево значение. Применять ли импульс Нестерова. |
name | Необязательное префиксное имя для операций, созданных при применении градиентов. По умолчанию «SGD». |
**kwargs | Аргументы ключевых слов. Допустимые значения — {clipnorm, clipvalue, lr, decay}. clipnorm — ограничение градиентов по норме; clipvalue — ограничение градиентов по значению, decay включено для обратной совместимости, чтобы разрешить обратное экспоненциальное уменьшение скорости обучения. lr включено для обратной совместимости; рекомендуется использовать learning_rate вместо него. |
Совместимость с Eager
При включенном режиме Eager execution, 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/SGD