예제 #1
0
def main(unused_argv=None):
    logdir = os.path.expanduser(FLAGS.logdir)
    event_file = os.path.expanduser(FLAGS.event_file)

    if FLAGS.debug:
        logging.set_verbosity(logging.DEBUG)
        logging.info('TensorBoard is in debug mode.')

    if FLAGS.inspect:
        logging.info(
            'Not bringing up TensorBoard, but inspecting event files.')
        efi.inspect(logdir, event_file, FLAGS.tag)
        return 0

    if not logdir:
        msg = ('A logdir must be specified. Run `tensorboard --help` for '
               'details and examples.')
        logging.error(msg)
        print(msg)
        return -1

    logging.info('Starting TensorBoard in directory %s', os.getcwd())
    path_to_run = server.ParseEventFilesSpec(logdir)
    logging.info('TensorBoard path_to_run is: %s', path_to_run)

    multiplexer = event_multiplexer.EventMultiplexer(
        size_guidance=server.TENSORBOARD_SIZE_GUIDANCE,
        purge_orphaned_data=FLAGS.purge_orphaned_data)
    server.StartMultiplexerReloadingThread(multiplexer, path_to_run,
                                           FLAGS.reload_interval)
    try:
        tb_server = server.BuildServer(multiplexer, FLAGS.host, FLAGS.port,
                                       logdir)
    except socket.error:
        if FLAGS.port == 0:
            msg = 'Unable to find any open ports.'
            logging.error(msg)
            print(msg)
            return -2
        else:
            msg = 'Tried to connect to port %d, but address is in use.' % FLAGS.port
            logging.error(msg)
            print(msg)
            return -3

    try:
        tag = resource_loader.load_resource('tensorboard/TAG').strip()
        logging.info('TensorBoard is tag: %s', tag)
    except IOError:
        logging.info('Unable to read TensorBoard tag')
        tag = ''

    status_bar.SetupStatusBarInsideGoogle('TensorBoard %s' % tag, FLAGS.port)
    print('Starting TensorBoard %s on port %d' % (tag, FLAGS.port))

    if FLAGS.host == "0.0.0.0":
        try:
            host = socket.gethostbyname(socket.gethostname())
            print('(You can navigate to http://%s:%d)' % (host, FLAGS.port))
        except socket.gaierror:
            pass
    else:
        print('(You can navigate to http://%s:%d)' % (FLAGS.host, FLAGS.port))

    tb_server.serve_forever()
예제 #2
0
 def testDoesNotExpandUserInGCSPath(self):
     logdir_string = 'gs://~/foo/path'
     expected = {'gs://~/foo/path': None}
     self.assertEqual(server.ParseEventFilesSpec(logdir_string), expected)
예제 #3
0
 def testDoesNotNormalizeGCSPath(self):
     logdir_string = 'gs://foo/./path//..'
     expected = {'gs://foo/./path//..': None}
     self.assertEqual(server.ParseEventFilesSpec(logdir_string), expected)
예제 #4
0
 def testAbsolutifies(self):
     logdir_string = 'lol/cat'
     expected = {os.path.realpath('lol/cat'): None}
     self.assertEqual(server.ParseEventFilesSpec(logdir_string), expected)
예제 #5
0
 def testRespectsGCSPath(self):
     logdir_string = 'gs://foo/path'
     expected = {'gs://foo/path': None}
     self.assertEqual(server.ParseEventFilesSpec(logdir_string), expected)
예제 #6
0
 def testNormalizesPaths(self):
     logdir_string = '/lol/.//cat/../cat'
     expected = {'/lol/cat': None}
     self.assertEqual(server.ParseEventFilesSpec(logdir_string), expected)
예제 #7
0
 def testMultipleDirectories(self):
     logdir_string = '/a,/b'
     expected = {'/a': None, '/b': None}
     self.assertEqual(server.ParseEventFilesSpec(logdir_string), expected)
예제 #8
0
 def testPathWithColonThatComesAfterASlash_isNotConsideredARunName(self):
     logdir_string = '/lol:/cat'
     expected = {'/lol:/cat': None}
     self.assertEqual(server.ParseEventFilesSpec(logdir_string), expected)
예제 #9
0
 def testRunName(self):
     logdir_string = 'lol:/cat'
     expected = {'/cat': 'lol'}
     self.assertEqual(server.ParseEventFilesSpec(logdir_string), expected)
예제 #10
0
 def testRunNameWithGCSPath(self):
     logdir_string = 'lol:gs://foo/path'
     expected = {'gs://foo/path': 'lol'}
     self.assertEqual(server.ParseEventFilesSpec(logdir_string), expected)