The EnergyFlow package is written in pure Python and the core depends only on NumPy, the fundamental package for scientific computing with Python, and six, which is a lightweight module to patch some inconvenient differences between Python 2 and Python 3. The extra features require additional packages as specified below:
- Architectures: Keras, scikit-learn.
- EMD: Python Optimal Transport (POT).
- Multigraph Generation: iGraph
The EnergyFlow package is designed to work with Python 2.7, 3.5, 3.6, and 3.7. These can be installed from here. A recent version of Python 3 is highly recommended, ideally 3.6 or higher.
To install from PyPI using
pip, make sure you have one of the supported versions of Python installed and that
pip is available in the system path. Simply execute
pip install energyflow and EnergyFlow will be installed in your default location for Python packages.
As of version
0.8.2, EnergyFlow has used a modified version of
numpy.einsum to do the heavy lifting for the computation of EFPs. NumPy 1.14.0 changed
einsum to use
tensordot when possible compared to
1.13.3, which only used
c_einsum. It was found that the multi-process approach used by
batch_compute is typically much faster when using the inherently single-threaded
tensordot, which can call BLAS. Hence the custom version of
einsum shipped with EnergyFlow disables all calls to
tensordot and uses only