Esempio n. 1
0
def test_acq_with_poi():
    util = UtilityFunction(kind="poi", kappa=1.0, xi=1e-4)
    episilon = 1e-2
    y_max = 2.0

    max_arg = acq_max(
        util.utility,
        GP,
        y_max,
        bounds=np.array([[0, 1], [0, 1]]),
        random_state=ensure_rng(0),
        n_iter=200,
    )
    _, brute_max_arg = brute_force_maximum(MESH, GP, kind='poi', kappa=1.0, xi=1e-4)

    assert all(abs(brute_max_arg - max_arg) < episilon)
Esempio n. 2
0
def test_acq_with_ucb():
    util = UtilityFunction(kind="ucb", kappa=1.0, xi=1.0)
    episilon = 1e-2
    y_max = 2.0

    max_arg = acq_max(util.utility,
                      GP,
                      y_max,
                      bounds=np.array([[0, 1], [0, 1]]),
                      btypes=[float, float],
                      random_state=ensure_rng(0),
                      n_iter=20)
    _, brute_max_arg = brute_force_maximum(MESH,
                                           GP,
                                           kind='ucb',
                                           kappa=1.0,
                                           xi=1.0)

    assert all(abs(brute_max_arg - max_arg) < episilon)
Esempio n. 3
0
print("Connecting to database...")
database = SQLDatabase("sqlite:///test.db", "my_function", arg_types,
                       return_type)

print("Checking existing number of evaluations...")
if len(database) < 2:  # Check if there are enough existing datapoints
    initial_targets = []
    for point in initial_points:
        target = black_box_function(**point)
        database.add((point, target))

print("Creating optimizer and utility function...")
optimizer = BayesianOptimization(f=None, pbounds=pbounds, random_state=1)

utility_funcs = [
    UtilityFunction(kind="ucb", kappa=3, xi=1),
    ...,
]

print("Registering evaluations with optimizer...")
for (point, target) in database:
    optimizer.register(point, target)

while True:
    try:
        points = []
        for uf in utility_funcs:
            points.append(optimizer.suggest(uf))

        create_slurm_job(points)
        run_job()