Skip to content

Commit 6ee555b

Browse files
committed
smac cma
1 parent 5cc88ea commit 6ee555b

1 file changed

Lines changed: 11 additions & 35 deletions

File tree

scripts/tuning/run_smac.py

Lines changed: 11 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,12 @@
44

55
import time
66
import argparse
7-
from itertools import product
87
from functools import partial
98

109
import ioh
1110
import numpy as np
1211
from smac import Scenario
13-
from smac.acquisition.function import PriorAcquisitionFunction
14-
from smac import AlgorithmConfigurationFacade, HyperparameterOptimizationFacade
12+
from smac import AlgorithmConfigurationFacade
1513
from ConfigSpace import Configuration
1614

1715
from modcma import c_maes
@@ -36,11 +34,7 @@ def calc_aoc(logger, budget, fid, iid, dim):
3634
def get_bbob_performance(
3735
config: Configuration, seed: int = 0, fid: int = 0, dim: int = 5
3836
):
39-
# print(fid, seed, dim)
4037
iid = 1 + (seed % 10)
41-
# fid, iid = instance.split(",")
42-
# fid = int(fid[1:])
43-
# iid = int(iid[:-1])
4438
np.random.seed(seed + iid)
4539
c_maes.utils.set_seed(seed + iid)
4640
BUDGET = dim * 10_000
@@ -54,7 +48,7 @@ def get_bbob_performance(
5448
dim,
5549
config,
5650
budget=BUDGET,
57-
target= problem.optimum.y + 1e-9,
51+
target=problem.optimum.y + 9e-9,
5852
ub=problem.bounds.ub,
5953
lb=problem.bounds.lb
6054
)
@@ -67,52 +61,34 @@ def get_bbob_performance(
6761
print(
6862
f"Found target {problem.state.current_best.y} target, but exception ({e}), so run failed"
6963
)
70-
print(config)
7164
return [np.inf]
7265

7366
auc = calc_aoc(l3, BUDGET, fid, iid, dim)
74-
return [auc]
67+
return auc
7568

7669

7770
def run_smac(fid, dim, use_learning_rates):
7871
print(f"Running SMAC with fid={fid}, lr={use_learning_rates} and d={dim}")
7972
cma_cs = c_maes.get_configspace(dim, add_learning_rates=use_learning_rates)
8073

81-
iids = range(1, 51)
82-
if fid == "all":
83-
fids = range(1, 25)
84-
max_budget = 240
85-
else:
86-
fids = [fid]
87-
max_budget = 50
88-
89-
# args = list(product(fids, iids))
90-
# np.random.shuffle(args)
91-
# inst_feats = {str(arg): [arg[0]] for idx, arg in enumerate(args)}
9274
scenario = Scenario(
9375
cma_cs,
9476
name=str(int(time.time())) + "-" + "CMA",
9577
deterministic=False,
96-
n_trials=5_000,
97-
# instances=args,
98-
# instance_features=inst_feats,
78+
n_trials=100_000,
9979
output_directory=os.path.join(
10080
DATA_DIR, f"BBOB_F{fid}_{dim}D_LR{use_learning_rates}"
10181
),
10282
n_workers=1,
10383
)
104-
pf = PriorAcquisitionFunction(
105-
acquisition_function=AlgorithmConfigurationFacade.get_acquisition_function(
106-
scenario
107-
),
108-
decay_beta=scenario.n_trials / 10,
109-
)
84+
11085
eval_func = partial(get_bbob_performance, fid=fid, dim=dim)
111-
intensifier = HyperparameterOptimizationFacade.get_intensifier(
112-
scenario, max_config_calls=max_budget
113-
)
114-
smac = HyperparameterOptimizationFacade(
115-
scenario, eval_func, acquisition_function=pf, intensifier=intensifier
86+
87+
smac = AlgorithmConfigurationFacade(
88+
scenario, eval_func,
89+
intensifier=AlgorithmConfigurationFacade.get_intensifier(
90+
scenario, max_config_calls=50
91+
),
11692
)
11793
smac.optimize()
11894

0 commit comments

Comments
 (0)