def __init__(self, *args, **kwargs): super(CustomScalarsPluginTest, self).__init__(*args, **kwargs) self.logdir = os.path.join(self.get_temp_dir(), 'logdir') os.makedirs(self.logdir) self.logdir_layout = layout_pb2.Layout(category=[ layout_pb2.Category(title='cross entropy', chart=[ layout_pb2.Chart(title='cross entropy', tag=[r'cross entropy']), ], closed=True) ]) self.foo_layout = layout_pb2.Layout(category=[ layout_pb2.Category( title='mean biases', chart=[ layout_pb2.Chart( title='mean layer biases', tag=[r'mean/layer0/biases', r'mean/layer1/biases']) ]), layout_pb2.Category(title='std weights', chart=[ layout_pb2.Chart( title='stddev layer weights', tag=[r'stddev/layer\d+/weights']) ]), # A category with this name is also present in a layout for a # different run (the logdir run) layout_pb2.Category(title='cross entropy', chart=[ layout_pb2.Chart(title='cross entropy 2', tag=[r'cross entropy 2']), ]) ]) # Generate test data. with tf.summary.FileWriter(os.path.join(self.logdir, 'foo')) as writer: writer.add_summary(summary.pb(self.foo_layout)) for step in range(4): writer.add_summary(scalar_summary.pb('squares', step * step), step) with tf.summary.FileWriter(os.path.join(self.logdir, 'bar')) as writer: for step in range(3): writer.add_summary(scalar_summary.pb('increments', step + 1), step) # The '.' run lacks scalar data but has a layout. with tf.summary.FileWriter(self.logdir) as writer: writer.add_summary(summary.pb(self.logdir_layout)) self.plugin = self.createPlugin(self.logdir)
def testIsNotActiveDueToNoScalarsData(self): # Generate a directory with a layout but no scalars data. directory = os.path.join(self.logdir, "no_scalars") with test_util.FileWriterCache.get(directory) as writer: writer.add_summary(summary.pb(self.logdir_layout)) local_plugin = self.createPlugin(directory) self.assertFalse(local_plugin.is_active())
def testIsNotActiveDueToNoScalarsData(self): # Generate a directory with a layout but no scalars data. directory = os.path.join(self.logdir, 'no_scalars') with tf.summary.FileWriter(directory) as writer: writer.add_summary(summary.pb(self.logdir_layout)) local_plugin = self.createPlugin(directory) self.assertFalse(local_plugin.is_active())
def create_layout_summary(): return cs_summary.pb( layout_pb2.Layout(category=[ layout_pb2.Category( title="losses", chart=[ layout_pb2.Chart( title="losses", multiline=layout_pb2.MultilineChartContent( tag=[r"loss(?!.*margin.*)"], ), ), layout_pb2.Chart( title="baz", margin=layout_pb2.MarginChartContent(series=[ layout_pb2.MarginChartContent.Series( value="loss/baz", lower="loss/baz_lower", upper="loss/baz_upper", ), ], ), ), ], ), layout_pb2.Category( title="trig functions", chart=[ layout_pb2.Chart( title="wave trig functions", multiline=layout_pb2.MultilineChartContent(tag=[ r"trigFunctions/cosine", r"trigFunctions/sine", ], ), ), # The range of tangent is different. Give it its own chart. layout_pb2.Chart( title="tan", multiline=layout_pb2.MultilineChartContent( tag=[r"trigFunctions/tangent"], ), ), ], # This category we care less about. Make it initially closed. closed=True, ), ]))
def __init__(self, *args, **kwargs): super(CustomScalarsPluginTest, self).__init__(*args, **kwargs) self.logdir = os.path.join(self.get_temp_dir(), "logdir") os.makedirs(self.logdir) self.logdir_layout = layout_pb2.Layout(category=[ layout_pb2.Category( title="cross entropy", chart=[ layout_pb2.Chart( title="cross entropy", multiline=layout_pb2.MultilineChartContent( tag=[r"cross entropy"], ), ), ], closed=True, ) ]) self.foo_layout = layout_pb2.Layout(category=[ layout_pb2.Category( title="mean biases", chart=[ layout_pb2.Chart( title="mean layer biases", multiline=layout_pb2.MultilineChartContent(tag=[ r"mean/layer0/biases", r"mean/layer1/biases", ], ), ), ], ), layout_pb2.Category( title="std weights", chart=[ layout_pb2.Chart( title="stddev layer weights", multiline=layout_pb2.MultilineChartContent( tag=[r"stddev/layer\d+/weights"], ), ), ], ), # A category with this name is also present in a layout for a # different run (the logdir run) and also contains a duplicate chart layout_pb2.Category( title="cross entropy", chart=[ layout_pb2.Chart( title="cross entropy margin chart", margin=layout_pb2.MarginChartContent(series=[ layout_pb2.MarginChartContent.Series( value="cross entropy", lower="cross entropy lower", upper="cross entropy upper", ), ], ), ), layout_pb2.Chart( title="cross entropy", multiline=layout_pb2.MultilineChartContent( tag=[r"cross entropy"], ), ), ], ), ]) # Generate test data. with test_util.FileWriterCache.get(os.path.join(self.logdir, "foo")) as writer: writer.add_summary( test_util.ensure_tb_summary_proto(summary.pb(self.foo_layout))) for step in range(4): writer.add_summary( test_util.ensure_tb_summary_proto( scalar_summary.pb("squares", step * step)), step, ) with test_util.FileWriterCache.get(os.path.join(self.logdir, "bar")) as writer: for step in range(3): writer.add_summary( test_util.ensure_tb_summary_proto( scalar_summary.pb("increments", step + 1)), step, ) # The '.' run lacks scalar data but has a layout. with test_util.FileWriterCache.get(self.logdir) as writer: writer.add_summary( test_util.ensure_tb_summary_proto( summary.pb(self.logdir_layout))) self.plugin = self.createPlugin(self.logdir)
def __init__(self, *args, **kwargs): super(CustomScalarsPluginTest, self).__init__(*args, **kwargs) self.logdir = os.path.join(self.get_temp_dir(), 'logdir') os.makedirs(self.logdir) self.logdir_layout = layout_pb2.Layout(category=[ layout_pb2.Category( title='cross entropy', chart=[ layout_pb2.Chart( title='cross entropy', multiline=layout_pb2.MultilineChartContent( tag=[r'cross entropy'], )), ], closed=True) ]) self.foo_layout = layout_pb2.Layout(category=[ layout_pb2.Category( title='mean biases', chart=[ layout_pb2.Chart( title='mean layer biases', multiline=layout_pb2.MultilineChartContent(tag=[ r'mean/layer0/biases', r'mean/layer1/biases' ], )), ]), layout_pb2.Category( title='std weights', chart=[ layout_pb2.Chart( title='stddev layer weights', multiline=layout_pb2.MultilineChartContent( tag=[r'stddev/layer\d+/weights'], )), ]), # A category with this name is also present in a layout for a # different run (the logdir run) and also contains a duplicate chart layout_pb2.Category( title='cross entropy', chart=[ layout_pb2.Chart( title='cross entropy margin chart', margin=layout_pb2.MarginChartContent(series=[ layout_pb2.MarginChartContent.Series( value='cross entropy', lower='cross entropy lower', upper='cross entropy upper'), ], )), layout_pb2.Chart( title='cross entropy', multiline=layout_pb2.MultilineChartContent( tag=[r'cross entropy'], )), ]), ]) # Generate test data. with test_util.FileWriterCache.get(os.path.join(self.logdir, 'foo')) as writer: writer.add_summary(summary.pb(self.foo_layout)) for step in range(4): writer.add_summary(scalar_summary.pb('squares', step * step), step) with test_util.FileWriterCache.get(os.path.join(self.logdir, 'bar')) as writer: for step in range(3): writer.add_summary(scalar_summary.pb('increments', step + 1), step) # The '.' run lacks scalar data but has a layout. with test_util.FileWriterCache.get(self.logdir) as writer: writer.add_summary(summary.pb(self.logdir_layout)) self.plugin = self.createPlugin(self.logdir)
def __init__(self, *args, **kwargs): super(CustomScalarsPluginTest, self).__init__(*args, **kwargs) self.logdir = os.path.join(self.get_temp_dir(), 'logdir') os.makedirs(self.logdir) self.logdir_layout = layout_pb2.Layout( category=[ layout_pb2.Category( title='cross entropy', chart=[ layout_pb2.Chart( title='cross entropy', multiline=layout_pb2.MultilineChartContent( tag=[r'cross entropy'], )), ], closed=True) ] ) self.foo_layout = layout_pb2.Layout( category=[ layout_pb2.Category( title='mean biases', chart=[ layout_pb2.Chart( title='mean layer biases', multiline=layout_pb2.MultilineChartContent( tag=[r'mean/layer0/biases', r'mean/layer1/biases'], )), ] ), layout_pb2.Category( title='std weights', chart=[ layout_pb2.Chart( title='stddev layer weights', multiline=layout_pb2.MultilineChartContent( tag=[r'stddev/layer\d+/weights'], )), ] ), # A category with this name is also present in a layout for a # different run (the logdir run) layout_pb2.Category( title='cross entropy', chart=[ layout_pb2.Chart( title='cross entropy margin chart', margin=layout_pb2.MarginChartContent( series=[ layout_pb2.MarginChartContent.Series( value='cross entropy', lower='cross entropy lower', upper='cross entropy upper'), ], )), ] ), ] ) # Generate test data. with tf.summary.FileWriter(os.path.join(self.logdir, 'foo')) as writer: writer.add_summary(summary.pb(self.foo_layout)) for step in range(4): writer.add_summary(scalar_summary.pb('squares', step * step), step) with tf.summary.FileWriter(os.path.join(self.logdir, 'bar')) as writer: for step in range(3): writer.add_summary(scalar_summary.pb('increments', step + 1), step) # The '.' run lacks scalar data but has a layout. with tf.summary.FileWriter(self.logdir) as writer: writer.add_summary(summary.pb(self.logdir_layout)) self.plugin = self.createPlugin(self.logdir)