HEBO demo codes fail
abhishek-ghose opened this issue · comments
Hi,
I installed the HEBO library, and tried to run the demo codes here:
- https://github.com/huawei-noah/HEBO/tree/master/HEBO#demo
- https://github.com/huawei-noah/HEBO/tree/master/HEBO#auto-tuning-via-sklearn-estimator
Both begin executing but eventually fail with the error:
TypeError: __init__() got an unexpected keyword argument 'prob_per_variable'
The complete stacktrace for the second demo code (auto-tuning sklearn estimator) is:
Iter 0, best metric: 0.398791
Iter 1, best metric: 0.492467
Iter 2, best metric: 0.658477
Iter 3, best metric: 0.658477
Iter 4, best metric: 0.658477
Iter 5, best metric: 0.658477
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/redacted_path_1/HEBO-master/HEBO/hebo/sklearn_tuner.py", line 74, in sklearn_tuner
rec = opt.suggest()
File "/redacted_path_1/HEBO-master/HEBO/hebo/optimizers/hebo.py", line 153, in suggest
rec = opt.optimize(initial_suggest = best_x, fix_input = fix_input).drop_duplicates()
File "/redacted_path_1/HEBO-master/HEBO/hebo/acq_optimizers/evolution_optimizer.py", line 126, in optimize
algo = get_algorithm(self.es, pop_size = self.pop, sampling = init_pop, mutation = mutation, crossover = crossover, repair = self.repair)
File "/redacted_path_2/anaconda3/lib/python3.7/site-packages/pymoo-0.6.0.dev0-py3.7-linux-x86_64.egg/pymoo/factory.py", line 85, in get_algorithm
return get_from_list(get_algorithm_options(), name, args, {**d, **kwargs})
File "/redacted_path_2/anaconda3/lib/python3.7/site-packages/pymoo-0.6.0.dev0-py3.7-linux-x86_64.egg/pymoo/factory.py", line 49, in get_algorithm_options
from pymoo.algorithms.moo.ctaea import CTAEA
File "/redacted_path_2/anaconda3/lib/python3.7/site-packages/pymoo-0.6.0.dev0-py3.7-linux-x86_64.egg/pymoo/algorithms/moo/ctaea.py", line 223, in <module>
class CTAEA(GeneticAlgorithm):
File "/redacted_path_2/anaconda3/lib/python3.7/site-packages/pymoo-0.6.0.dev0-py3.7-linux-x86_64.egg/pymoo/algorithms/moo/ctaea.py", line 230, in CTAEA
mutation=PM(eta=20, prob_per_variable=None),
File "/redacted_path_2/anaconda3/lib/python3.7/site-packages/pymoo-0.6.0.dev0-py3.7-linux-x86_64.egg/pymoo/operators/mutation/pm.py", line 77, in __init__
super().__init__(prob=prob, **kwargs)
File "/redacted_path_2/anaconda3/lib/python3.7/site-packages/pymoo-0.6.0.dev0-py3.7-linux-x86_64.egg/pymoo/core/mutation.py", line 29, in __init__
super().__init__(**kwargs)
File "/redacted_path_2/anaconda3/lib/python3.7/site-packages/pymoo-0.6.0.dev0-py3.7-linux-x86_64.egg/pymoo/core/mutation.py", line 10, in __init__
super().__init__(**kwargs)
TypeError: __init__() got an unexpected keyword argument 'prob_per_variable'
Can you provide pointers for fixing this? Thanks!
It looks like it's because you installed pymoo-0.6.0 which is currently a pre-release version, while hebo was tested under pymoo-0.5.0, could you please test the demo under pymoo-0.5.0?
Given that pymoo-0.6.0 is currently just a pre-release, I won't update HEBO to be compatible with pymoo-0.6.0, but I'll do that once 0.6.0 becomes a stable release
That seems to fix the issue, thank you!