A simple and flexible code for Reservoir Computing architectures like Echo State Networks (ESN).
ReservoirPy is a simple user-friendly library based on Python scientific modules. It provides a flexible interface to implement efficient Reservoir Computing (RC) architectures with a particular focus on Echo State Networks (ESN). Advanced features of ReservoirPy allow to improve computation time efficiency on a simple laptop compared to basic Python implementation. Some of its features are: offline and online training, parallel implementation, sparse matrix computation, fast spectral initialization, etc. Moreover, graphical tools are included to easily explore hyperparameters with the help of the hyperopt library.
This library works for Python 3.6 and higher.
See the official ReservoirPy's documentation to learn more about the main features of ReservoirPy, its API and the installation process.
Go to the examples folder for intallation, examples, tutorials and Jupyter Notebooks.
To enable last features of ReservoirPy, you migth want to download a specific Git branch.
Available versions and corresponding branch:
- v0.1.x :
v0.1
- v0.2.x (last stable) :
master
- v0.2.x (dev) :
v0.2.x
- (comming soon) v0.3.0 :
v0.3
Run and analyse these two files to see how to make timeseries prediction with Echo State Networks:
-
simple_example_MackeyGlass.py (using the ESN class)
python simple_example_MackeyGlass.py
-
minimalESN_MackeyGlass.py (without the ESN class)
python minimalESN_MackeyGlass.py
Tutorial on ReservoirPy can be found in this preprint (Trouvain et al. 2020).
Tutorial on how to explore hyperparameters with ReservoirPy and Hyperopt can be found in this preprint (Trouvain et al. 2020).
Turorial and Jupyter Notebook for hyper-parameter exploration
More info on hyperopt: Official website
Nathan Trouvain, Luca Pedrelli, Thanh Trung Dinh, Xavier Hinaut. ReservoirPy: an Efficient and User-Friendly Library to Design Echo State Networks. 2020. ⟨hal-02595026⟩ https://hal.inria.fr/hal-02595026