This repository contains the implementation of the EBSC and ES3C algorithms described in the paper [1], as well as some of the algorithms described in the paper [2]. Examples how to setup and run the algorithms can be found here. You may also check out our tvo
package which features PyTorch implementations of the algorithms, and which is available here.
We recommend Anaconda to manage the installation. Create a new environment to bundle the packages required:
$ conda create -c conda-forge -c anaconda -n evo python=2.7.15 pip pytables imageio
Note that the results described in [1] for EBSC and ES3C were produced by running in Python 2, but you may need to install a Python 3 version instead.
The implementations of the algorithms are parallelized using mpi4py
, which requires a system level installtion of MPI. Run one of the following commands, depending on your system, to install:
$ brew install mpich # MacOS
$ sudo apt install mpich # Ubuntu
Please consult the official documentation of mpi4py and MPICH if you need help.
Once MPICH is installed, you are ready to install mpi4py and further required packages by running:
$ pip install -r requirements.txt
Running the examples furthermore requires the tvutil
package, for which installation instructions can be found here.
Finally, you are ready to install evo
:
$ python setup.py install
Remark:
For code formatting and analysis, we use black
and pylama
. These tools can be installed via:
$ pip3 install black[python2] pylama
[1] Jakob Drefs, Enrico Guiraud, Jörg Lücke. Evolutionary Variational Optimization of Generative Models. Journal of Machine Learning Research 23(21):1-51, 2022. (online access)
[2] Hamid Mousavi, Jakob Drefs, Florian Hirschberger, Jörg Lücke. Generic Unsupervised Optimization for a Latent Variable Model With Exponential Family Observables. Journal of Machine Learning Research 24(285):1−59, 2023. (online access)