From 1b206c1a31cd530b55817e48e0f54ccb8ba112b7 Mon Sep 17 00:00:00 2001 From: Greg Billock Date: Thu, 11 Apr 2019 11:48:11 -0700 Subject: [PATCH] Add benchmark for unicode_script op. PiperOrigin-RevId: 243111734 --- .../kernel_tests/unicode_script_op_test.py | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/tensorflow/python/kernel_tests/unicode_script_op_test.py b/tensorflow/python/kernel_tests/unicode_script_op_test.py index 83cfeb20216..46d8c213e5d 100644 --- a/tensorflow/python/kernel_tests/unicode_script_op_test.py +++ b/tensorflow/python/kernel_tests/unicode_script_op_test.py @@ -18,10 +18,12 @@ from __future__ import absolute_import from __future__ import division from __future__ import print_function +from tensorflow.python.client import session from tensorflow.python.framework import constant_op from tensorflow.python.framework import dtypes from tensorflow.python.framework import test_util from tensorflow.python.ops import string_ops +from tensorflow.python.platform import benchmark from tensorflow.python.platform import test @@ -56,5 +58,31 @@ class UnicodeScriptOpTest(test.TestCase): self.assertAllEqual(outputs, [-1, -1]) +class UnicodeScriptBenchmarks(test.Benchmark): + + # Generate some random-ish input by jumping around in unicode characters + def _generateBenchmarkInput(self, size): + chars = [] + i = 0 + offset = 0 + continuity_size = 20 + while i < size: + chars.append(ord("a") + offset) + i += 1 + offset += 1 + if i % continuity_size == 0: + offset += 100 + if offset > 0x1F940: + offset = 0 + + return chars + + def benchmark_unicode_script(self): + with session.Session(config=benchmark.benchmark_config()) as sess: + chars = self._generateBenchmarkInput(1000000) + script = string_ops.unicode_script(chars) + self.run_op_benchmark(sess, script.op, min_iters=100) + + if __name__ == "__main__": test.main()