def test_bayesopt_batch(parameters, results): gpyopt = GPyOpt(max_concurrent=10) gpyopt.domain = gpyopt._initialize_domain(parameters) gpyopt.lower_is_better = True X, y, y_var = GPyOpt._prepare_data_for_bayes_opt(parameters, results) domain = gpyopt._initialize_domain(parameters) batch = gpyopt._generate_bayesopt_batch(X, y, lower_is_better=True, domain=domain) assert batch.shape == (10, 4)
def test_bayesopt_batch(parameters, results, transforms): gpyopt = GPyOpt(max_concurrent=10) domain = gpyopt._initialize_domain(parameters, transforms) X, y = GPyOpt._prepare_data_for_bayes_opt(parameters, results, transforms) batch = gpyopt._generate_bayesopt_batch(domain, X, y, lower_is_better=True) assert batch.shape == (10, 5)
def test_transformation_to_gpyopt_domain_log_continuous(parameters): domain = GPyOpt._initialize_domain(parameters) for p, d in zip(parameters, domain): assert d['name'] == p.name assert d['type'] == 'continuous' assert d['domain'] == tuple( [numpy.log10(p.range[0]), numpy.log10(p.range[1])])
def test_transformation_to_gpyopt_domain_with_multiple_parameters(parameters): domain = GPyOpt._initialize_domain(parameters) assert { 'name': 'dropout', 'type': 'continuous', 'domain': (0., 0.5) } == domain[0] assert { 'name': 'lr', 'type': 'continuous', 'domain': (-7, -1) } == domain[1] assert domain[2]['name'] == 'activation' assert domain[2]['type'] == 'categorical' assert numpy.array_equal(domain[2]['domain'], numpy.array([0, 1, 2])) assert { 'name': 'num_hidden', 'type': 'discrete', 'domain': tuple(range(100, 301)) } == domain[3]
def test_domain(parameters, transforms): domain = GPyOpt._initialize_domain(parameters, transforms) assert { 'name': 'dropout', 'type': 'continuous', 'domain': (0., 0.5) } in domain assert {'name': 'lr', 'type': 'continuous', 'domain': (-7, -1)} in domain assert { 'name': 'activation', 'type': 'discrete', 'domain': (0, 1, 2) } in domain assert { 'name': 'num_hidden', 'type': 'continuous', 'domain': (100, 300) } in domain assert { 'name': 'batch_size', 'type': 'continuous', 'domain': (0, 3) } in domain
def test_transformation_to_gpyopt_domain_log_discrete(): parameters = [sherpa.Discrete('a', [1, 100], 'log')] with pytest.warns(UserWarning, match='does not support log-scale'): GPyOpt._initialize_domain(parameters)
def test_transformation_to_gpyopt_domain_discrete(parameters): domain = GPyOpt._initialize_domain(parameters) for p, d in zip(parameters, domain): assert d['name'] == p.name assert d['type'] == 'discrete' assert d['domain'] == tuple(range(p.range[0], p.range[1] + 1))