tf.contrib.eager.run_test_in_graph_and_eager_modes
Выполнить помеченный тест с включенной и выключенной функцией eager выполнения.
tf.contrib.eager.run_test_in_graph_and_eager_modes(
func=None, config=None, use_gpu=True, reset_test=True,
assert_no_eager_garbage=False
)
Эта функция возвращает декоратор, предназначенный для применения к методам тестов в классе tf.test.TestCase. Это заставит содержимое метода теста выполняться дважды — один раз в обычном режиме и один раз с включённым eager выполнением. Это позволяет юнит-тестам подтвердить эквивалентность выполнения в режиме eager и в режиме графа (см. tf.compat.v1.enable_eager_execution).
Например, рассмотрим следующий юнит-тест:
class MyTests(tf.test.TestCase):
@run_in_graph_and_eager_modes
def test_foo(self):
x = tf.constant([1, 2])
y = tf.constant([3, 4])
z = tf.add(x, y)
self.assertAllEqual([4, 6], self.evaluate(z))
if __name__ == "__main__":
tf.test.main()
Этот тест проверяет, что tf.add() имеет одинаковое поведение при вычислении с включённым eager выполнением, что и при построении графика TensorFlow и выполнении z тензора в сессии.
deprecated_graph_mode_only, run_v1_only, run_v2_only, и run_in_graph_and_eager_modes являются доступными декораторами для различных комбинаций v1/v2/eager/graph.
| Аргументы | |
|---|---|
func | функция, которая должна быть аннотирована. Если func равно None, эта функция возвращает декоратор, который можно применить к функции. Если func не равно None, возвращается декоратор, применённый к func. |
config | Необязательный config_pb2.ConfigProto для настройки сессии при выполнении графов. |
use_gpu | Если True, попытаться выполнить как можно больше операций на GPU. |
reset_test | Если True, tearDown и SetUp тестового случая между двумя выполнениями теста (один раз с включённым, а один раз с выключенным eager выполнением). |
assert_no_eager_garbage | Если True, устанавливает DEBUG_SAVEALL для сборщика мусора и проверяет, что при выполнении теста с включённым eager выполнением не создаётся дополнительный мусор. Это приведет к ошибке, если существуют циклы ссылок (например, a = []; a.append(a)). По умолчанию отключено, потому что некоторые тесты могут создавать мусор по законным причинам (например, они определяют класс, который наследует от object), и потому что DEBUG_SAVEALL может быть «липким» в некоторых интерпретаторах Python (что означает, что тесты, которые полагаются на то, что объекты собираются где-то ещё в файле юнит-теста, не будут работать). Кроме того, проверяет, что ни у чего нет ссылки на тензоры, выделенные тестом. |
| Возвращаемое значение | |
|---|---|
| Возвращает декоратор, который дважды выполнит помеченный метод теста: один раз путем построения и выполнения графа в сессии, а другой раз с включённым eager выполнением. |
© 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/eager/run_test_in_graph_and_eager_modes