44
55import time
66import argparse
7- from itertools import product
87from functools import partial
98
109import ioh
1110import numpy as np
1211from smac import Scenario
13- from smac .acquisition .function import PriorAcquisitionFunction
14- from smac import AlgorithmConfigurationFacade , HyperparameterOptimizationFacade
12+ from smac import AlgorithmConfigurationFacade
1513from ConfigSpace import Configuration
1614
1715from modcma import c_maes
@@ -36,11 +34,7 @@ def calc_aoc(logger, budget, fid, iid, dim):
3634def 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
7770def 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