Ejemplo n.º 1
0
    def test_zero_steps_schedule(self):
        # Get schedule function.
        initial_value = 10.
        end_value = 20.

        for num_steps in [-1, 0]:
            schedule_fn = self.variant(
                schedule.polynomial_schedule(init_value=initial_value,
                                             end_value=end_value,
                                             power=1,
                                             transition_steps=num_steps))
            for count in range(15):
                np.testing.assert_allclose(schedule_fn(count), initial_value)
Ejemplo n.º 2
0
 def test_linear(self):
     """Check linear schedule."""
     # Get schedule function.
     schedule_fn = self.variant(
         schedule.polynomial_schedule(init_value=10.,
                                      end_value=20.,
                                      power=1,
                                      transition_steps=10))
     # Test that generated values equal the expected schedule values.
     generated_vals = []
     for count in range(15):
         # Compute next value.
         generated_vals.append(schedule_fn(count))
     # Test output.
     expected_vals = np.array(list(range(10, 20)) + [20] * 5,
                              dtype=np.float32)
     np.testing.assert_allclose(expected_vals,
                                np.array(generated_vals),
                                atol=1e-3)
Ejemplo n.º 3
0
 def test_nonlinear(self):
     """Check non-linear (quadratic) schedule."""
     # Get schedule function.
     schedule_fn = self.variant(
         schedule.polynomial_schedule(init_value=25.,
                                      end_value=10.,
                                      power=2,
                                      transition_steps=10))
     # Test that generated values equal the expected schedule values.
     generated_vals = []
     for count in range(15):
         # Compute next value.
         generated_vals.append(schedule_fn(count))
     # Test output.
     expected_vals = np.array(
         [10. + 15. * (1. - n / 10)**2 for n in range(10)] + [10] * 5,
         dtype=np.float32)
     np.testing.assert_allclose(expected_vals,
                                np.array(generated_vals),
                                atol=1e-3)
Ejemplo n.º 4
0
 def test_with_decay_begin(self):
     """Check quadratic schedule with non-zero schedule begin."""
     # Get schedule function.
     schedule_fn = self.variant(
         schedule.polynomial_schedule(init_value=30.,
                                      end_value=10.,
                                      power=2,
                                      transition_steps=10,
                                      transition_begin=4))
     # Test that generated values equal the expected schedule values.
     generated_vals = []
     for count in range(20):
         # Compute next value.
         generated_vals.append(schedule_fn(count))
     # Test output.
     expected_vals = np.array(
         [30.] * 4 + [10. + 20. * (1. - n / 10)**2
                      for n in range(10)] + [10] * 6,
         dtype=np.float32)
     np.testing.assert_allclose(expected_vals,
                                np.array(generated_vals),
                                atol=1e-3)