Are you sure you want to delete this task? Once this task is deleted, it cannot be recovered.
isleizhang 26b0011015 | 2 years ago | |
---|---|---|
cfgs | 2 years ago | |
comparison | 2 years ago | |
docs | 2 years ago | |
examples | 2 years ago | |
ext_algs | 2 years ago | |
offline_evaluations | 2 years ago | |
out | 2 years ago | |
xbbo | 2 years ago | |
.gitignore | 2 years ago | |
LICENSE | 2 years ago | |
README.md | 2 years ago | |
exp.json | 2 years ago | |
exp_.json | 2 years ago | |
requirements.txt | 2 years ago | |
res_.png | 2 years ago |
XBBO is an an effective, modular, reproducible and flexible black-box optimization (BBO) codebase, which aims to provide a common framework and benchmark for the BBO community.
Python >= 3.8
is required.
git clone REPO_URL
cd XBBO
# install requirements
pip install -r ./requirements.txt
# set root path
export PYTHONPATH=$PYTHONPATH:/Path/to/XBBO
python ./examples/rosenbrock_bo.py
note:
XBBO default minimize black box function.
def build_space(rng):
cs = ConfigurationSpace(seed=rng.randint(MAXINT))
x0 = UniformFloatHyperparameter("x0", -5, 10, default_value=-3)
x1 = UniformFloatHyperparameter("x1", -5, 10, default_value=-4)
cs.add_hyperparameters([x0, x1])
return cs
rng = np.random.RandomState(42)
# define black box function
blackbox_func = rosenbrock_2d
# define search space
cs = build_space(rng)
# define black box optimizer
hpopt = BO(config_spaces=cs, seed=rng.randint(MAXINT), suggest_limit=MAX_CALL)
# Example call of the black-box function
def_value = blackbox_func(cs.get_default_configuration())
print("Default Value: %.2f" % def_value)
# ---- Begin BO-loop ----
for i in range(MAX_CALL):
# suggest
trial_list = hpopt.suggest()
# evaluate
value = blackbox_func(trial_list[0].config_dict)
# observe
trial_list[0].add_observe_value(observe_value=value)
hpopt.observe(trial_list=trial_list)
print(value)
All examples can be found in examples/
folder.
Optimizer
multi-fidelity
Run comparison/xbbo_benchmark.py
to benchmark general BBO optimizer.
Method | Minimum | Best minimum | Mean f_calls to min | Std f_calls to min | Fastest f_calls to min |
---|---|---|---|---|---|
XBBO(rs) | 0.684+/-0.248 | 0.399 | 110.4 | 60.511 | 17 |
XBBO(bo-gp) | 0.398+/-0.000 | 0.398 | 138.5 | 33.685 | 90 |
XBBO(tpe) | 0.519+/-0.119 | 0.398 | 191.4 | 12.035 | 162 |
XBBO(anneal) | 0.404+/-0.005 | 0.399 | 164.5 | 29.032 | 92 |
XBBO(cma-es) | 0.398+/-0.000 | 0.398 | 191.3 | 8.391 | 174 |
XBBO(rea) | 0.425+/-0.026 | 0.399 | 115.8 | 47.743 | 56 |
XBBO(de) | 0.465+/-0.065 | 0.399 | 163.5 | 27.969 | 99 |
XBBO(turbo-1) | 0.398+/-0.000 | 0.398 | 110.3 | 46.596 | 46 |
XBBO(turbo-2) | 0.398+/-0.000 | 0.398 | 130.7 | 48.57 | 68 |
XBBO(bore) | 0.408+/-0.006 | 0.401 | 117.4 | 58.114 | 38 |
XBBO(cem) | 1.875+/-2.090 | 0.398 | 144.8 | 60.834 | 36 |
Here you can comparison with commonly used and well-known Hyperparameter Optimization (HPO) packages:
超参搜索(黑盒优化)框架
Python other
Dear OpenI User
Thank you for your continuous support to the Openl Qizhi Community AI Collaboration Platform. In order to protect your usage rights and ensure network security, we updated the Openl Qizhi Community AI Collaboration Platform Usage Agreement in January 2024. The updated agreement specifies that users are prohibited from using intranet penetration tools. After you click "Agree and continue", you can continue to use our services. Thank you for your cooperation and understanding.
For more agreement content, please refer to the《Openl Qizhi Community AI Collaboration Platform Usage Agreement》