def setUp(self): steps = 2 phases = [ Phase(lr=linspace(1, 1, steps)), Phase(lr=linspace(0, 0, steps)) ] self.policy = OptimizerPolicy(phases)
def setUp(self): steps = 2 phases = [ Phase(lr=linspace(0, 0, steps)), Phase(lr=linspace(1, 1, steps)), Phase(lr=linspace(2, 2, steps)), ] self.policy = OptimizerPolicy(phases=phases, initial_step=3)
def test_phase_with_only_one_parameter_set(self): for param_name in ["lr", "momentum"]: steps = 3 phase = Phase(**{param_name: linspace(1, 0, steps)}) for params in phase: self.assertIsInstance(params, dict) self.assertTrue(param_name in params) self.assertEqual(len(params), 1) self.assertTrue(0 <= params[param_name] <= 1)
def test_phase_with_two_parameters(self): steps = 4 phase = Phase(lr=linspace(1, 0, steps), momentum=cosinespace(0.8, 1, steps)) self.assertEqual(len(list(phase)), steps) for params in phase: self.assertEqual(len(params), 2) self.assertTrue("lr" in params) self.assertTrue(0 <= params["lr"] <= 1) self.assertTrue("momentum" in params) self.assertTrue(0.8 <= params["momentum"] <= 1)
def test_init_raises_without_lr_or_momentum(self): with self.assertRaises(ValueError): Phase(lr=None, momentum=None) with self.assertRaises(ValueError): Phase()