def test_build_new_GreaterThanIntCondition(self): expected = "a real [0.0, 1.0] [0.5]\n" \ "b integer [0, 10] [5]\n\n" \ "b | a > 0.5" cs = ConfigurationSpace() a = UniformFloatHyperparameter("a", 0, 1, 0.5) b = UniformIntegerHyperparameter("b", 0, 10, 5) cs.add_hyperparameter(a) cs.add_hyperparameter(b) cond = GreaterThanCondition(b, a, 0.5) cs.add_condition(cond) value = pcs_new.write(cs) self.assertEqual(expected, value) expected = "a integer [0, 10] [5]\n" \ "b integer [0, 10] [5]\n\n" \ "b | a > 5" cs = ConfigurationSpace() a = UniformIntegerHyperparameter("a", 0, 10, 5) b = UniformIntegerHyperparameter("b", 0, 10, 5) cs.add_hyperparameter(a) cs.add_hyperparameter(b) cond = GreaterThanCondition(b, a, 5) cs.add_condition(cond) value = pcs_new.write(cs) self.assertEqual(expected, value)
def test_write_new_log10(self): expected = "a real [10.0, 1000.0] [100.0]log" cs = ConfigurationSpace() cs.add_hyperparameter( UniformFloatHyperparameter("a", 10, 1000, log=True)) value = pcs_new.write(cs) self.assertEqual(expected, value)
def test_write_new_q_int(self): expected = "Q16_int_a integer [16, 1024] [520]" cs = ConfigurationSpace() cs.add_hyperparameter( UniformIntegerHyperparameter("int_a", 16, 1024, q=16)) value = pcs_new.write(cs) self.assertEqual(expected, value)
def test_write_new_q_float(self): expected = "Q16_float_a real [16.0, 1024.0] [520.0]" cs = ConfigurationSpace() cs.add_hyperparameter( UniformFloatHyperparameter("float_a", 16, 1024, q=16)) value = pcs_new.write(cs) self.assertEqual(expected, value)
def test_write_new_log10(self): expected = "a real [10.0, 1000.0] [100.0]log" cs = ConfigurationSpace() cs.add_hyperparameter( UniformFloatHyperparameter("a", 10, 1000, log=True)) value = pcs_new.write(cs) self.assertEqual(expected, value)
def test_write_new_q_float(self): expected = "Q16_float_a real [16.0, 1024.0] [520.0]" cs = ConfigurationSpace() cs.add_hyperparameter( UniformFloatHyperparameter("float_a", 16, 1024, q=16)) value = pcs_new.write(cs) self.assertEqual(expected, value)
def test_write_new_q_int(self): expected = "Q16_int_a integer [16, 1024] [520]" cs = ConfigurationSpace() cs.add_hyperparameter( UniformIntegerHyperparameter("int_a", 16, 1024, q=16)) value = pcs_new.write(cs) self.assertEqual(expected, value)
def cache_runhistory_configspace(save_folder, flow_id, task_id, model_type, required_setups, reverse=False, fixed_parameters=None, ignore_parameters=None): if fixed_parameters: save_folder_suffix = [param + '_' + value for param, value in fixed_parameters.items()] save_folder_suffix = '/' + '__'.join(save_folder_suffix) else: save_folder_suffix = '/vanilla' runhistory_path = save_folder + save_folder_suffix + '/runhistory.json' configspace_path = save_folder + save_folder_suffix + '/config_space.pcs' print(runhistory_path, configspace_path) if not os.path.isfile(runhistory_path) or not os.path.isfile(configspace_path): runhistory, configspace = openmlpimp.utils.obtain_runhistory_and_configspace(flow_id, task_id, model_type, required_setups=required_setups, fixed_parameters=fixed_parameters, ignore_parameters=ignore_parameters, reverse=reverse) try: os.makedirs(save_folder + save_folder_suffix) except FileExistsError: pass with open(runhistory_path, 'w') as outfile: json.dump(runhistory, outfile, indent=2) with open(configspace_path, 'w') as outfile: outfile.write(write(configspace)) else: print('[Obtained from cache]') # now the files are guaranteed to exists return runhistory_path, configspace_path
def test_write_restrictions(self): s = "c integer [0, 2] [0]\n" + \ "d ordinal {cold, luke-warm, hot} [cold]\n" + \ "e real [0.0, 1.0] [0.0]\n" + \ "b real [0.0, 1.0] [0.0]\n" + \ "a real [0.0, 1.0] [0.0]\n" + \ "\n" + \ "b | d in {luke-warm, hot} || c > 1\n" + \ "a | b == 0.5 && e > 0.5" a = pcs_new.read(s.split('\n')) out = pcs_new.write(a) self.assertEqual(out, s)
def test_build_new_forbidden(self): expected = "a categorical {a, b, c} [a]\nb categorical {a, b, c} [c]\n\n" \ "{a=a, b=a}\n{a=a, b=b}\n{a=b, b=a}\n{a=b, b=b}\n" cs = ConfigurationSpace() a = CategoricalHyperparameter("a", ["a", "b", "c"], "a") b = CategoricalHyperparameter("b", ["a", "b", "c"], "c") cs.add_hyperparameter(a) cs.add_hyperparameter(b) fb = ForbiddenAndConjunction(ForbiddenInClause(a, ["a", "b"]), ForbiddenInClause(b, ["a", "b"])) cs.add_forbidden_clause(fb) value = pcs_new.write(cs) self.assertEqual(expected, value)
def test_build_new_forbidden(self): expected = "a categorical {a, b, c} [a]\nb categorical {a, b, c} [c]\n\n" \ "{a=a, b=a}\n{a=a, b=b}\n{a=b, b=a}\n{a=b, b=b}" cs = ConfigurationSpace() a = CategoricalHyperparameter("a", ["a", "b", "c"], "a") b = CategoricalHyperparameter("b", ["a", "b", "c"], "c") cs.add_hyperparameter(a) cs.add_hyperparameter(b) fb = ForbiddenAndConjunction(ForbiddenInClause(a, ["a", "b"]), ForbiddenInClause(b, ["a", "b"])) cs.add_forbidden_clause(fb) value = pcs_new.write(cs) self.assertIn(expected, value)
def test_write_new_log_int(self): expected = "int_log_a integer [1, 6] [2]log" cs = ConfigurationSpace() cs.add_hyperparameter(int_log_a) value = pcs_new.write(cs) self.assertEqual(expected, value)
def test_write_new_log_int(self): expected = "int_log_a integer [1, 6] [2]log" cs = ConfigurationSpace() cs.add_hyperparameter(int_log_a) value = pcs_new.write(cs) self.assertEqual(expected, value)