Spec-Zone.ru › TensorFlow 1.15

tf.contrib.layers.optimize_loss

Учитывая функцию потерь и параметры оптимизатора, возвращает операцию обучения.

tf.contrib.layers.optimize_loss(
    loss, global_step, learning_rate, optimizer, gradient_noise_scale=None,
    gradient_multipliers=None, clip_gradients=None, learning_rate_decay_fn=None,
    update_ops=None, variables=None, name=None, summaries=None,
    colocate_gradients_with_ops=False, increment_global_step=True
)

Различные способы передачи оптимизаторов включают:

  • по строке, задающей имя оптимизатора. См. OPTIMIZER_CLS_NAMES для полного списка. Например, optimize_loss(..., optimizer='Adam').
  • по функции, принимающей скорость обучения Tensor в качестве аргумента и возвращающей экземпляр Optimizer. Например, optimize_loss(..., optimizer=lambda lr: tf.compat.v1.train.MomentumOptimizer(lr, momentum=0.5)). В качестве альтернативы, если learning_rate является None, функция не принимает аргументов. Например, optimize_loss(..., learning_rate=None, optimizer=lambda: tf.compat.v1.train.MomentumOptimizer(0.5, momentum=0.5)).
  • по подклассу Optimizer, имеющему конструктор с одним аргументом (аргумент — скорость обучения), такой как AdamOptimizer или AdagradOptimizer. Например, optimize_loss(..., optimizer=tf.compat.v1.train.AdagradOptimizer).
  • по экземпляру подкласса Optimizer. Например, optimize_loss(..., optimizer=tf.compat.v1.train.AdagradOptimizer(0.5)).
Аргументы
loss Скалярная Tensor.
global_step Скалярное целое число Tensor, счётчик шагов для обновления на каждом шаге, если increment_global_step не False. Если не указано, оно будет взято из стандартной схемы графа (см. tf.compat.v1.train.get_global_step для подробностей). Если оно не было создано, шаг не будет увеличиваться при каждом обновлении весов. learning_rate_decay_fn требует global_step.
learning_rate Плавающее число или Tensor, величина обновления на каждом шаге обучения. Может быть None.
optimizer Строка, класс или экземпляр оптимизатора, используемый в качестве тренера. Строка должна быть именем оптимизатора, например, 'SGD', 'Adam', 'Adagrad'. Полный список в константе OPTIMIZER_CLS_NAMES. Класс должен быть подклассом tf.Optimizer, реализующим функции compute_gradients и apply_gradients. Экземпляр оптимизатора должен быть экземпляром подкласса tf.Optimizer и иметь функции compute_gradients и apply_gradients .
gradient_noise_scale Плавающее число или None, добавляет шум с нулевым средним, масштабируемый этим значением.
gradient_multipliers Словарь переменных или имён переменных с плавающими значениями. Если присутствует, градиенты для указанных переменных будут умножены на заданную константу.
clip_gradients Плавающее число, вызываемая функция или None. Если предоставлено плавающее число, применяется глобальное ограничение, чтобы предотвратить превышение нормы градиента этим значением. В качестве альтернативы, можно указать вызываемую функцию, например, adaptive_clipping_fn(). Эта функция принимает список кортежей (gradients, variables) и возвращает то же самое с изменёнными градиентами.
learning_rate_decay_fn Функция, принимающая learning_rate и global_step Tensor, возвращающая Tensor. Может быть использована для реализации любых функций распада скорости обучения. Например: tf.compat.v1.train.exponential_decay. Игнорируется, если learning_rate не указано.
update_ops Список операций обновления Operation для выполнения на каждом шаге. Если None, использует элементы коллекции UPDATE_OPS. Порядок выполнения между update_ops и loss не определён.
variables Список переменных для оптимизации или None для использования всех обучаемых переменных.
name Имя для этой операции используется для группировки операций и сводок.
summaries Список внутренних величин для визуализации в tensorboard. Если не задано, будут отображаться функция потерь, скорость обучения и глобальная норма градиентов. Полный список возможных значений находится в OPTIMIZER_SUMMARIES.
colocate_gradients_with_ops Если True, попытаться разместить градиенты с соответствующей операцией.
increment_global_step Нужно ли увеличивать global_step. Если ваша модель вызывает optimize_loss несколько раз за шаг обучения (например, для оптимизации разных частей модели), используйте этот аргумент, чтобы избежать увеличения global_step больше, чем необходимо.
Возвращаемое значение
Операция обучения.
Исключения
ValueError если:
  • loss имеет неверный тип или форму.
  • global_step имеет неверный тип или форму.
  • learning_rate имеет неверный тип или значение.
  • optimizer имеет неверный тип.
  • clip_gradients не является ни плавающим числом, ни вызываемой функцией.
  • learning_rate и learning_rate_decay_fn указаны, но доступно нет global_step.
  • gradients пусто.

© 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/contrib/layers/optimize_loss

Spec-Zone.ru

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