Exemplo n.º 1
0
def test_discrete_no_values():
    with pytest.raises(ValueError):
        hp.DiscreteHyperParameter(None, [0, 1])

    with pytest.raises(ValueError):
        hp.DiscreteHyperParameter('h1', None)

    with pytest.raises(ValueError):
        hp.DiscreteHyperParameter('h2', [])
Exemplo n.º 2
0
def test_discrete():
    h1 = hp.DiscreteHyperParameter('h1', [0, 1])

    assert h1.name == 'h1'
    assert h1.num_choices == 2
    assert 0 in h1.id2param.values()
    assert h1.param2id[0] == 0
    assert repr(h1)
Exemplo n.º 3
0
def test_discrete_sample():
    values = [1, 2, 3, 4, 5]

    h1 = hp.DiscreteHyperParameter('h1', values)
    sample = h1.sample()
    assert sample in values

    samples = np.array([h1.sample() for _ in range(100)])
    _, counts = np.unique(samples, return_counts=True)
    assert np.all(counts > 0)
def test_discrete_encode_decode():
    values = [10, 11, 12, 13, 14]

    h1 = hp.DiscreteHyperParameter('h1', values)
    sample = h1.sample()

    encoded = h1.encode(sample)
    assert encoded == 4

    decoded = h1.decode(encoded)
    assert decoded == values[encoded]
Exemplo n.º 5
0
def test_discrete_encode_decode():
    values = [10, 11, 12, 13, 14]

    h1 = hp.DiscreteHyperParameter('h1', values, seed=0)
    sample = h1.sample()

    encoded = h1.encode(sample)
    assert encoded == 4

    decoded = h1.decode(encoded)
    assert decoded == values[encoded]

    # Test for None input
    values = [None, 1, 2, 3]
    h2 = hp.DiscreteHyperParameter('h1', values, seed=0)
    sample = None

    encoded = h2.encode(sample)
    assert encoded == 0

    decoded = h2.decode(encoded)
    assert decoded == values[encoded]
Exemplo n.º 6
0
def test_discrete_serialization_deserialization():
    h1 = hp.DiscreteHyperParameter('h1', [0, 1, None])

    config = h1.get_config()
    assert 'name' in config
    assert 'values' in config

    values = config['values']
    assert len(values) == 3

    h2 = hp.DiscreteHyperParameter.load_from_config(config)
    config = h2.get_config()

    assert 'name' in config
    assert 'values' in config

    values = config['values']
    assert len(values) == 3
Exemplo n.º 7
0
def test_evaluate_train_evaluate_failure():
    params = [hp.DiscreteHyperParameter('h%d' % i, [0]) for i in range(3)]
    h = hp.HyperParameterList(params)

    dataset = data.Dataset(h)

    # models
    clfs = []

    # fit samples
    num_samples = 16
    for i in range(3):
        samples = [h.sample() for _ in range(num_samples)]
        labels = [np.sum(sample) for sample in samples]
        x, y = samples, labels
        x, y = dataset.encode_dataset(x, y)
        model = xgb_utils.train_single_model(x, y)
        clfs.append(model)

    # test samples
    for model in clfs:
        assert model is None
Exemplo n.º 8
0
def get_hyperparameter_list():
    h1 = hp.DiscreteHyperParameter('h1', [0, 1, 2])
    h2 = hp.DiscreteHyperParameter('h2', [3, 4, 5, 6])
    h3 = hp.UniformContinuousHyperParameter('h3', 7, 10)
    h4 = hp.DiscreteHyperParameter('h4', ['v1', 'v2'])
    return [h1, h2, h3, h4]