Resources

Software

  • DeepESN Toolbox v1.0 (Matlab). Deep Echo State Networks (DeepESN) extend the Reservoir Computing paradigm towards the Deep Learning framework. A DeepESN is a deep Recurrent Neural Network composed of a stacked composition of multiple untrained recurrent reservoir layers, and of a trained linear readout layer that computes the output of the model. DeepESNs with a single layer reduce to standard Echo State Networks (ESNs), thereby the code provided in this toolbox can also be used for standard (i.e., shallow) ESN applications.

  • RC framework for multivariate time series classification. With this library is possible to quickly implement different classifiers based on Reservoir Computing, which are extremely fast to train and obtain state-of-the-art classification accuracy.

  • ESN for time series prediction (Python). The library includes software to perform hyparameter optimization through evolutionary algorithms. The implementation supports dimensionality reduction between the reservoir and the readout layer, a regularization that can improve the generalization capability of the ESN.

  • ReservoirPy (Python). It 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, with datasets of any size. Some of its features are: offline and online training, parallel implementation, sparse matrix computation, fast spectral initialization, advanced learning rules (e.g. Intrinsic Plasticity) etc. It also makes possible to easily create complex architectures with multiple reservoirs (e.g. deep reservoirs), readouts, and complex feedback loops. Moreover, graphical tools are included to easily explore hyperparameters with the help of the hyperopt library. Finally, it includes several tutorials exploring exotic architectures and examples of scientific papers reproduction. This library works for Python 3.8 and higher.

Github: https://github.com/reservoirpy/reservoirpy/

Documentation: https://reservoirpy.readthedocs.io/en/latest/?badge=latest

Interface in "R" language: https://github.com/reservoirpy/reservoirR

  • ReservoirComputing.jl (Julia). ReservoirComputing.jl is a Julia library which implements reservoir computing models with a strong focus on flexibility and efficiency. The wide range of implemented models allows a vast exploration of the architectures presented in the literature, as well as custom implementations aided by the modular design of the software and the nature of the Julia language itself. The package includes the most known variations of Echo State Networks and allows for multiple types of training. Both CPU and GPU calculations are supported. An in-depth documentation is also provided, which guides the user starting from simple tutorials to more advanced scripts. The support for this package is for Julia 1.6 and above.
    Github: https://github.com/SciML/ReservoirComputing.jl
    Documentation: https://reservoir.sciml.ai/dev/

Datasets