Exemple #1
0
def main(unused_argv=None):
    """Standard TensorBoard program CLI.

  See `tensorboard.program.main` for further documentation.
  """
    return program.main(default.get_plugins(),
                        default.get_assets_zip_provider())
Exemple #2
0
def main(unused_argv=None):
  """Standard TensorBoard program CLI.

  See `tensorboard.program.main` for further documentation.
  """
  return program.main(default.get_plugins(),
                      default.get_assets_zip_provider())
 def __get_tb_app(self, tensorboard_logs):
     return application.standard_tensorboard_wsgi(
         logdir=tensorboard_logs,
         assets_zip_provider=tb_default.get_assets_zip_provider(),
         purge_orphaned_data=True,
         reload_interval=5,
         plugins=tb_default.get_plugins())
Exemple #4
0
  def __init__(self,
               plugins=None,
               assets_zip_provider=None,
               server_class=None):
    """Creates new instance.

    Args:
      plugins: A list of TensorBoard plugins to load, as TBLoader instances or
        TBPlugin classes. If not specified, defaults to first-party plugins.
      assets_zip_provider: Delegates to TBContext or uses default if None.
      server_class: An optional subclass of TensorBoardServer to use for serving
        the TensorBoard WSGI app.

    :type plugins: list[Union[base_plugin.TBLoader, Type[base_plugin.TBPlugin]]]
    :type assets_zip_provider: () -> file
    :type server_class: class
    """
    if plugins is None:
      from tensorboard import default
      plugins = default.get_plugins()
    if assets_zip_provider is None:
      from tensorboard import default
      assets_zip_provider = default.get_assets_zip_provider()
    if server_class is None:
      server_class = WerkzeugServer
    def make_loader(plugin):
      if isinstance(plugin, base_plugin.TBLoader):
        return plugin
      if issubclass(plugin, base_plugin.TBPlugin):
        return base_plugin.BasicLoader(plugin)
      raise ValueError("Not a TBLoader or TBPlugin subclass: %s" % plugin)
    self.plugin_loaders = [make_loader(p) for p in plugins]
    self.assets_zip_provider = assets_zip_provider
    self.server_class = server_class
    self.flags = None
    def __init__(self,
                 plugin_loaders=None,
                 assets_zip_provider=None,
                 wsgi_middleware=None):
        """Creates new instance.

    The configure() method should be called after creating a new
    instance of this classe.

    Args:
      plugin_loaders: A list of TBLoader plugin loader instances. If not
        specified, defaults to first-party plugins.
      assets_zip_provider: Delegates to TBContext or uses default if
        None.
      wsgi_middleware: Optional function for installing middleware
        around the standard TensorBoard WSGI handler.

    :type plugin_loaders: list[base_plugin.TBLoader]
    :type assets_zip_provider: () -> file
    """
        if plugin_loaders is None:
            from tensorboard import default
            plugin_loaders = default.PLUGIN_LOADERS
        if assets_zip_provider is None:
            from tensorboard import default
            assets_zip_provider = default.get_assets_zip_provider()
        self.plugin_loaders = plugin_loaders
        self.assets_zip_provider = assets_zip_provider
        self._wsgi_middleware = wsgi_middleware
        self.flags = None
        self.unparsed_argv = []
    def run(self):
        if LooseVersion(tf.__version__) < LooseVersion("1.12"):  # v1.10
            # Remove http messages
            log = logging.getLogger('werkzeug')
            log.setLevel(logging.ERROR)
            # Start tensorboard server
            tb = program.TensorBoard(default.PLUGIN_LOADERS,
                                     default.get_assets_zip_provider())
            tb.configure(argv=['--logdir', self.dir_path])
            url = tb.launch()
            sys.stdout.write('TensorBoard at %s \n' % url)

        elif LooseVersion(
                tf.__version__) >= LooseVersion("1.12") and LooseVersion(
                    tf.__version__) < LooseVersion("2.0"):  # v1.12 - v1.14
            # Remove http messages
            log = logging.getLogger('werkzeug').setLevel(logging.ERROR)
            # Start tensorboard server
            tb = program.TensorBoard(
                default.get_plugins())  #, default.get_assets_zip_provider())
            tb.configure(argv=[None, '--logdir', self.dir_path])
            url = tb.launch()
            sys.stdout.write('TensorBoard at %s \n' % url)
        else:  # v2.X
            # Remove http messages
            log = logging.getLogger('werkzeug').setLevel(logging.ERROR)
            # Start tensorboard server
            tb = program.TensorBoard(
                default.get_plugins())  # , default.get_assets_zip_provider())
            tb.configure(argv=[None, '--logdir', self.dir_path])
            url = tb.launch()
            sys.stdout.write('TensorBoard at %s \n' % url)
Exemple #7
0
def start_tf_board(client: skein.ApplicationClient,
                   experiment: Experiment = None):
    thread = None
    if experiment:
        model_dir = experiment.estimator.config.model_dir
    else:
        model_dir = os.environ.get('TF_BOARD_MODEL_DIR', None)
    task = cluster.get_task()
    os.environ['GCS_READ_CACHE_DISABLED'] = '1'
    os.environ['PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION'] = 'cpp'
    os.environ['PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION_VERSION'] = '2'
    try:
        program.setup_environment()
        tensorboard = program.TensorBoard(default.get_plugins(),
                                          default.get_assets_zip_provider())
        with _internal.reserve_sock_addr() as (h, p):
            tensorboard_url = f"http://{h}:{p}"
            argv = ['tensorboard', f"--logdir={model_dir}",
                    f"--port={p}"]
            # Append more arguments if needed.
            if 'TF_BOARD_EXTRA_ARGS' in os.environ:
                argv += os.environ['TF_BOARD_EXTRA_ARGS'].split(' ')
            tensorboard.configure(argv)
        tensorboard.launch()
        event.url_event(client, task, f"Tensorboard is listening at {tensorboard_url}")
        thread = [t for t in threading.enumerate() if t.name == 'TensorBoard'][0]
    except Exception as e:
        event.stop_event(client, task, e)

    return thread
Exemple #8
0
 def run(self):
     # Remove http messages
     log = logging.getLogger('tensorflow').setLevel(logging.FATAL)
     # Start tensorboard server
     tb = program.TensorBoard(default.get_plugins(), default.get_assets_zip_provider())
     tb.configure(argv=[None, '--logdir', self.dir_path])
     url = tb.launch()
     sys.stdout.write('TensorBoard at %s \n' % url)
Exemple #9
0
def standard_tensorboard_wsgi(
    logdir,
    purge_orphaned_data,
    reload_interval,
    plugins,
    db_uri="",
    assets_zip_provider=None,
    path_prefix="",
    window_title="",
    flags=None):
  """Construct a TensorBoardWSGIApp with standard plugins and multiplexer.

  Args:
    logdir: The path to the directory containing events files.
    purge_orphaned_data: Whether to purge orphaned data.
    reload_interval: The interval at which the backend reloads more data in
        seconds.  Zero means load once at startup; negative means never load.
    plugins: A list of constructor functions for TBPlugin subclasses.
    path_prefix: A prefix of the path when app isn't served from root.
    db_uri: A String containing the URI of the SQL database for persisting
        data, or empty for memory-only mode.
    assets_zip_provider: See TBContext documentation for more information.
        If this value is not specified, this function will attempt to load
        the `tensorboard.default` module to use the default. This behavior
        might be removed in the future.
    window_title: A string specifying the the window title.
    flags: A dict of the runtime flags provided to the application, or None.
  Returns:
    The new TensorBoard WSGI application.
  """
  if assets_zip_provider is None:
    from tensorboard import default
    assets_zip_provider = default.get_assets_zip_provider()
  multiplexer = event_multiplexer.EventMultiplexer(
      size_guidance=DEFAULT_SIZE_GUIDANCE,
      tensor_size_guidance=DEFAULT_TENSOR_SIZE_GUIDANCE,
      purge_orphaned_data=purge_orphaned_data)
  db_module, db_connection_provider = get_database_info(db_uri)
  # In DB mode, always disable loading event files.
  if db_connection_provider:
    reload_interval = -1
  plugin_name_to_instance = {}
  context = base_plugin.TBContext(
      db_module=db_module,
      db_connection_provider=db_connection_provider,
      db_uri=db_uri,
      flags=flags,
      logdir=logdir,
      multiplexer=multiplexer,
      assets_zip_provider=assets_zip_provider,
      plugin_name_to_instance=plugin_name_to_instance,
      window_title=window_title)
  plugin_instances = [constructor(context) for constructor in plugins]
  for plugin_instance in plugin_instances:
    plugin_name_to_instance[plugin_instance.plugin_name] = plugin_instance
  return TensorBoardWSGIApp(
      logdir, plugin_instances, multiplexer, reload_interval, path_prefix)
 def run(self):
     # Remove http messages
     logging.getLogger("werkzeug").setLevel(logging.CRITICAL)
     logging.getLogger("tensorflow").setLevel(logging.CRITICAL)
     # Start tensorboard server
     tb = program.TensorBoard(default.get_plugins(), default.get_assets_zip_provider())
     tb.configure(argv=[None, "--logdir", self.dir_path, "--port", str(self.port)])
     url = tb.launch()
     print("TensorBoard at %s/#scalars&_smoothingWeight=0" % url)
 def run_v1_10(self):
     # Remove http messages
     log = logging.getLogger('werkzeug')
     log.setLevel(logging.ERROR)
     # Start tensorboard server
     tb = program.TensorBoard(default.PLUGIN_LOADERS,
                              default.get_assets_zip_provider())
     tb.configure(argv=['--logdir', self.dir_path])
     url = tb.launch()
     sys.stdout.write('TensorBoard at %s \n' % url)
def standard_tensorboard_wsgi(
    logdir,
    purge_orphaned_data,
    reload_interval,
    plugins,
    db_uri="",
    assets_zip_provider=None,
    path_prefix=""):
  """Construct a TensorBoardWSGIApp with standard plugins and multiplexer.

  Args:
    logdir: The path to the directory containing events files.
    purge_orphaned_data: Whether to purge orphaned data.
    reload_interval: The interval at which the backend reloads more data in
        seconds.
    plugins: A list of constructor functions for TBPlugin subclasses.
    path_prefix: A prefix of the path when app isn't served from root.
    db_uri: A String containing the URI of the SQL database for persisting
        data, or empty for memory-only mode.
    assets_zip_provider: See TBContext documentation for more information.
        If this value is not specified, this function will attempt to load
        the `tensorboard.default` module to use the default. This behavior
        might be removed in the future.

  Returns:
    The new TensorBoard WSGI application.
  """
  if assets_zip_provider is None:
    from tensorboard import default
    assets_zip_provider = default.get_assets_zip_provider()
  multiplexer = event_multiplexer.EventMultiplexer(
      size_guidance=DEFAULT_SIZE_GUIDANCE,
      tensor_size_guidance=DEFAULT_TENSOR_SIZE_GUIDANCE,
      purge_orphaned_data=purge_orphaned_data)
  db_module, db_connection_provider = get_database_info(db_uri)
  if db_connection_provider is not None:
    with contextlib.closing(db_connection_provider()) as db_conn:
      schema = db.Schema(db_conn)
      schema.create_tables()
      schema.create_indexes()
  plugin_name_to_instance = {}
  context = base_plugin.TBContext(
      db_module=db_module,
      db_connection_provider=db_connection_provider,
      logdir=logdir,
      multiplexer=multiplexer,
      assets_zip_provider=assets_zip_provider,
      plugin_name_to_instance=plugin_name_to_instance)
  plugin_instances = [constructor(context) for constructor in plugins]
  for plugin_instance in plugin_instances:
    plugin_name_to_instance[plugin_instance.plugin_name] = plugin_instance
  return TensorBoardWSGIApp(
      logdir, plugin_instances, multiplexer, reload_interval, path_prefix)
Exemple #13
0
def create_tb_app(log):

    return backendWSGI.standard_tensorboard_wsgi(
        assets_zip_provider=default.get_assets_zip_provider(),
        db_uri='',
        logdir=os.path.expanduser(log),
        purge_orphaned_data=True,
        reload_interval=5,
        plugins=default.get_plugins(),
        path_prefix='',
        window_title='',
        max_reload_threads=1,
        flags='')
Exemple #14
0
def run_main():
    """Initializes flags and calls main()."""
    program.setup_environment()
    tensorboard = program.TensorBoard(default.get_plugins(),
                                      default.get_assets_zip_provider())
    try:
        from absl import app
        app.run(tensorboard.main, flags_parser=tensorboard.configure)
        raise AssertionError("absl.app.run() shouldn't return")
    except ImportError:
        pass
    tensorboard.configure(sys.argv)
    sys.exit(tensorboard.main())
Exemple #15
0
 def run(self, emb_name, port):
     # Remove http messages
     # log = logging.getLogger('sonvx').setLevel(logging.INFO)
     logging.basicConfig(level=logging.INFO)
     logging.propagate = False
     # Start tensorboard server
     tb = program.TensorBoard(default.get_plugins(),
                              default.get_assets_zip_provider())
     tb.configure(
         argv=[None, '--logdir', self.dir_path, '--port',
               str(port)])
     url = tb.launch()
     sys.stdout.write('TensorBoard of %s at %s \n' % (emb_name, url))
Exemple #16
0
        def run(self):
            # Remove http messages
            log = logging.getLogger('werkzeug').setLevel(logging.ERROR)

            logging.getLogger("tensorflow").setLevel(logging.WARNING)
            # Start tensorboard server
            tb = program.TensorBoard(default.get_plugins(),
                                     default.get_assets_zip_provider())
            tb.configure(argv=[
                None, '--logdir', self.dir_path, '--port',
                str(self.port)
            ])
            url = tb.launch()
            print('TensorBoard at %s \n' % url)
def create_tb_app(logdir, reload_interval, purge_orphaned_data):
    argv = [
        "--logdir", logdir,
        "--reload_interval", str(reload_interval),
        "--purge_orphaned_data", str(purge_orphaned_data),
    ]
    tensorboard = program.TensorBoard(
        default.PLUGIN_LOADERS,
        default.get_assets_zip_provider())
    tensorboard.configure(argv)
    return application.standard_tensorboard_wsgi(
        tensorboard.flags,
        tensorboard.plugin_loaders,
        tensorboard.assets_zip_provider)
Exemple #18
0
def run_main():
  """Initializes flags and calls main()."""
  program.setup_environment()
  tensorboard = program.TensorBoard(default.get_plugins(),
                                    default.get_assets_zip_provider())
  try:
    from absl import app
    # Import this to check that app.run() will accept the flags_parser argument.
    from absl.flags import argparse_flags
    app.run(tensorboard.main, flags_parser=tensorboard.configure)
    raise AssertionError("absl.app.run() shouldn't return")
  except ImportError:
    pass
  tensorboard.configure(sys.argv)
  sys.exit(tensorboard.main())
Exemple #19
0
def run_main():
    """Initializes flags and calls main()."""
    program.setup_environment()
    server = program.TensorBoard(default.PLUGIN_LOADERS,
                                 default.get_assets_zip_provider())
    server.configure(sys.argv[1:])
    try:
        from absl import app
        app.run(server.main, sys.argv[:1] + server.unparsed_argv)
        raise AssertionError("absl.app.run() shouldn't return")
    except ImportError:
        pass
    if server.unparsed_argv:
        sys.stderr.write('Unknown flags: %s\nPass --help for help.\n' %
                         (server.unparsed_argv, ))
        sys.exit(1)
    sys.exit(server.main())
 def setUp(self):
     self.context = None
     # The application should have added routes for both plugins.
     self.app = application.standard_tensorboard_wsgi(
         FakeFlags(logdir=self.get_temp_dir()), [
             base_plugin.BasicLoader(
                 functools.partial(
                     FakePlugin,
                     plugin_name='foo',
                     is_active_value=True,
                     routes_mapping={'/foo_route': self._foo_handler},
                     construction_callback=self._construction_callback)),
             base_plugin.BasicLoader(
                 functools.partial(
                     FakePlugin,
                     plugin_name='bar',
                     is_active_value=True,
                     routes_mapping={'/bar_route': self._bar_handler},
                     construction_callback=self._construction_callback)),
         ], default.get_assets_zip_provider())
Exemple #21
0
    def __init__(self,
                 plugins=None,
                 assets_zip_provider=None,
                 server_class=None):
        """Creates new instance.

    Args:
      plugins: A list of TensorBoard plugins to load, as TBLoader instances or
        TBPlugin classes. If not specified, defaults to first-party plugins.
      assets_zip_provider: Delegates to TBContext or uses default if None.
      server_class: An optional subclass of TensorBoardServer to use for serving
        the TensorBoard WSGI app.

    :type plugins: list[Union[base_plugin.TBLoader, Type[base_plugin.TBPlugin]]]
    :type assets_zip_provider: () -> file
    :type server_class: class
    """
        if plugins is None:
            from tensorboard import default
            plugins = default.get_plugins()
        if assets_zip_provider is None:
            from tensorboard import default
            assets_zip_provider = default.get_assets_zip_provider()
        if server_class is None:
            server_class = WerkzeugServer

        def make_loader(plugin):
            if isinstance(plugin, base_plugin.TBLoader):
                return plugin
            if issubclass(plugin, base_plugin.TBPlugin):
                return base_plugin.BasicLoader(plugin)
            raise ValueError("Not a TBLoader or TBPlugin subclass: %s" %
                             plugin)

        self.plugin_loaders = [make_loader(p) for p in plugins]
        self.assets_zip_provider = assets_zip_provider
        self.server_class = server_class
        self.flags = None
 def run(self):
     tb = program.TensorBoard(default.get_plugins(),
                              default.get_assets_zip_provider())
     tb.configure(argv=[None, '--logdir', self.dir_path])
     url = tb.launch()
     print('TensorBoard at %s \n' % url)
from tensorboard import default
from tensorboard import program
from argparse import ArgumentParser
# import socket
import time

usage = 'Usage: python tensorb [--logdir] [--host]'
argparser = ArgumentParser(usage=usage)
argparser.add_argument('--logdir', type=str, help='')
argparser.add_argument('--host', type=str, help='')
args = argparser.parse_args()

argv = [None, '--logdir', args.logdir, '--host', args.host]
#print(argv)
tb = program.TensorBoard(default.get_plugins(),
                         default.get_assets_zip_provider())
tb.configure(argv=argv)
tb.launch()
try:
    while True:
        time.sleep(10)
except KeyboardInterrupt:
    print('Tensorboard interrupted!')
def standard_tensorboard_wsgi(
    logdir,
    purge_orphaned_data,
    reload_interval,
    plugins,
    db_uri="",
    assets_zip_provider=None,
    path_prefix="",
    window_title="",
    max_reload_threads=None,
    flags=None):
  """Construct a TensorBoardWSGIApp with standard plugins and multiplexer.

  Args:
    logdir: The path to the directory containing events files.
    purge_orphaned_data: Whether to purge orphaned data.
    reload_interval: The interval at which the backend reloads more data in
        seconds.  Zero means load once at startup; negative means never load.
    plugins: A list of constructor functions for TBPlugin subclasses.
    db_uri: A String containing the URI of the SQL database for persisting
        data, or empty for memory-only mode.
    assets_zip_provider: See TBContext documentation for more information.
        If this value is not specified, this function will attempt to load
        the `tensorboard.default` module to use the default. This behavior
        might be removed in the future.
    path_prefix: A prefix of the path when app isn't served from root.
    window_title: A string specifying the the window title.
    max_reload_threads: The max number of threads that TensorBoard can use
        to reload runs. Not relevant for db mode. Each thread reloads one run
        at a time.
    flags: A dict of the runtime flags provided to the application, or None.
  Returns:
    The new TensorBoard WSGI application.
  """
  if assets_zip_provider is None:
    from tensorboard import default
    assets_zip_provider = default.get_assets_zip_provider()
  multiplexer = event_multiplexer.EventMultiplexer(
      size_guidance=DEFAULT_SIZE_GUIDANCE,
      tensor_size_guidance=tensor_size_guidance_from_flags(flags),
      purge_orphaned_data=purge_orphaned_data,
      max_reload_threads=max_reload_threads)
  db_module, db_connection_provider = get_database_info(db_uri)
  # In DB mode, always disable loading event files.
  if db_connection_provider:
    reload_interval = -1
  plugin_name_to_instance = {}
  context = base_plugin.TBContext(
      db_module=db_module,
      db_connection_provider=db_connection_provider,
      db_uri=db_uri,
      flags=flags,
      logdir=logdir,
      multiplexer=multiplexer,
      assets_zip_provider=assets_zip_provider,
      plugin_name_to_instance=plugin_name_to_instance,
      window_title=window_title)
  plugin_instances = [constructor(context) for constructor in plugins]
  for plugin_instance in plugin_instances:
    plugin_name_to_instance[plugin_instance.plugin_name] = plugin_instance
  return TensorBoardWSGIApp(
      logdir, plugin_instances, multiplexer, reload_interval, path_prefix)