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', [])
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)
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]
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]
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
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
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]