Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


A library that has various tools for making, testing, and training reservoirs computers and echo state networks. It was developed for Python 3 and tested on Python 3.5+. It can be installed using one of the following commands:

pip install git+

Or you can clone (or copy) down the repository and run pip install . or python install from the top directory.

Library contents


Contains a class that wraps around Numpy's RandomState. You can use it with tasks and reservoirs that need random numbers drawn for them.


Contains the echo state network (ESN) classes and activation functions.


Contains an experiment class that uses ESNs, trainers, and tasks, to run an experiment. An experiment involves the generation of data from the tasks and the generation of output weights for the ESN given a cost function defined by the trainer. It also offers validation methods defined by the task to evaluate the trained model. Another experiment class is available for evaluating the dynamical behavior of a reservoir given a task without training it.


Contains functions for generating reservoirs and input weights for reservoirs. It does not generate reservoir graphs from scratch. The connectivity of the graph can be given as an edge list or adjacency matrix.


Contains classes that can be used to evaluate the dynamical behavior of an ESN.


A series of tasks that an ESN might perform. Currently there is the Nbit memory task and Memory Capacity task. These classes generate input and target signals as well as define methods for validating model target signals.


Contains classes that define the cost function that will be optimized along with the optimizer itself.


Contains some commonly used functions and default parameters. It also has a function for running experiments using MPI. This requires mpi4py to be installed. It is an optional dependency.

Making New Additions

Each class has an abstract base class which defines an interface for the class. New trainers, generators, ESNs, or tasks can be created and added at your leisure by inheriting from these base classes.

Using reservoirlib

An example script is provided under examples which you can inspect to see how the different library elements come together to make an experiment. The examples provided require the graphgen library for generating graphs for the reservoirs. You can swap it out for your own.


A library that has various tools for making, testing, and training reservoirs computers and echo state networks.




No releases published


No packages published