tf.contrib.opt.MultitaskOptimizerWrapper
Обёртка оптимизатора, делающая все нулевые градиенты безвредными.
tf.contrib.opt.MultitaskOptimizerWrapper(
opt
)
Это может быть полезно, когда используется многозадачная функция потерь, и некоторые компоненты функции потерь могут отсутствовать (например, замаскированы) в некоторых обучающих партиях. Технически их градиент будет нулевым, что обычно повлияет на состояние оптимизатора (например, сбросит текущее среднее значение до нуля). Однако это нежелательное поведение, так как отсутствующий компонент функции потерь должен обрабатываться как неизвестный, а не нулевой.
Эта обёртка отфильтровывает тензоры градиентов со значениями, равными нулю, тем самым сохраняя состояние оптимизатора.
Если используется ограничение градиентов по глобальной норме, предоставленная функция clip_gradients_by_global_norm должна использоваться (и быть явно указана пользователем). В противном случае глобальная норма будет недооценена из-за тензоров со значениями, равными нулю, которые следует игнорировать.
Вычисление и применение градиента делегируется базовому оптимизатору. Применение градиента изменяется только для тензоров с нулевыми значениями.
Пример:
momentum_optimizer = tf.compat.v1.train.MomentumOptimizer( learning_rate, momentum=0.9) multitask_momentum_optimizer = tf.contrib.opt.MultitaskOptimizerWrapper( momentum_optimizer) gradvars = multitask_momentum_optimizer.compute_gradients( loss) gradvars_clipped, _ = tf.contrib.opt.clip_gradients_by_global_norm( gradvars, 15.0) train_op = multitask_momentum_optimizer.apply_gradients( gradvars_clipped, global_step=batch)
| Аргументы | |
|---|---|
opt | экземпляр класса, реализующего tf.train.Optimizer. |
© 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/opt/MultitaskOptimizerWrapper