def f():
   with writer.as_default():
     with summary_ops.record_if(record_fn):
       return [
           summary_ops.write('tag', 1, step=step),
           summary_ops.write('tag', 1, step=step),
           summary_ops.write('tag', 1, step=step)]
 def f():
   with writer.as_default():
     # Use assertAllEqual instead of assertTrue since it works in a defun.
     self.assertAllEqual(summary_ops.write('default', 1, step=0), True)
     with summary_ops.record_if(True):
       self.assertAllEqual(summary_ops.write('set_on', 1, step=0), True)
     with summary_ops.record_if(False):
       self.assertAllEqual(summary_ops.write('set_off', 1, step=0), False)
 def testWrite_ndarray(self):
   logdir = self.get_temp_dir()
   with context.eager_mode():
     with summary_ops.create_file_writer_v2(logdir).as_default():
       summary_ops.write('tag', [[1, 2], [3, 4]], step=12)
   events = events_from_logdir(logdir)
   value = events[1].summary.value[0]
   self.assertAllEqual([[1, 2], [3, 4]], to_numpy(value))
 def testWrite_stringTensor(self):
   logdir = self.get_temp_dir()
   with context.eager_mode():
     with summary_ops.create_file_writer_v2(logdir).as_default():
       summary_ops.write('tag', [b'foo', b'bar'], step=12)
   events = events_from_logdir(logdir)
   value = events[1].summary.value[0]
   self.assertAllEqual([b'foo', b'bar'], to_numpy(value))
 def testWrite_tensor(self):
   logdir = self.get_temp_dir()
   with context.eager_mode():
     t = constant_op.constant([[1, 2], [3, 4]])
     with summary_ops.create_file_writer_v2(logdir).as_default():
       summary_ops.write('tag', t, step=12)
     expected = t.numpy()
   events = events_from_logdir(logdir)
   value = events[1].summary.value[0]
   self.assertAllEqual(expected, to_numpy(value))
 def testWrite_recordIf_constant(self):
   logdir = self.get_temp_dir()
   with context.eager_mode():
     with summary_ops.create_file_writer_v2(logdir).as_default():
       self.assertTrue(summary_ops.write('default', 1, step=0))
       with summary_ops.record_if(True):
         self.assertTrue(summary_ops.write('set_on', 1, step=0))
       with summary_ops.record_if(False):
         self.assertFalse(summary_ops.write('set_off', 1, step=0))
   events = events_from_logdir(logdir)
   self.assertEqual(3, len(events))
   self.assertEqual('default', events[1].summary.value[0].tag)
   self.assertEqual('set_on', events[2].summary.value[0].tag)
 def testMaxQueue(self):
   logdir = self.get_temp_dir()
   with context.eager_mode():
     with summary_ops.create_file_writer_v2(
         logdir, max_queue=1, flush_millis=999999).as_default():
       get_total = lambda: len(events_from_logdir(logdir))
       # Note: First tf.Event is always file_version.
       self.assertEqual(1, get_total())
       summary_ops.write('tag', 1, step=0)
       self.assertEqual(1, get_total())
       # Should flush after second summary since max_queue = 1
       summary_ops.write('tag', 1, step=0)
       self.assertEqual(3, get_total())
 def testWrite_gpuDeviceContext(self):
   logdir = self.get_temp_dir()
   with context.eager_mode():
     with summary_ops.create_file_writer(logdir).as_default():
       with ops.device('/GPU:0'):
         value = constant_op.constant(42.0)
         step = constant_op.constant(12, dtype=dtypes.int64)
         summary_ops.write('tag', value, step=step).numpy()
   empty_metadata = summary_pb2.SummaryMetadata()
   events = events_from_logdir(logdir)
   self.assertEqual(2, len(events))
   self.assertEqual(12, events[1].step)
   self.assertEqual(42, to_numpy(events[1].summary.value[0]))
   self.assertEqual(empty_metadata, events[1].summary.value[0].metadata)
  def testNoSharing(self):
    # Two writers with the same logdir should not share state.
    logdir = self.get_temp_dir()
    with context.eager_mode():
      writer1 = summary_ops.create_file_writer_v2(logdir)
      with writer1.as_default():
        summary_ops.write('tag', 1, step=1)
      event_files = gfile.Glob(os.path.join(logdir, '*'))
      self.assertEqual(1, len(event_files))
      file1 = event_files[0]

      writer2 = summary_ops.create_file_writer_v2(logdir)
      with writer2.as_default():
        summary_ops.write('tag', 1, step=2)
      event_files = gfile.Glob(os.path.join(logdir, '*'))
      self.assertEqual(2, len(event_files))
      event_files.remove(file1)
      file2 = event_files[0]

      # Extra writes to ensure interleaved usage works.
      with writer1.as_default():
        summary_ops.write('tag', 1, step=1)
      with writer2.as_default():
        summary_ops.write('tag', 1, step=2)

    events = iter(events_from_file(file1))
    self.assertEqual('brain.Event:2', next(events).file_version)
    self.assertEqual(1, next(events).step)
    self.assertEqual(1, next(events).step)
    self.assertRaises(StopIteration, lambda: next(events))
    events = iter(events_from_file(file2))
    self.assertEqual('brain.Event:2', next(events).file_version)
    self.assertEqual(2, next(events).step)
    self.assertEqual(2, next(events).step)
    self.assertRaises(StopIteration, lambda: next(events))
 def testWrite_usingDefaultStepVariable_fromLegacyGraph(self):
   logdir = self.get_temp_dir()
   try:
     with context.graph_mode():
       writer = summary_ops.create_file_writer(logdir)
       mystep = variables.Variable(0, dtype=dtypes.int64)
       summary_ops.set_step(mystep)
       with writer.as_default():
         write_op = summary_ops.write('tag', 1.0)
       first_assign_op = mystep.assign_add(1)
       second_assign_op = mystep.assign(10)
       with self.cached_session() as sess:
         sess.run(writer.init())
         sess.run(mystep.initializer)
         sess.run(write_op)
         sess.run(first_assign_op)
         sess.run(write_op)
         sess.run(second_assign_op)
         sess.run(write_op)
         sess.run(writer.flush())
     events = events_from_logdir(logdir)
     self.assertEqual(4, len(events))
     self.assertEqual(0, events[1].step)
     self.assertEqual(1, events[2].step)
     self.assertEqual(10, events[3].step)
   finally:
     # Reset to default state for other tests.
     summary_ops.set_step(None)
 def testCreate_withInitAndClose(self):
   logdir = self.get_temp_dir()
   with context.eager_mode():
     writer = summary_ops.create_file_writer_v2(
         logdir, max_queue=1000, flush_millis=1000000)
     get_total = lambda: len(events_from_logdir(logdir))
     self.assertEqual(1, get_total())  # file_version Event
     # Calling init() again while writer is open has no effect
     writer.init()
     self.assertEqual(1, get_total())
     with writer.as_default():
       summary_ops.write('tag', 1, step=0)
       self.assertEqual(1, get_total())
       # Calling .close() should do an implicit flush
       writer.close()
       self.assertEqual(2, get_total())
 def testWriterFlush(self):
   logdir = self.get_temp_dir()
   get_total = lambda: len(events_from_logdir(logdir))
   with context.eager_mode():
     writer = summary_ops.create_file_writer_v2(
         logdir, max_queue=1000, flush_millis=1000000)
     self.assertEqual(1, get_total())  # file_version Event
     with writer.as_default():
       summary_ops.write('tag', 1, step=0)
       self.assertEqual(1, get_total())
       writer.flush()
       self.assertEqual(2, get_total())
       summary_ops.write('tag', 1, step=0)
       self.assertEqual(2, get_total())
     # Exiting the "as_default()" should do an implicit flush
     self.assertEqual(3, get_total())
 def testWrite_recordIf_callable(self):
   logdir = self.get_temp_dir()
   with context.eager_mode():
     step = variables.Variable(-1, dtype=dtypes.int64)
     def record_fn():
       step.assign_add(1)
       return int(step % 2) == 0
     with summary_ops.create_file_writer_v2(logdir).as_default():
       with summary_ops.record_if(record_fn):
         self.assertTrue(summary_ops.write('tag', 1, step=step))
         self.assertFalse(summary_ops.write('tag', 1, step=step))
         self.assertTrue(summary_ops.write('tag', 1, step=step))
         self.assertFalse(summary_ops.write('tag', 1, step=step))
         self.assertTrue(summary_ops.write('tag', 1, step=step))
   events = events_from_logdir(logdir)
   self.assertEqual(4, len(events))
   self.assertEqual(0, events[1].step)
   self.assertEqual(2, events[2].step)
   self.assertEqual(4, events[3].step)
Example #14
0
 def define_ops():
   result = []
   # TF 2.0 summary ops
   result.append(summary_ops.write('write', 1, step=0))
   result.append(summary_ops.write_raw_pb(b'', step=0, name='raw_pb'))
   # TF 1.x tf.contrib.summary ops
   result.append(summary_ops.generic('tensor', 1, step=1))
   result.append(summary_ops.scalar('scalar', 2.0, step=1))
   result.append(summary_ops.histogram('histogram', [1.0], step=1))
   result.append(summary_ops.image('image', [[[[1.0]]]], step=1))
   result.append(summary_ops.audio('audio', [[1.0]], 1.0, 1, step=1))
   return result
 def testWrite(self):
   logdir = self.get_temp_dir()
   with context.eager_mode():
     with summary_ops.create_file_writer_v2(logdir).as_default():
       output = summary_ops.write('tag', 42, step=12)
       self.assertTrue(output.numpy())
   events = events_from_logdir(logdir)
   self.assertEqual(2, len(events))
   self.assertEqual(12, events[1].step)
   value = events[1].summary.value[0]
   self.assertEqual('tag', value.tag)
   self.assertEqual(42, to_numpy(value))
 def testWrite_metadata(self):
   logdir = self.get_temp_dir()
   metadata = summary_pb2.SummaryMetadata()
   metadata.plugin_data.plugin_name = 'foo'
   with context.eager_mode():
     with summary_ops.create_file_writer_v2(logdir).as_default():
       summary_ops.write('obj', 0, 0, metadata=metadata)
       summary_ops.write('bytes', 0, 0, metadata=metadata.SerializeToString())
       m = constant_op.constant(metadata.SerializeToString())
       summary_ops.write('string_tensor', 0, 0, metadata=m)
   events = events_from_logdir(logdir)
   self.assertEqual(4, len(events))
   self.assertEqual(metadata, events[1].summary.value[0].metadata)
   self.assertEqual(metadata, events[2].summary.value[0].metadata)
   self.assertEqual(metadata, events[3].summary.value[0].metadata)
 def testWrite_usingDefaultStep(self):
   logdir = self.get_temp_dir()
   try:
     with context.eager_mode():
       with summary_ops.create_file_writer(logdir).as_default():
         summary_ops.set_step(1)
         summary_ops.write('tag', 1.0)
         summary_ops.set_step(2)
         summary_ops.write('tag', 1.0)
         mystep = variables.Variable(10, dtype=dtypes.int64)
         summary_ops.set_step(mystep)
         summary_ops.write('tag', 1.0)
         mystep.assign_add(1)
         summary_ops.write('tag', 1.0)
     events = events_from_logdir(logdir)
     self.assertEqual(5, len(events))
     self.assertEqual(1, events[1].step)
     self.assertEqual(2, events[2].step)
     self.assertEqual(10, events[3].step)
     self.assertEqual(11, events[4].step)
   finally:
     # Reset to default state for other tests.
     summary_ops.set_step(None)
 def testFlushFunction(self):
   logdir = self.get_temp_dir()
   with context.eager_mode():
     writer = summary_ops.create_file_writer_v2(
         logdir, max_queue=999999, flush_millis=999999)
     with writer.as_default():
       get_total = lambda: len(events_from_logdir(logdir))
       # Note: First tf.Event is always file_version.
       self.assertEqual(1, get_total())
       summary_ops.write('tag', 1, step=0)
       summary_ops.write('tag', 1, step=0)
       self.assertEqual(1, get_total())
       summary_ops.flush()
       self.assertEqual(3, get_total())
       # Test "writer" parameter
       summary_ops.write('tag', 1, step=0)
       self.assertEqual(3, get_total())
       summary_ops.flush(writer=writer)
       self.assertEqual(4, get_total())
       summary_ops.write('tag', 1, step=0)
       self.assertEqual(4, get_total())
       summary_ops.flush(writer=writer._resource)  # pylint:disable=protected-access
       self.assertEqual(5, get_total())
 def testWrite_usingDefaultStepConstant_fromLegacyGraph(self):
   logdir = self.get_temp_dir()
   try:
     with context.graph_mode():
       writer = summary_ops.create_file_writer(logdir)
       summary_ops.set_step(1)
       with writer.as_default():
         write_op = summary_ops.write('tag', 1.0)
       summary_ops.set_step(2)
       with self.cached_session() as sess:
         sess.run(writer.init())
         sess.run(write_op)
         sess.run(write_op)
         sess.run(writer.flush())
     events = events_from_logdir(logdir)
     self.assertEqual(3, len(events))
     self.assertEqual(1, events[1].step)
     # The step value will still be 1 because the value was captured at the
     # time the graph was constructed.
     self.assertEqual(1, events[2].step)
   finally:
     # Reset to default state for other tests.
     summary_ops.set_step(None)
Example #20
0
 def testEagerMemory(self):
   logdir = self.get_temp_dir()
   with summary_ops.create_file_writer_v2(logdir).as_default():
     summary_ops.write('tag', 1, step=0)
 def f(step):
   with writer.as_default():
     with summary_ops.record_if(math_ops.equal(step % 2, 0)):
       return summary_ops.write('tag', 1, step=step)
Example #22
0
 def run_fn():
     """Function executed for each replica."""
     with summary_writer.as_default():
         replica_id = ds_context.get_replica_context(
         ).replica_id_in_sync_group
         return summary_ops.write("a", replica_id)
Example #23
0
 def f(t):
   with summary_ops.create_file_writer(logdir).as_default():
     summary_ops.write('tag', t, step=12)
 def f(t):
   with writer.as_default():
     summary_ops.write('tag', t, step=12)
 def f():
     with summary_ops.create_file_writer(logdir).as_default():
         return summary_ops.write('tag', 42, step=12)
 def f2():
   if not hasattr(f2, 'writer'):
     f2.writer = summary_ops.create_file_writer_v2(logdir)
   with f2.writer.as_default():
     summary_ops.write('tag', 1, step=2)
 def f():
   with writer.as_default():
     summary_ops.write('tag', 1.0)
Example #28
0
 def f(step):
   with writer.as_default():
     with summary_ops.record_if(math_ops.equal(step % 2, 0)):
       return summary_ops.write('tag', 1, step=step)
 def testWrite_noStep(self):
   logdir = self.get_temp_dir()
   with summary_ops.create_file_writer(logdir).as_default():
     with self.assertRaisesRegex(ValueError, 'No step set'):
       summary_ops.write('tag', 42)
 def f(step):
     with summary_ops.create_file_writer(logdir).as_default():
         with summary_ops.record_if(math_ops.equal(step % 2, 0)):
             return summary_ops.write('tag', 1, step=step)
Example #31
0
 def testWrite_noStep(self):
   logdir = self.get_temp_dir()
   with summary_ops.create_file_writer(logdir).as_default():
     with self.assertRaisesRegex(ValueError, 'No step set'):
       summary_ops.write('tag', 42)
Example #32
0
 def f():
   with writer.as_default():
     return summary_ops.write('tag', 42, step=12)
 def f():
   output = summary_ops.write('tag', 42, step=12, name='anonymous')
   self.assertTrue(output.name.startswith('anonymous'))
Example #34
0
 def f2():
   if not hasattr(f2, 'writer'):
     f2.writer = summary_ops.create_file_writer_v2(logdir)
   with f2.writer.as_default():
     summary_ops.write('tag', 1, step=2)
Example #35
0
 def f(t):
   with writer.as_default():
     summary_ops.write('tag', t, step=12)
 def f():
   with writer.as_default():
     return summary_ops.write('tag', 42, step=12)
Example #37
0
 def f():
   output = summary_ops.write('tag', 42, step=12, name='anonymous')
   self.assertTrue(output.name.startswith('anonymous'))
Example #38
0
 def f():
   with writer.as_default():
     summary_ops.write('tag', 1.0)
Example #39
0
 def testWrite_noStep_okayIfAlsoNoDefaultWriter(self):
   # Use assertAllEqual instead of assertFalse since it works in a defun.
   self.assertAllEqual(False, summary_ops.write('tag', 42))
 def testNoMemoryLeak_eagerMode(self):
   logdir = self.get_temp_dir()
   with summary_ops.create_file_writer_v2(logdir).as_default():
     summary_ops.write('tag', 1, step=0)
 def testWrite_noStep_okayIfAlsoNoDefaultWriter(self):
   # Use assertAllEqual instead of assertFalse since it works in a defun.
   self.assertAllEqual(False, summary_ops.write('tag', 42))
 def run_fn():
   """Function executed for each replica."""
   with summary_writer.as_default():
     replica_id = ds_context.get_replica_context().replica_id_in_sync_group
     return summary_ops.write("a", replica_id)
 def testWrite_noDefaultWriter(self):
     with context.eager_mode():
         self.assertFalse(summary_ops.write('tag', 42, step=0))