Skip to main content

EchoStateNetwork

DOI PyPI

Echo state networks / reservoir computing in pure numpy. One class, EchoStateNetwork: ridge-regression training with chaotic recycle validation (contiguous runs or ragged dwell segments), parametric inputs, optional Bayesian hyperparameter search (scikit-optimize), closed-loop prediction, and Jacobians for data assimilation. For spatially extended systems, the parallel layout (patch_size, halo, periodic) runs one reservoir per patch of neighbouring sites (Pathak et al. 2018), with shared matrices and a position for every reservoir row, which covariance localization requires; see the parallel ESN page.

This is the single shared reservoir core behind qlrom (quantized-local ESN families) and romda (real-time ESN forecasting and bias-aware data assimilation).

Documentation: https://andreanovoa.github.io/EchoStateNetwork/

Tutorials

Install

pip install echostatenetwork          # core (numpy/scipy/matplotlib)
pip install "echostatenetwork[opt]"   # + scikit-optimize for Bayesian hyperparameter search
pip install -e ".[dev]"               # development

Quickstart

import numpy as np
from echostatenetwork import EchoStateNetwork

y = my_time_series                       # (Nt, N_dim)
esn = EchoStateNetwork(y, dt=0.01, N_units=200, t_train=40.0, t_val=4.0)
esn.train([y])
u_wash, r = ...                          # see docstrings: washout then closed loop

Citation

If this package contributes to your work, please cite the software archive on Zenodo:

@software{novoa_echostatenetwork,
  author = {Nóvoa, Andrea},
  title = {echostatenetwork: echo state networks in pure numpy},
  publisher = {Zenodo},
  doi = {10.5281/zenodo.23266679},
  url = {https://doi.org/10.5281/zenodo.23266679},
}

and the paper that introduced chaotic recycle validation, which train() employs by default:

@article{racca2021robust,
  author = {Racca, Alberto and Magri, Luca},
  title = {Robust optimization and validation of echo state networks for learning chaotic dynamics},
  journal = {Neural Networks},
  volume = {142},
  pages = {252--268},
  year = {2021},
  doi = {10.1016/j.neunet.2021.05.004},
  url = {https://doi.org/10.1016/j.neunet.2021.05.004},
}

Acknowledgements

This repository is based on alberacca/Echo-State-Networks, the reference implementation of the recycle-validation echo state network by Racca & Magri (2021). The parallel layout follows Pathak et al. (2018) and Vlachas et al. (2020).

  • Pathak, J., Hunt, B., Girvan, M., Lu, Z., & Ott, E. (2018). Model-free prediction of large spatiotemporally chaotic systems from data: a reservoir computing approach. Physical Review Letters, 120, 024102. doi:10.1103/PhysRevLett.120.024102
  • Vlachas, P. R., Pathak, J., Hunt, B. R., Sapsis, T. P., Girvan, M., Ott, E., & Koumoutsakos, P. (2020). Backpropagation algorithms and reservoir computing in recurrent neural networks for the forecasting of complex spatiotemporal dynamics. Neural Networks, 126, 191-217. doi:10.1016/j.neunet.2020.02.016

Metadata

Release files for echostatenetwork 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for echostatenetwork 0.2.1
File Size Uploaded
echostatenetwork-0.2.1.tar.gz 60.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for echostatenetwork 0.2.1
File Interpreter ABI Platform
echostatenetwork-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 108.0 kB

Release files / echostatenetwork-0.2.1.tar.gz

Download URL echostatenetwork-0.2.1.tar.gz
Size 60.8 kB
Tags Source
SHA-256 checksum
How to use checksums
6f9f6639026ee3fddf7339524eba2b610c141a51d242f59c3494e9dc69440e87
BLAKE2b-256 checksum
How to use checksums
158af6ed6206bbc00d408bd577d6a5ea2cbafee245631167a1755e239aff5629
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / echostatenetwork-0.2.1-py3-none-any.whl

Download URL echostatenetwork-0.2.1-py3-none-any.whl
Size 47.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8e349fa21a9a82f839a387427caf83b45bbfa2c595a40ebea76805457d02bbc0
BLAKE2b-256 checksum
How to use checksums
872bdd29d8bd570df57860c844a62ab71527cfb9a699125f78e06772e7f366ef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release history Release notifications | RSS feed

0.2.3

2 release files

0.2.2

2 release files

This release

0.2.1 This release

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page