tf.contrib.layers.recompute_grad
Декоратор, который пересчитывает функцию на обратном проходе.
tf.contrib.layers.recompute_grad(
fn, use_data_dep=_USE_DEFAULT, tupleize_grads=False
)
Для использования этой функции необходимо использовать ResourceVariable (т.е. `variable_scope(name, use_resource=True)`, которые являются значениями по умолчанию в режиме Eager и при выполнении на TPU.
| Аргументы | |
|---|---|
fn | функция, которая принимает тензоры (все как позиционные аргументы) и возвращает кортеж тензоров. Обратите внимание, что fn не должна ссылаться на другие тензоры или переменные. |
use_data_dep | bool, если True будет использовать зависимость от данных для принудительного пересчета. Если False будет использовать зависимость от управления. По умолчанию будет True в контексте XLA и False в противном случае. XLA игнорирует зависимости от управления, поэтому эта зависимость от данных необходима. |
tupleize_grads | bool, если True будет использовать зависимости от управления, чтобы гарантировать, что все градиенты будут вычислены до того, как какие-либо будут использованы последующими операциями. Если use_data_dep также True, будет использоваться зависимость от данных вместо зависимости от управления. |
| Возвращаемые значения | |
|---|---|
| Обёртка fn, которая идентична fn при вызове, но её активации будут отброшены и пересчитаны на обратном проходе (т.е. при вызове tf.gradients). |
| Исключения | |
|---|---|
ValueError | если fn ссылается на тензоры или переменные. |
© 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/recompute_grad