diff --git a/tensorboard/uploader/formatters.py b/tensorboard/uploader/formatters.py index ba83d92dfb..0edf3b85ef 100644 --- a/tensorboard/uploader/formatters.py +++ b/tensorboard/uploader/formatters.py @@ -49,7 +49,7 @@ def format_experiment(self, experiment, experiment_url): class ReadableFormatter(BaseExperimentFormatter): """A formatter implementation that outputs human-readable text.""" - _NAME_COLUMN_WIDTH = 12 + _NAME_COLUMN_WIDTH = 20 def __init__(self): super(ReadableFormatter, self).__init__() @@ -66,6 +66,7 @@ def format_experiment(self, experiment, experiment_url): ("Runs", str(experiment.num_runs)), ("Tags", str(experiment.num_tags)), ("Scalars", str(experiment.num_scalars)), + ("Binary object bytes", str(experiment.total_blob_bytes)), ] for name, value in data: output.append( @@ -93,6 +94,7 @@ def format_experiment(self, experiment, experiment_url): ("runs", experiment.num_runs), ("tags", experiment.num_tags), ("scalars", experiment.num_scalars), + ("binary_object_bytes", experiment.total_blob_bytes), ] return json.dumps( collections.OrderedDict(data), indent=self._JSON_INDENT, diff --git a/tensorboard/uploader/formatters_test.py b/tensorboard/uploader/formatters_test.py index 7404b15d71..93515ff26c 100644 --- a/tensorboard/uploader/formatters_test.py +++ b/tensorboard/uploader/formatters_test.py @@ -35,6 +35,7 @@ def testReadableFormatterWithNonemptyNameAndDescription(self): num_runs=2, num_tags=4, num_scalars=60, + total_blob_bytes=1234, ) util.set_timestamp(experiment.create_time, 981173106) util.set_timestamp(experiment.update_time, 1015218367) @@ -43,14 +44,15 @@ def testReadableFormatterWithNonemptyNameAndDescription(self): output = formatter.format_experiment(experiment, experiment_url) expected_lines = [ "http://tensorboard.dev/deadbeef", - "\tName A name for the experiment", - "\tDescription A description for the experiment", - "\tId deadbeef", - "\tCreated 2001-02-03 04:05:06", - "\tUpdated 2002-03-04 05:06:07", - "\tRuns 2", - "\tTags 4", - "\tScalars 60", + "\tName A name for the experiment", + "\tDescription A description for the experiment", + "\tId deadbeef", + "\tCreated 2001-02-03 04:05:06", + "\tUpdated 2002-03-04 05:06:07", + "\tRuns 2", + "\tTags 4", + "\tScalars 60", + "\tBinary object bytes 1234", ] self.assertEqual(output.split("\n"), expected_lines) @@ -61,6 +63,7 @@ def testReadableFormatterWithEmptyNameAndDescription(self): num_runs=2, num_tags=4, num_scalars=60, + total_blob_bytes=1234, ) util.set_timestamp(experiment.create_time, 981173106) util.set_timestamp(experiment.update_time, 1015218367) @@ -69,14 +72,15 @@ def testReadableFormatterWithEmptyNameAndDescription(self): output = formatter.format_experiment(experiment, experiment_url) expected_lines = [ "http://tensorboard.dev/deadbeef", - "\tName [No Name]", - "\tDescription [No Description]", - "\tId deadbeef", - "\tCreated 2001-02-03 04:05:06", - "\tUpdated 2002-03-04 05:06:07", - "\tRuns 2", - "\tTags 4", - "\tScalars 60", + "\tName [No Name]", + "\tDescription [No Description]", + "\tId deadbeef", + "\tCreated 2001-02-03 04:05:06", + "\tUpdated 2002-03-04 05:06:07", + "\tRuns 2", + "\tTags 4", + "\tScalars 60", + "\tBinary object bytes 1234", ] self.assertEqual(output.split("\n"), expected_lines) @@ -87,6 +91,7 @@ def testJsonFormatterWithEmptyNameAndDescription(self): num_runs=2, num_tags=4, num_scalars=60, + total_blob_bytes=1234, ) util.set_timestamp(experiment.create_time, 981173106) util.set_timestamp(experiment.update_time, 1015218367) @@ -103,7 +108,8 @@ def testJsonFormatterWithEmptyNameAndDescription(self): ' "updated": "2002-03-04T05:06:07Z",', ' "runs": 2,', ' "tags": 4,', - ' "scalars": 60', + ' "scalars": 60,', + ' "binary_object_bytes": 1234', "}", ] self.assertEqual(output.split("\n"), expected_lines) diff --git a/tensorboard/uploader/uploader_main.py b/tensorboard/uploader/uploader_main.py index 17c87458db..e5bf8c38c9 100644 --- a/tensorboard/uploader/uploader_main.py +++ b/tensorboard/uploader/uploader_main.py @@ -352,9 +352,10 @@ def execute(self, server_info, channel): fieldmask = experiment_pb2.ExperimentMask( create_time=True, update_time=True, - num_scalars=True, num_runs=True, num_tags=True, + num_scalars=True, + total_blob_bytes=True, ) gen = exporter_lib.list_experiments(api_client, fieldmask=fieldmask) count = 0