예제 #1
0
 def testSobolGeneratorDedupe(self):
     generator = SobolGenerator(seed=0, deduplicate=True)
     n_tunable = fixed_param_index = 3
     bounds = self._create_bounds(n_tunable=n_tunable, n_fixed=1)
     generated_points, weights = generator.gen(
         n=2,
         bounds=bounds,
         linear_constraints=(
             np.array([[1, 1, 0, 0], [0, 1, 1, 0]]),
             np.array([1, 1]),
         ),
         fixed_features={fixed_param_index: 1},
         rounding_func=lambda x: x,
     )
     self.assertEqual(len(generated_points), 2)
     generated_points, weights = generator.gen(
         n=1,
         bounds=bounds,
         linear_constraints=(
             np.array([[1, 1, 0, 0], [0, 1, 1, 0]]),
             np.array([1, 1]),
         ),
         fixed_features={fixed_param_index: 1},
         rounding_func=lambda x: x,
     )
     self.assertEqual(len(generated_points), 1)
     self.assertIsNotNone(generator._get_state().get("generated_points"))
예제 #2
0
파일: test_sobol.py 프로젝트: viotemp1/Ax
 def testSobolGeneratorAllTunable(self):
     generator = SobolGenerator(seed=0)
     bounds = self._create_bounds(n_tunable=3, n_fixed=0)
     generated_points, weights = generator.gen(n=3, bounds=bounds)
     self.assertEqual(np.shape(generated_points), (3, 3))
     np_bounds = np.array(bounds)
     self.assertTrue(np.alltrue(generated_points >= np_bounds[:, 0]))
     self.assertTrue(np.alltrue(generated_points <= np_bounds[:, 1]))
     self.assertTrue(np.all(weights == 1.0))
     self.assertEqual(generator._get_state(), {"init_position": 3})
예제 #3
0
    def testSobolGeneratorAllTunable(self):
        generator = SobolGenerator(seed=0)
        bounds = self._create_bounds(n_tunable=3, n_fixed=0)
        generated_points, weights = generator.gen(n=3, bounds=bounds)

        expected_points = np.array([
            [0.63552922, 0.17165081, 0.85513169],
            [0.92333341, 0.75570321, 0.72268772],
            [0.21601909, 0.48894, 0.11520141],
        ])
        self.assertTrue(
            np.shape(expected_points) == np.shape(generated_points))
        self.assertTrue(np.allclose(expected_points, generated_points))
        self.assertTrue(np.all(weights == 1.0))
        self.assertEqual(generator._get_state(), {"init_position": 3})