Execute the decorated test in both graph mode and eager mode.
tfds.testing.run_in_graph_and_eager_modes( func=None, config=None, use_gpu=True )
This function returns a decorator intended to be applied to test methods in
test_case.TestCase class. Doing so will cause the contents of the test
method to be executed twice - once in graph mode, and once with eager
execution enabled. This allows unittests to confirm the equivalence between
eager and graph execution.
NOTE: This decorator can only be used when executing eagerly in the outer scope.
For example, consider the following unittest:
tf.compat.v1.enable_eager_execution() class SomeTest(testing.TestCase): @testing.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__": testing.test_main()
This test validates that
tf.add() has the same behavior when computed with
eager execution enabled as it does when constructing a TensorFlow graph and
z tensor with a session.
func: function to be annotated. If
funcis None, this method returns a decorator the can be applied to a function. If
funcis not None this returns the decorator applied to
config: An optional config_pb2.ConfigProto to use to configure the session when executing graphs.
use_gpu: If True, attempt to run as many operations as possible on GPU.
Returns a decorator that will run the decorated test method twice: once by constructing and executing a graph in a session and once with eager execution enabled.