Echo State Networks powered by xarray and dask.
xesn is a python package for implementing Echo State Networks (ESNs), a particular form of Recurrent Neural Network originally introduced by Jaeger (2001). The main purpose of the package is to enable ESNs for relatively large scale weather and climate applications, for example as by Smith et al., (2023) and Arcomano et al., (2020). The package is designed to strike the balance between simplicity and flexibility, with a focus on implementing features that were shown to matter most by Platt et al., (2022).
xesn uses xarray to handle multi-dimensional data, relying on dask for parallelization and to handle datasets/networks that are too large for a single compute node. At its core, xesn uses numpy and cupy for efficient CPU and GPU deployment.
Installation from conda-forge
conda install -c conda-forge xesn
Installation from pip
pip install xesn
Installation from source
git clone https://github.com/timothyas/xesn.git
cd xesn
pip install -e .
Note that additional dependencies can be installed to run the unit test suite::
pip install -e .[test]
pytest xesn/test/*.py
To learn how to use xesn, check out the documentation here
Report bugs, suggest features, or view the source code on GitHub.
xesn is licensed under the Apache-2.0 License.
Development occurs on GitHub at https://github.com/timothyas/xesn.
If you find xesn useful, we would appreciate it if you cite the package as follows:
Smith et al., (2024). xesn: Echo state networks powered by Xarray and Dask. Journal of Open Source Software, 9(103), 7286, https://doi.org/10.21105/joss.07286
Here's a sample bibtex entry:
@article{
Smith2024,
doi = {10.21105/joss.07286},
url = {https://doi.org/10.21105/joss.07286},
year = {2024}, publisher = {The Open Journal},
volume = {9},
number = {103},
pages = {7286},
author = {Timothy A. Smith and Stephen G. Penny and Jason A. Platt and Tse-Chun Chen},
title = {xesn: Echo state networks powered by Xarray and Dask},
journal = {Journal of Open Source Software}
}