def smac_gm(self): clu_cs = ConfigurationSpace() cov_t = CategoricalHyperparameter( "covariance_type", ["full", "tied", "diag", "spherical"]) tol = UniformFloatHyperparameter("tol", 1e-6, 0.1) reg_c = UniformFloatHyperparameter("reg_covar", 1e-10, 0.1) n_com = UniformIntegerHyperparameter("n_components", 2, 10) max_iter = UniformIntegerHyperparameter("max_iter", 10, 1000) clu_cs.add_hyperparameters([cov_t, tol, reg_c, n_com, max_iter]) clu_scenario = Scenario({ "run_obj": "quality", # we optimize quality (alternatively runtime) # "runcount-limit": Constants.num_eval, # maximum function evaluations "cs": clu_cs, # configuration space "deterministic": "true", "tuner-timeout": constants.timeout, "wallclock_limit": constants.timeout, "cutoff_time": constants.timeout }) print('Run GM SMAC ' + self.name) smac = SMAC(scenario=clu_scenario, tae_runner=self.run_gm) parameters = smac.optimize() value = smac.get_runhistory().get_cost(parameters) return value, parameters
def smac_em(self): clu_cs = ConfigurationSpace() n_init = UniformIntegerHyperparameter("n_init", 1, 15) n_com = UniformIntegerHyperparameter("n_components", 2, 10) reg_c = UniformFloatHyperparameter("min_covar", 1e-6, 0.1) max_iter = UniformIntegerHyperparameter("n_iters", 10, 1000) tr = UniformFloatHyperparameter("threshold", 1e-6, 0.1) clu_cs.add_hyperparameters([n_init, tr, reg_c, n_com, max_iter]) clu_scenario = Scenario({ "run_obj": "quality", # we optimize quality (alternatively runtime) # "runcount-limit": Constants.num_eval, # maximum function evaluations "cs": clu_cs, # configuration space "deterministic": "true", "tuner-timeout": constants.em_timeout, "wallclock_limit": constants.em_timeout, "cutoff_time": constants.em_timeout, "runcount-limit": 1 }) print('Run EM SMAC ' + self.name) smac = SMAC(scenario=clu_scenario, tae_runner=self.run_em) parameters = smac.optimize() value = smac.get_runhistory().get_cost(parameters) return value, parameters
def test_get_runhistory_and_trajectory(self): ta = ExecuteTAFuncDict(lambda x: x ** 2) smac = SMAC(tae_runner=ta, scenario=self.scenario) self.assertRaises(ValueError, smac.get_runhistory) self.assertRaises(ValueError, smac.get_trajectory) smac.trajectory = 'dummy' self.assertEqual(smac.get_trajectory(), 'dummy') smac.runhistory = 'dummy' self.assertEqual(smac.get_runhistory(), 'dummy')