diff options
author | A. Unique TensorFlower <gardener@tensorflow.org> | 2018-01-17 17:49:23 -0800 |
---|---|---|
committer | TensorFlower Gardener <gardener@tensorflow.org> | 2018-01-17 17:53:15 -0800 |
commit | a04353fda800b66c9f6fcb3d3699415db72fb792 (patch) | |
tree | 910b43b04f7b83553e765006ea1e413c822286fd /tensorflow/python/profiler | |
parent | fc415ed44f2b0fe732562317d2c3ac5304f431a2 (diff) |
Dynamically print helper message based on user queries.
PiperOrigin-RevId: 182298241
Diffstat (limited to 'tensorflow/python/profiler')
-rw-r--r-- | tensorflow/python/profiler/internal/BUILD | 1 | ||||
-rw-r--r-- | tensorflow/python/profiler/internal/model_analyzer_testlib.py | 6 | ||||
-rw-r--r-- | tensorflow/python/profiler/model_analyzer_test.py | 17 |
3 files changed, 17 insertions, 7 deletions
diff --git a/tensorflow/python/profiler/internal/BUILD b/tensorflow/python/profiler/internal/BUILD index dcac070a3f..362a1c49e6 100644 --- a/tensorflow/python/profiler/internal/BUILD +++ b/tensorflow/python/profiler/internal/BUILD @@ -21,6 +21,7 @@ py_library( name = "model_analyzer_testlib", srcs = ["model_analyzer_testlib.py"], srcs_version = "PY2AND3", + visibility = ["//visibility:public"], deps = [ "//tensorflow/python:array_ops", "//tensorflow/python:framework_for_generated_wrappers", diff --git a/tensorflow/python/profiler/internal/model_analyzer_testlib.py b/tensorflow/python/profiler/internal/model_analyzer_testlib.py index 350a62c0ea..895646997b 100644 --- a/tensorflow/python/profiler/internal/model_analyzer_testlib.py +++ b/tensorflow/python/profiler/internal/model_analyzer_testlib.py @@ -109,3 +109,9 @@ def ProfilerFromFile(profile_file): profiler = model_analyzer.Profiler.__new__(model_analyzer.Profiler) yield profiler print_mdl.DeleteProfiler() + + +def CheckAndRemoveDoc(profile): + assert 'Doc:' in profile + start_pos = profile.find('Profile:') + return profile[start_pos + 9:] diff --git a/tensorflow/python/profiler/model_analyzer_test.py b/tensorflow/python/profiler/model_analyzer_test.py index 2d6766f390..9153855588 100644 --- a/tensorflow/python/profiler/model_analyzer_test.py +++ b/tensorflow/python/profiler/model_analyzer_test.py @@ -68,7 +68,7 @@ class PrintModelAnalysisTest(test.TestCase): ' DW (3x3x3x6, 162/162 params)\n' ' DW2 (2x2x6x12, 288/288 params)\n' ' ScalarW (1, 1/1 params)\n', - f.read()) + lib.CheckAndRemoveDoc(f.read())) def testSelectEverythingDetail(self): ops.reset_default_graph() @@ -95,7 +95,7 @@ class PrintModelAnalysisTest(test.TestCase): with gfile.Open(outfile, 'r') as f: # pylint: disable=line-too-long - dump_str = f.read() + dump_str = lib.CheckAndRemoveDoc(f.read()) outputs = dump_str.split('\n') self.assertEqual(outputs[0], @@ -138,7 +138,7 @@ class PrintModelAnalysisTest(test.TestCase): with lib.ProfilerFromFile(profile_file) as profiler: profiler.profile_name_scope(options=opts) with gfile.Open(outfile, 'r') as f: - self.assertEqual(dump_str, f.read()) + self.assertEqual(dump_str, lib.CheckAndRemoveDoc(f.read())) def testSelectEverything(self): ops.reset_default_graph() @@ -196,7 +196,7 @@ class PrintModelAnalysisTest(test.TestCase): # pylint: disable=line-too-long self.assertEqual( 'node name | requested bytes | # parameters | # float_ops | assigned devices | in', - f.read()[0:80]) + lib.CheckAndRemoveDoc(f.read())[0:80]) # pylint: enable=line-too-long def testComplexCodeView(self): @@ -225,8 +225,10 @@ class PrintModelAnalysisTest(test.TestCase): with gfile.Open(outfile, 'r') as f: lines = f.read().split('\n') result = '\n'.join([l[:min(len(l), 80)] for l in lines]) - self.assertEqual(compat.as_bytes('node name | # parameters | # float_ops\n_TFProfRoot (--/2.84k params, --/168.86k flops)\n model_analyzer_testlib.py:63:BuildFullModel (0/1.80k params, 0/45.37k flops)\n model_analyzer_testlib.py:40:BuildSmallModel (0/0 params, 0/0 flops)\n model_analyzer_testlib.py:44:BuildSmallModel (0/4 params, 0/8 flops)\n model_analyzer_testlib.py:48:BuildSmallModel (0/648 params, 0/1.30k flops)\n model_analyzer_testlib.py:49:BuildSmallModel (0/0 params, 0/23.33k flops)\n model_analyzer_testlib.py:53:BuildSmallModel (0/1.15k params, 0/2.30k flops)\n model_analyzer_testlib.py:54:BuildSmallModel (0/0 params, 0/18.43k flops)\n model_analyzer_testlib.py:63:BuildFullModel (gradient) (0/0 params, 0/67.39k f\n model_analyzer_testlib.py:49:BuildSmallModel (gradient) (0/0 params, 0/46.66\n model_analyzer_testlib.py:54:BuildSmallModel (gradient) (0/0 params, 0/20.74\n model_analyzer_testlib.py:67:BuildFullModel (0/1.04k params, 0/18.58k flops)\n model_analyzer_testlib.py:67:BuildFullModel (gradient) (0/0 params, 0/37.00k f\n model_analyzer_testlib.py:69:BuildFullModel (0/0 params, 0/0 flops)\n model_analyzer_testlib.py:70:BuildFullModel (0/0 params, 0/258 flops)\n model_analyzer_testlib.py:70:BuildFullModel (gradient) (0/0 params, 0/129 flop\n model_analyzer_testlib.py:72:BuildFullModel (0/0 params, 0/141 flops)\n'), - compat.as_bytes(result)) + self.assertEqual( + compat.as_bytes( + 'node name | # parameters | # float_ops\n_TFProfRoot (--/2.84k params, --/168.86k flops)\n model_analyzer_testlib.py:63:BuildFullModel (0/1.80k params, 0/45.37k flops)\n model_analyzer_testlib.py:40:BuildSmallModel (0/0 params, 0/0 flops)\n model_analyzer_testlib.py:44:BuildSmallModel (0/4 params, 0/8 flops)\n model_analyzer_testlib.py:48:BuildSmallModel (0/648 params, 0/1.30k flops)\n model_analyzer_testlib.py:49:BuildSmallModel (0/0 params, 0/23.33k flops)\n model_analyzer_testlib.py:53:BuildSmallModel (0/1.15k params, 0/2.30k flops)\n model_analyzer_testlib.py:54:BuildSmallModel (0/0 params, 0/18.43k flops)\n model_analyzer_testlib.py:63:BuildFullModel (gradient) (0/0 params, 0/67.39k f\n model_analyzer_testlib.py:49:BuildSmallModel (gradient) (0/0 params, 0/46.66\n model_analyzer_testlib.py:54:BuildSmallModel (gradient) (0/0 params, 0/20.74\n model_analyzer_testlib.py:67:BuildFullModel (0/1.04k params, 0/18.58k flops)\n model_analyzer_testlib.py:67:BuildFullModel (gradient) (0/0 params, 0/37.00k f\n model_analyzer_testlib.py:69:BuildFullModel (0/0 params, 0/0 flops)\n model_analyzer_testlib.py:70:BuildFullModel (0/0 params, 0/258 flops)\n model_analyzer_testlib.py:70:BuildFullModel (gradient) (0/0 params, 0/129 flop\n model_analyzer_testlib.py:72:BuildFullModel (0/0 params, 0/141 flops)\n' + ), compat.as_bytes(lib.CheckAndRemoveDoc(result))) self.assertLess(0, tfprof_node.total_exec_micros) self.assertEqual(2844, tfprof_node.total_parameters) @@ -348,7 +350,8 @@ class PrintModelAnalysisTest(test.TestCase): # pylint: disable=line-too-long self.assertEqual( 'nodename|requestedbytes|peakbytes|residualbytes|outputbytes|totalexecutiontime|acceleratorexecutiontime|cpuexecutiontime|#parameters|opoccurrence(run|defined)|inputshapes', - f.read().replace('\t', '').replace(' ', '')[0:170]) + lib.CheckAndRemoveDoc(f.read()).replace('\t', + '').replace(' ', '')[0:170]) # pylint: enable=line-too-long total_children = 0 |