示例#1
0
 def test_phases_feed(self):
     score = tf.placeholder(tf.float32, [])
     loop = tools.Loop(None)
     loop.add_phase('phase_1',
                    done=True,
                    score=score,
                    summary='',
                    steps=1,
                    report_every=1,
                    log_every=None,
                    checkpoint_every=None,
                    feed={score: 1})
     loop.add_phase('phase_2',
                    done=True,
                    score=score,
                    summary='',
                    steps=3,
                    report_every=1,
                    log_every=None,
                    checkpoint_every=None,
                    feed={score: 2})
     loop.add_phase('phase_3',
                    done=True,
                    score=score,
                    summary='',
                    steps=2,
                    report_every=1,
                    log_every=None,
                    checkpoint_every=None,
                    feed={score: 3})
     with self.test_session() as sess:
         sess.run(tf.global_variables_initializer())
         scores = list(loop.run(sess, saver=None, max_step=15))
     self.assertAllEqual([1, 2, 2, 2, 3, 3, 1, 2, 2, 2, 3, 3, 1, 2, 2],
                         scores)
示例#2
0
 def test_not_done(self):
     step = tf.Variable(0, False, dtype=tf.int32, name='step')
     done = tf.equal((step + 1) % 2, 0)
     score = tf.cast(step, tf.float32)
     loop = tools.Loop(None, step)
     loop.add_phase('phase_1',
                    done,
                    score,
                    summary='',
                    steps=1,
                    report_every=3)
     # Score:  0 1 2 3 4 5 6 7 8
     # Done:     x   x   x   x
     # Report:     x     x     x
     with self.test_session() as sess:
         sess.run(tf.global_variables_initializer())
         scores = list(loop.run(sess, saver=None, max_step=9))
     self.assertAllEqual([1, 4, 7], scores)
示例#3
0
 def test_report_every_step(self):
     step = tf.Variable(0, False, dtype=tf.int32, name='step')
     loop = tools.Loop(None, step)
     loop.add_phase('phase_1',
                    done=True,
                    score=0,
                    summary='',
                    steps=1,
                    report_every=3)
     # Step:   0 1 2 3 4 5 6 7 8
     # Report:     x     x     x
     with self.test_session() as sess:
         sess.run(tf.global_variables_initializer())
         scores = loop.run(sess, saver=None, max_step=9)
         next(scores)
         self.assertEqual(3, sess.run(step))
         next(scores)
         self.assertEqual(6, sess.run(step))
         next(scores)
         self.assertEqual(9, sess.run(step))
示例#4
0
 def test_average_score_over_phases(self):
     loop = tools.Loop(None)
     loop.add_phase('phase_1',
                    done=True,
                    score=1,
                    summary='',
                    steps=1,
                    report_every=2)
     loop.add_phase('phase_2',
                    done=True,
                    score=2,
                    summary='',
                    steps=2,
                    report_every=5)
     # Score:    1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2
     # Report 1:       x           x           x
     # Report 2:               x             x
     with self.test_session() as sess:
         sess.run(tf.global_variables_initializer())
         scores = list(loop.run(sess, saver=None, max_step=17))
     self.assertAllEqual([1, 2, 1, 2, 1], scores)
示例#5
0
 def test_not_done_batch(self):
     step = tf.Variable(0, False, dtype=tf.int32, name='step')
     done = tf.equal([step % 3, step % 4], 0)
     score = tf.cast([step, step**2], tf.float32)
     loop = tools.Loop(None, step)
     loop.add_phase('phase_1',
                    done,
                    score,
                    summary='',
                    steps=1,
                    report_every=8)
     # Step:    0  2  4  6
     # Score 1: 0  2  4  6
     # Done 1:  x        x
     # Score 2: 0  4 16 32
     # Done 2:  x     x
     with self.test_session() as sess:
         sess.run(tf.global_variables_initializer())
         scores = list(loop.run(sess, saver=None, max_step=8))
         self.assertEqual(8, sess.run(step))
     self.assertAllEqual([(0 + 0 + 16 + 6) / 4], scores)