automl / labwatch

An extension to Sacred for automated hyperparameter optimization.
59 stars 19 forks source link

Installation issues with dependencies #9

Open b3nk4n opened 6 years ago

b3nk4n commented 6 years ago

Hi there! after reading your paper about Sacred, I wanted to try out a basic example using Sacred and Labwatch. However, I faced some issues while installing Labwatch on my machine (Ubuntu 17.10, Python 2.7.14):

  1. Somehow, I had to install some of the dependencies manually, even that they are listed in the setup.py script:

    • sudo apt-get install gfortran
    • cython
    • ConfigSpace (pip install from source)
    • RoBo (pip install from source)
  2. Using python 2.7.14, I ended up in this error message within RoBo:

Processing /home/benny/projects/labwatch
    Complete output from command python setup.py egg_info:
    Invalid MIT-MAGIC-COOKIE-1 key/usr/lib/python2.7/dist-packages/gtk-2.0/gtk/__init__.py:57: GtkWarning: could not open display
      warnings.warn(str(e), _gtk.Warning)
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-oZQ4Vu-build/setup.py", line 22, in <module>
        from labwatch import __about__
      File "labwatch/__init__.py", line 4, in <module>
        from labwatch.assistant import LabAssistant
      File "labwatch/assistant.py", line 18, in <module>
        from labwatch.optimizers.random_search import RandomSearch
      File "labwatch/optimizers/__init__.py", line 14, in <module>
        from .bayesian_optimization import BayesianOptimization
      File "labwatch/optimizers/bayesian_optimization.py", line 10, in <module>
        from robo.models.gaussian_process_mcmc import GaussianProcessMCMC
      File "/usr/local/lib/python2.7/dist-packages/robo/models/gaussian_process_mcmc.py", line 10, in <module>
        from robo.models.gaussian_process import GaussianProcess
      File "/usr/local/lib/python2.7/dist-packages/robo/models/gaussian_process.py", line 14, in <module>
        class GaussianProcess(BaseModel):
      File "/usr/local/lib/python2.7/dist-packages/robo/models/gaussian_process.py", line 70, in GaussianProcess
        def train(self, X, y, do_optimize=True):
    TypeError: unbound method _check_shapes_train() must be called with BaseModel instance as first argument (got function instance instead)

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-oZQ4Vu-build/

After I looked into the gausion_process code of RoBo, I have seen that the issue is is coming from an @ annotation. I thought maybe this is not supported before Python 3.6.3. Hence, I tried everything once more with python3... installing everything once more with pip3 ... and voilà ... the error is gone!

Finally, my two questions:

a) Is there no Python 2.7 support? b) The installation page of Labwatch does not say anything about having to install some dependencies manually. It says something about RoBo, but it sounds more like an optional step. Is that actually a required step? Both the installation of RoBo and ConfigSpace? Or am I just doing something wrong? Or is it just my machine having fun with me?

Thank you in advance!