Example #1
0
    def test_sample(self):
        """Check whether sampling works correctly."""
        seed = 5
        space = Space()
        probs = (0.1, 0.2, 0.3, 0.4)
        categories = ("asdfa", 2, 3, 4)
        dim1 = Categorical("yolo", OrderedDict(zip(categories, probs)), shape=(2, 2))
        space.register(dim1)
        dim2 = Integer("yolo2", "uniform", -3, 6)
        space.register(dim2)
        dim3 = Real("yolo3", "norm", 0.9)
        space.register(dim3)

        point = space.sample(seed=seed)
        rng = check_random_state(seed)
        test_point = [
            dict(
                yolo=dim1.sample(seed=rng)[0],
                yolo2=dim2.sample(seed=rng)[0],
                yolo3=dim3.sample(seed=rng)[0],
            )
        ]
        assert len(point) == len(test_point) == 1
        assert len(point[0].params) == len(test_point[0]) == 3
        assert np.all(point[0].params["yolo"] == test_point[0]["yolo"])
        assert point[0].params["yolo2"] == test_point[0]["yolo2"]
        assert point[0].params["yolo3"] == test_point[0]["yolo3"]

        points = space.sample(2, seed=seed)
        rng = check_random_state(seed)
        points1 = dim1.sample(2, seed=rng)
        points2 = dim2.sample(2, seed=rng)
        points3 = dim3.sample(2, seed=rng)
        test_points = [
            dict(yolo=points1[0], yolo2=points2[0], yolo3=points3[0]),
            dict(yolo=points1[1], yolo2=points2[1], yolo3=points3[1]),
        ]
        assert len(points) == len(test_points) == 2
        for i in range(2):
            assert len(points[i].params) == len(test_points[i]) == 3
            assert np.all(points[i].params["yolo"] == test_points[i]["yolo"])
            assert points[i].params["yolo2"] == test_points[i]["yolo2"]
            assert points[i].params["yolo3"] == test_points[i]["yolo3"]
Example #2
0
    def test_sample(self, seed):
        """Check whether sampling works correctly."""
        space = Space()
        probs = (0.1, 0.2, 0.3, 0.4)
        categories = ("asdfa", 2, 3, 4)
        dim1 = Categorical("yolo",
                           OrderedDict(zip(categories, probs)),
                           shape=(2, 2))
        space.register(dim1)
        dim2 = Integer("yolo2", "uniform", -3, 6)
        space.register(dim2)
        dim3 = Real("yolo3", "norm", 0.9)
        space.register(dim3)

        point = space.sample(seed=seed)
        test_point = [
            (dim1.sample()[0], dim2.sample()[0], dim3.sample()[0]),
        ]
        assert len(point) == len(test_point) == 1
        assert len(point[0]) == len(test_point[0]) == 3
        assert np.all(point[0][0] == test_point[0][0])
        assert point[0][1] == test_point[0][1]
        assert point[0][2] == test_point[0][2]

        points = space.sample(2, seed=seed)
        points1 = dim1.sample(2)
        points2 = dim2.sample(2)
        points3 = dim3.sample(2)
        test_points = [
            (points1[0], points2[0], points3[0]),
            (points1[1], points2[1], points3[1]),
        ]
        assert len(points) == len(test_points) == 2
        for i in range(2):
            assert len(points[i]) == len(test_points[i]) == 3
            assert np.all(points[i][0] == test_points[i][0])
            assert points[i][1] == test_points[i][1]
            assert points[i][2] == test_points[i][2]
Example #3
0
 def test_probabilities_are_ok(self, seed):
     """Test that the probabilities given are legit using law of big numbers."""
     bins = defaultdict(int)
     probs = (0.1, 0.2, 0.3, 0.4)
     categories = ('asdfa', '2', '3', '4')
     categories = OrderedDict(zip(categories, probs))
     dim = Categorical('yolo', categories)
     for _ in range(500):
         sample = dim.sample(seed=seed)[0]
         bins[sample] += 1
     for keys in bins.keys():
         bins[keys] /= float(500)
     for key, value in categories.items():
         assert abs(bins[key] - value) < 0.01
Example #4
0
    def test_with_dict(self, seed):
        """Test Categorical.__init__ with a dictionary."""
        probs = (0.1, 0.2, 0.3, 0.4)
        categories = ('asdfa', 2, 3, 4)
        dim = Categorical('yolo', OrderedDict(zip(categories, probs)))
        samples = dim.sample(seed=seed)
        assert len(samples) == 1
        assert samples[0] == 2
        assert dim._probs == probs

        assert categories == dim.categories

        assert 2 in dim
        assert 0 not in dim

        assert dim.name == 'yolo'
        assert dim.type == 'categorical'
        assert dim.shape == ()
Example #5
0
    def test_with_tuple(self, seed):
        """Test Categorical.__init__ with a tuple."""
        categories = ('asdfa', 2)
        dim = Categorical('yolo', categories)
        samples = dim.sample(seed=seed)
        assert len(samples) == 1
        assert samples[0] == 'asdfa'
        assert dim._probs == (0.5, 0.5)

        assert categories == dim.categories

        assert 2 in dim
        assert 3 not in dim

        assert str(dim) == "Categorical(name=yolo, prior={asdfa: 0.50, 2: 0.50}, "\
                           "shape=(), default value=None)"

        assert dim.name == 'yolo'
        assert dim.type == 'categorical'
        assert dim.shape == ()