def main(str_optimizer_method_gp, str_mlm_method, str_ms_method, int_bo, int_iter, int_init): int_dim = 2 bounds = utils_benchmarks.get_bounds(INFO_TARGET, int_dim) list_Y = [] list_time = [] for ind_bo in range(0, int_bo): print('BO Iteration', ind_bo) model_bo = bo.BO(bounds, str_optimizer_method_gp=str_optimizer_method_gp, debug=False) X_final, Y_final, time_final = utils_bo.optimize_many_with_random_init(model_bo, fun_target, int_init, int_iter, str_initial_method_bo='uniform', str_initial_method_ao='uniform', int_samples_ao=100, str_mlm_method=str_mlm_method, str_modelselection_method=str_ms_method, int_seed=77*(ind_bo+1)) list_Y.append(Y_final) list_time.append(time_final) arr_Y = np.array(list_Y) if int_bo == 1: arr_Y = np.expand_dims(np.squeeze(arr_Y), axis=0) else: arr_Y = np.squeeze(arr_Y) arr_Y = np.expand_dims(arr_Y, axis=0) arr_time = np.array(list_time) arr_time = np.expand_dims(arr_time, axis=0) print(np.array2string(arr_Y, separator=',')) print(np.array2string(arr_time, separator=',')) utils_plotting.plot_minimum(arr_Y, [STR_FUN_TARGET], int_init, True, path_save=None, str_postfix=None) utils_plotting.plot_minimum_time(arr_time, arr_Y, [STR_FUN_TARGET], int_init, True, path_save=None, str_postfix=None) return arr_Y, arr_time
def main(): # (max_depth, n_estimators) int_init = 3 model_bo = bo.BO(np.array([[0.1, 2]]), debug=True) list_Y = [] list_time = [] for _ in range(0, 10): X_final, Y_final, time_final, _, _ = utils_bo.optimize_many_with_random_init( model_bo, fun_target, int_init, 10, str_initial_method_bo='uniform', str_initial_method_ao='uniform', int_samples_ao=100) list_Y.append(Y_final) list_time.append(time_final) arr_Y = np.array(list_Y) arr_Y = np.expand_dims(np.squeeze(arr_Y), axis=0) arr_time = np.array(list_time) arr_time = np.expand_dims(arr_time, axis=0) utils_plotting.plot_minimum(arr_Y, ['ridge'], int_init, True, path_save=PATH_SAVE, str_postfix='ridge') utils_plotting.plot_minimum_time(arr_time, arr_Y, ['ridge'], int_init, True, path_save=PATH_SAVE, str_postfix='ridge')
def main(): int_bo = 5 int_iter = 50 int_init = 3 int_dim = 2 bounds = utils_benchmarks.get_bounds(INFO_TARGET, int_dim) model_bo = bo.BO(bounds, debug=True) list_Y = [] list_time = [] for ind_bo in range(0, int_bo): print('BO Iteration', ind_bo) X_final, Y_final, time_final = utils_bo.optimize_many_with_random_init(model_bo, fun_target, int_init, int_iter, str_initial_method_bo='uniform', str_initial_method_ao='uniform', int_samples_ao=100) print(X_final) print(Y_final) print(time_final) list_Y.append(Y_final) list_time.append(time_final) arr_Y = np.array(list_Y) arr_Y = np.expand_dims(np.squeeze(arr_Y), axis=0) arr_time = np.array(list_time) arr_time = np.expand_dims(arr_time, axis=0) utils_plotting.plot_minimum(arr_Y, [STR_FUN_TARGET], int_init, True, path_save=PATH_SAVE, str_postfix=STR_FUN_TARGET) utils_plotting.plot_minimum_time(arr_time, arr_Y, [STR_FUN_TARGET], int_init, True, path_save=PATH_SAVE, str_postfix=STR_FUN_TARGET)
def test_optimize_many_with_random_init(): np.random.seed(42) arr_range = np.array([ [-5.0, 5.0], ]) dim_X = arr_range.shape[0] num_X = 3 num_iter = 10 fun_target = lambda x: x**2 - 2.0 * x + 1.0 model_bo = bo.BO(arr_range) with pytest.raises(AssertionError) as error: utils_bo.optimize_many_with_random_init(1, fun_target, num_X, num_iter) with pytest.raises(AssertionError) as error: utils_bo.optimize_many_with_random_init(model_bo, 1, num_X, num_iter) with pytest.raises(AssertionError) as error: utils_bo.optimize_many_with_random_init(model_bo, fun_target, 1.2, num_iter) with pytest.raises(AssertionError) as error: utils_bo.optimize_many_with_random_init(model_bo, fun_target, num_X, 1.2) with pytest.raises(AssertionError) as error: utils_bo.optimize_many_with_random_init(model_bo, fun_target, num_X, num_iter, str_initial_method_bo=1) with pytest.raises(AssertionError) as error: utils_bo.optimize_many_with_random_init(model_bo, fun_target, num_X, num_iter, str_initial_method_bo='abc') with pytest.raises(AssertionError) as error: utils_bo.optimize_many_with_random_init(model_bo, fun_target, num_X, num_iter, str_initial_method_bo='grid') with pytest.raises(AssertionError) as error: utils_bo.optimize_many_with_random_init(model_bo, fun_target, num_X, num_iter, str_initial_method_ao=1) with pytest.raises(AssertionError) as error: utils_bo.optimize_many_with_random_init(model_bo, fun_target, num_X, num_iter, str_initial_method_ao='abc') with pytest.raises(AssertionError) as error: utils_bo.optimize_many_with_random_init(model_bo, fun_target, num_X, num_iter, int_seed=1.2) X_final, Y_final, time_final = utils_bo.optimize_many_with_random_init( model_bo, fun_target, num_X, num_iter, str_initial_method_bo='uniform') assert len(X_final.shape) == 2 assert len(Y_final.shape) == 2 assert len(time_final.shape) == 1 assert X_final.shape[1] == dim_X assert X_final.shape[0] == Y_final.shape[0] == time_final.shape[ 0] == num_X + num_iter assert Y_final.shape[1] == 1