def test_step_counter_every_n_secs(self):
    with tf.Graph().as_default() as g, tf.Session() as sess:
      global_step = tf.contrib.framework.get_or_create_global_step()
      train_op = tf.assign_add(global_step, 1)
      summary_writer = testing.FakeSummaryWriter(self.log_dir, g)
      hook = tf.train.StepCounterHook(
          summary_writer=summary_writer, every_n_steps=None, every_n_secs=0.1)

      hook.begin()
      sess.run(tf.global_variables_initializer())
      mon_sess = monitored_session._HookedSession(sess, [hook])
      mon_sess.run(train_op)
      time.sleep(0.2)
      mon_sess.run(train_op)
      time.sleep(0.2)
      mon_sess.run(train_op)
      hook.end(sess)

      summary_writer.assert_summaries(
          test_case=self,
          expected_logdir=self.log_dir,
          expected_graph=g,
          expected_summaries={})
      self.assertTrue(summary_writer.summaries, 'No summaries were created.')
      self.assertItemsEqual([2, 3], summary_writer.summaries.keys())
      for summary in summary_writer.summaries.values():
        summary_value = summary[0].value[0]
        self.assertEqual('global_step/sec', summary_value.tag)
        self.assertGreater(summary_value.simple_value, 0)
Ejemplo n.º 2
0
    def test_global_step_name(self):
        with tf.Graph().as_default() as g, tf.Session() as sess:
            with tf.variable_scope('bar'):
                foo_step = tf.get_variable('foo',
                                           initializer=0,
                                           trainable=False,
                                           collections=[
                                               tf.GraphKeys.GLOBAL_STEP,
                                               tf.GraphKeys.GLOBAL_VARIABLES
                                           ])
            train_op = tf.assign_add(foo_step, 1)
            summary_writer = testing.FakeSummaryWriter(self.log_dir, g)
            hook = tf.train.StepCounterHook(summary_writer=summary_writer,
                                            every_n_steps=1,
                                            every_n_secs=None)

            hook.begin()
            sess.run(tf.global_variables_initializer())
            mon_sess = monitored_session._HookedSession(sess, [hook])
            mon_sess.run(train_op)
            mon_sess.run(train_op)
            hook.end(sess)

            summary_writer.assert_summaries(test_case=self,
                                            expected_logdir=self.log_dir,
                                            expected_graph=g,
                                            expected_summaries={})
            self.assertTrue(summary_writer.summaries,
                            'No summaries were created.')
            self.assertItemsEqual([2], summary_writer.summaries.keys())
            summary_value = summary_writer.summaries[2][0].value[0]
            self.assertEqual('bar/foo/sec', summary_value.tag)
    def setUp(self):
        tf.test.TestCase.setUp(self)

        self.log_dir = 'log/dir'
        self.summary_writer = testing.FakeSummaryWriter(self.log_dir)

        var = tf.Variable(0.0)
        tensor = tf.assign_add(var, 1.0)
        self.summary_op = tf.summary.scalar('my_summary', tensor)

        global_step = tf.contrib.framework.get_or_create_global_step()
        self.train_op = tf.assign_add(global_step, 1)
Ejemplo n.º 4
0
 def test_summary_saver(self):
   with ops.Graph().as_default() as g, self.test_session(g):
     log_dir = 'log/dir'
     summary_writer = testing.FakeSummaryWriter(log_dir, g)
     var = variables.Variable(0.0)
     var.initializer.run()
     tensor = state_ops.assign_add(var, 1.0)
     summary_op = summary.scalar('my_summary', tensor)
     self._run_monitor(
         learn.monitors.SummarySaver(
             summary_op=summary_op,
             save_steps=8,
             summary_writer=summary_writer),
         num_epochs=3,
         num_steps_per_epoch=10)
     summary_writer.assert_summaries(
         test_case=self,
         expected_logdir=log_dir,
         expected_graph=g,
         expected_summaries={
             0: {
                 'my_summary': 1.0
             },
             1: {
                 'my_summary': 2.0
             },
             9: {
                 'my_summary': 3.0
             },
             17: {
                 'my_summary': 4.0
             },
             25: {
                 'my_summary': 5.0
             },
             29: {
                 'my_summary': 6.0
             },
         })
 def test_step_counter_every_n_steps(self):
     with tf.Graph().as_default() as g, tf.Session() as sess:
         global_step = tf.contrib.framework.get_or_create_global_step()
         train_op = tf.assign_add(global_step, 1)
         summary_writer = testing.FakeSummaryWriter(self.log_dir, g)
         hook = tf.train.StepCounterHook(summary_writer=summary_writer,
                                         every_n_steps=10)
         hook.begin()
         sess.run(tf.initialize_all_variables())
         mon_sess = monitored_session._HookedSession(sess, [hook])
         for _ in range(30):
             time.sleep(0.01)
             mon_sess.run(train_op)
         hook.end(sess)
         summary_writer.assert_summaries(test_case=self,
                                         expected_logdir=self.log_dir,
                                         expected_graph=g,
                                         expected_summaries={})
         self.assertItemsEqual([11, 21], summary_writer.summaries.keys())
         for step in [11, 21]:
             summary_value = summary_writer.summaries[step][0].value[0]
             self.assertEqual('global_step/sec', summary_value.tag)
             self.assertGreater(summary_value.simple_value, 0)
 def test_step_counter(self):
     with tf.Graph().as_default() as g, tf.Session() as sess:
         global_step = tf.contrib.framework.get_or_create_global_step()
         train_op = tf.assign_add(global_step, 1)
         summary_writer = testing.FakeSummaryWriter(self.log_dir, g)
         hook = basic_session_run_hooks.StepCounterHook(
             summary_writer=summary_writer, every_n_steps=10)
         hook.begin()
         sess.run(tf.initialize_all_variables())
         mon_sess = monitored_session._HookedSession(sess, [hook])
         for _ in range(30):
             time.sleep(0.01)
             mon_sess.run(train_op)
         hook.end(sess)
         summary_writer.assert_summaries(test_case=self,
                                         expected_logdir=self.log_dir,
                                         expected_graph=g,
                                         expected_summaries={})
         for step in [11, 21]:
             summary_value = summary_writer.summaries[step][0].value[0]
             self.assertTrue(summary_value.tag, 'global_step/sec')
             # check at least 10 steps per sec is recorded.
             self.assertGreater(summary_value.simple_value, 10)
 def test_summary_saver(self):
     with tf.Graph().as_default() as g, tf.Session() as sess:
         log_dir = 'log/dir'
         summary_writer = testing.FakeSummaryWriter(log_dir, g)
         var = tf.Variable(0.0)
         tensor = tf.assign_add(var, 1.0)
         summary_op = tf.scalar_summary('my_summary', tensor)
         global_step = tf.contrib.framework.get_or_create_global_step()
         train_op = tf.assign_add(global_step, 1)
         hook = basic_session_run_hooks.SummarySaverHook(
             summary_op=summary_op,
             save_steps=8,
             summary_writer=summary_writer)
         hook.begin()
         sess.run(tf.initialize_all_variables())
         mon_sess = monitored_session._HookedSession(sess, [hook])
         for i in range(30):
             _ = i
             mon_sess.run(train_op)
         hook.end(sess)
         summary_writer.assert_summaries(test_case=self,
                                         expected_logdir=log_dir,
                                         expected_graph=g,
                                         expected_summaries={
                                             1: {
                                                 'my_summary': 1.0
                                             },
                                             9: {
                                                 'my_summary': 2.0
                                             },
                                             17: {
                                                 'my_summary': 3.0
                                             },
                                             25: {
                                                 'my_summary': 4.0
                                             },
                                         })