Package: phoenics
PhoenicsPhoenics is an open source optimization algorithm combining ideas from Bayesian optimization with Bayesian Kernel Density estimation [1]. It performs global optimization on expensive to evaluate objectives, such as physical experiments or demanding computations.Check out theexamplesfolder for detailed descriptions and code examples for:ExampleLinkSequential optimizationexamples/optimization_sequentialInstallationEnvironment (Optional)We suggest to create a new environment for the installation of Phoenics to avoid any compatibility issues with pre-existing python packages. This is optional, but recommended.This can be done with Venv or Anaconda.VenvCreate the virtual environment:python-mvenvvenvActivate (Unix):sourcevenv/bin/activateActivate (Windows):.\venv\Scripts\activateAvenvfolder will be created in the current directory and the virtual enviroment will be activated.Note: Edward backend requires Python 3.6 in order to install all needed dependencies. Python version can be specified as follow:python3.6-mvenvvenvAnacondacondacreate--namevenv
condaactivatevenvNote: Edward backend requires Python 3.6 in order to install all needed dependencies. Python version can be specified as follow:condacreate--namevenvpython=3.6Phoenics as pip modulePhoenics can be installed directly with pip:apt-getinstallpython-pip
python-mpipinstallphoenicsPhoenics from sourcePhoenics can also be installed from source. This way allows anyone to make and test changes on the code.gitclonehttps://github.com/chemos-inc/phoenics.gitcdphoenics
python-mpipinstall-Upip
python-mpipinstall-rrequirements.txt
python-mpipinstall-e.Dependencies and requirementsThis code has been tested with Python 3.6 and 3.7 on Unix platforms and on Windows 10.PIPIt requires the followingpippackages:numpypyyaml >= 5.1sqlalchemy >= 1.3watchdog >= 0.9wheel >= 0.33These will be automatically installed by running thesetup.pyor by installing Phoenics as a pip module.WindowsRequirements for Windows:Microsoft C++ Build Tools(Download Link)64-bit version of Python (Python 3.6.8 64 bit installer)BackendPhoenics requires additional modules for the backend of its Bayesian Neural Network. Two options are currently supported:tensorflow-probabilityandedward.Tensorflow probabilityTo use this backend, specify it in the configuration file:"backend":"tfprob"Install it with:python-mpipinstalltensorflow==1.15
python-mpipinstalltensorflow-probability==0.8.0Note: A warning will be generated if a version lower than 41.0.0 ofsetuptoolsis installed. To fix the warning run:python-mpipinstallsetuptools==41.0.0EdwardTo use this backend, specify it in the configuration file:"backend":"edward"Install it with:python-mpipinstalledward==1.3.5
python-mpipinstalltensorflow==1.4.1Note:tensorflow==1.4.1can not be installed with Python 3.7+.Run the examplegitclonegit@github.com:chemos-inc/phoenics.gitcdphoenics
python-mvenvvenvsourcevenv/bin/activate# on Windows: .\venv\Scripts\activatepython-mpipinstall-Upip
python-mpipinstallsetuptools==41.0.0
python-mpipinstall-rrequirements.txt
python-mpipinstalltensorflow==1.15
python-mpipinstalltensorflow-probability==0.8.0
python-mpipinstall-e.cdexamples/optimization_sequential/
python./optimize_branin.pyUsing PhoenicsPhoenics is designed to suggest new parameter points based on prior observations. The suggested parameters can then be passed on to objective evaluations (experiments or involved computation). As soon as the objective values have been determined for a set of parameters, these new observations can again be passed on to Phoenics to request new, more informative parameters.fromphoenicsimportPhoenics# create an instance from a configuration fileconfig_file='config.json'phoenics=Phoenics(config_file)# request new parameters from a set of observationsparams=phoenics.recommend(observations=observations)Detailed examples for specific applications are presented in theexamplesfolder.DisclaimerNote: This repository is under construction! We hope to add further details on the method, instructions and more examples in the near future.Experiencing problems?Please create anew issueand describe your problem in detail so we can fix it.References[1] Häse, F., Roch, L. M., Kreisbeck, C., & Aspuru-Guzik, A.Phoenics: A Bayesian Optimizer for Chemistry.ACS central science 4.6 (2018): 1134-1145.