79 lines
2.5 KiB
Python
79 lines
2.5 KiB
Python
# Copyright 2016 The TensorFlow Authors. All Rights Reserved.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
# ==============================================================================
|
|
"""Offline dump analyzer of TensorFlow Debugger (tfdbg)."""
|
|
from __future__ import absolute_import
|
|
from __future__ import division
|
|
from __future__ import print_function
|
|
|
|
import argparse
|
|
import sys
|
|
|
|
# Google-internal import(s).
|
|
|
|
from tensorflow.python.debug.cli import analyzer_cli
|
|
from tensorflow.python.debug.lib import debug_data
|
|
from tensorflow.python.platform import app
|
|
|
|
|
|
def main(_):
|
|
if FLAGS.log_usage:
|
|
pass # No logging for open-source.
|
|
|
|
if not FLAGS.dump_dir:
|
|
print("ERROR: dump_dir flag is empty.", file=sys.stderr)
|
|
sys.exit(1)
|
|
|
|
print("tfdbg offline: FLAGS.dump_dir = %s" % FLAGS.dump_dir)
|
|
|
|
debug_dump = debug_data.DebugDumpDir(
|
|
FLAGS.dump_dir, validate=FLAGS.validate_graph)
|
|
cli = analyzer_cli.create_analyzer_ui(
|
|
debug_dump,
|
|
tensor_filters={"has_inf_or_nan": debug_data.has_inf_or_nan},
|
|
ui_type=FLAGS.ui_type)
|
|
|
|
title = "tfdbg offline @ %s" % FLAGS.dump_dir
|
|
cli.run_ui(title=title, title_color="black_on_white", init_command="lt")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
parser = argparse.ArgumentParser()
|
|
parser.register("type", "bool", lambda v: v.lower() == "true")
|
|
parser.add_argument(
|
|
"--dump_dir", type=str, default="", help="tfdbg dump directory to load")
|
|
parser.add_argument(
|
|
"--log_usage",
|
|
type="bool",
|
|
nargs="?",
|
|
const=True,
|
|
default=True,
|
|
help="Whether the usage of this tool is to be logged")
|
|
parser.add_argument(
|
|
"--ui_type",
|
|
type=str,
|
|
default="curses",
|
|
help="Command-line user interface type (curses | readline)")
|
|
parser.add_argument(
|
|
"--validate_graph",
|
|
nargs="?",
|
|
const=True,
|
|
type="bool",
|
|
default=True,
|
|
help="""\
|
|
Whether the dumped tensors will be validated against the GraphDefs\
|
|
""")
|
|
FLAGS, unparsed = parser.parse_known_args()
|
|
app.run(main=main, argv=[sys.argv[0]] + unparsed)
|