Welcome !

EchoTorch is a Python package intended to simplify the evaluation and implementation of machine learning models based on Echo State Networks and Reservoir Computing.

It allows to implement more advanced models based on Conceptors and on the Deep Learning paradigm such as DeepESN. You will also be able to integrate random recurring models into your pytorch models and simply generate time series data for your research.


The TimeTensor class

The basic element of EchoTorch is the TimeTensor, it is an extension of the Tensor class of pytorch but specifying a special dimension as being temporal in nature. You could specify a batch and a channel dimension as well. A TimeTensor has a size of (batch size, n. channels, time length, ...), if the TimeTensor has no batch dimension and no channels, the first dimension should be the time dimension. Dimensions after the time dimension are seen as the size of the timeseries.

Let’s create a TimeTensor full of zeros, similarly as torch:

x = echotorch.zeros((10,), 100)

The variable x(t) is a 10-dimensional timeseries of length 100 without batch and channel dimension.

x.tlen
100
x.size()
(100, 10)