Can't run example_fmin.py
dli1 opened this issue · 4 comments
Hi, I just installed RoBo.
I want to try an example first, but I found an error seems to occur related to DIRECT.
Do you know why this happens?
INFO:robo.solver.bayesian_optimization:Evaluate: [ 3.30771226]
INFO:robo.solver.bayesian_optimization:Configuration achieved a performance of -23.418709 in 0.000019 seconds
INFO:robo.solver.bayesian_optimization:Evaluate: [ 5.74534538]
INFO:robo.solver.bayesian_optimization:Configuration achieved a performance of -146.883201 in 0.000009 seconds
INFO:robo.solver.bayesian_optimization:Evaluate: [ 0.212455]
INFO:robo.solver.bayesian_optimization:Configuration achieved a performance of -4.147487 in 0.000008 seconds
INFO:robo.solver.bayesian_optimization:Start iteration 3 ...
INFO:robo.solver.bayesian_optimization:Train model...
INFO:robo.solver.bayesian_optimization:Time to train the model: 1.350918
INFO:robo.solver.bayesian_optimization:Maximize acquisition function...
Call-back cb_fcn_in_direct__user__routines failed.
Traceback (most recent call last):
File "/Users/danli/Documents/Project/boir/code/RoBO-master/examples/example_fmin.py", line 22, in <module>
results = bayesian_optimization(objective_function, lower, upper, num_iterations=50)
File "/Users/danli/Documents/Project/boir/code/RoBO-master/robo/fmin/bayesian_optimization.py", line 131, in bayesian_optimization
x_best, f_min = bo.run(num_iterations)
File "/Users/danli/Documents/Project/boir/code/RoBO-master/robo/solver/bayesian_optimization.py", line 167, in run
new_x = self.choose_next(self.X, self.y, do_optimize)
File "/Users/danli/Documents/Project/boir/code/RoBO-master/robo/solver/bayesian_optimization.py", line 245, in choose_next
x = self.maximize_func.maximize()
File "/Users/danli/Documents/Project/boir/code/RoBO-master/robo/maximizers/direct.py", line 69, in maximize
maxf=self.n_func_evals)
File "/Users/danli/anaconda/envs/py3/lib/python3.6/site-packages/DIRECT/__init__.py", line 202, in solve
cdata
ValueError: data type must provide an itemsize
Process finished with exit code 1
hmm ... I can't reproduce the error here with the data from your log output. It looks like you run it on Windows? I am afraid that Direct doesn't work on Windows because of fortran code.
I use Mac Serra 10.12.5.
I install DIRECT by pip install direct
, its version is DIRECT (1.0.1).
I really have no idea about the error. Do you have any hint?
Btw, example_blr.py can run well.
I'm afraid Direct doesn't support Mac OS either. I've added a simple random sampling maximizer, that probably doesn't work as well as Direct but should still be effective in a one dimensional input space. If the dimensionality increases you should use CMAES instead (which unfortunately doesn't work in a one dimensional space)
Just check out the master branch and set maximizer="random" in the bayesian_optimization function call.
Well, thank you very much. Good to know that.
I will try it again on Linux.