Модуль: tf.compat.v1.flags.tf_decorator
Базовый класс TFDecorator и вспомогательные функции для работы с декораторами.
Существует два способа создания декораторов, которые могут быть проанализированы TensorFlow. Это важно для генерации документации, чтобы сигнатуры функций не были скрыты сигнатурой (*args, **kwds), которая часто используется в декораторах.
- Вызовите
tf_decorator.make_decoratorдля вашей оберточной функции. Если ваш декоратор бессостоятелен или может захватить все необходимые переменные с помощью лексического замыкания, это самый простой вариант. Создайте вашу оберточную функцию как обычно, но вместо возврата функции вернитеtf_decorator.make_decorator(target, your_wrapper). Это прикрепит некоторые метаданные интроспекции декоратора к вашей обертке и вернёт её.
Пример:
def print_hello_before_calling(target): def wrapper(*args, *kwargs): print('hello') return target(args, **kwargs) return tf_decorator.make_decorator(target, wrapper)
- Наследуйте от TFDecorator. Если ваш декоратор должен быть состоятельным, вы можете реализовать его на основе TFDecorator. Сохраняйте необходимые данные состояния в вашем производном классе и реализуйте метод
__call__для выполнения своей работы перед вызовом целевой функции. Вы можете получить доступ к целевой функции черезsuper(MyDecoratorClass, self).decorated_target, и вызвать её с необходимыми параметрами.
Пример:
class CallCounter(tf_decorator.TFDecorator): def init(self, target): super(CallCounter, self).init('count_calls', target) self.call_count = 0
def call(self, *args, *kwargs): self.call_count += 1 return super(CallCounter, self).decorated_target(args, **kwargs)
def count_calls(target): return CallCounter(target)
Модули
tf_stack модуль: Функции для извлечения и анализа стеков. Быстрее, чем стандартные библиотеки Python.
Классы
class TFDecorator: Базовый класс для всех декораторов TensorFlow.
Функции
make_decorator(...): Создание декоратора из обёртки и целевой функции.
rewrap(...): Вставляет новую целевую функцию в функцию, созданную с помощью make_decorator.
unwrap(...): Разбирает объект в список TFDecorators и конечную целевую функцию.
© 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/r2.4/api_docs/python/tf/compat/v1/flags/tf_decorator