API Reference#

ESN Models and Utilities#

xesn.ESN(n_input, n_output, n_reservoir, ...)

A classic ESN architecture, as introduced by Jaeger [2001], with no distribution or parallelism.

xesn.LazyESN(esn_chunks, overlap, boundary, ...)

A distributed/parallelized ESN network based on the multi-dimensional generalization of the algorithm introduced by Pathak et al. [2018], as used in Smith et al. [2023].

xesn.from_zarr(store, **kwargs)

Create an ESN or LazyESN from a zarr store.

Optimization Tools#

xesn.CostFunction(ESN, train_data, ...[, ...])

A class used to evaluate an ESN architecture, which can be used in xesn.optimize().

xesn.optimize(cost_function, **kwargs)

A simple interface with EGO to perform Bayesian Optimization and solve for an optimal parameter set.

xesn.utils.get_samples(xda, n_samples, ...)

Pull random samples from macro_training or test dataset

xesn.optim.transform(params, transformations)

Transform parameters for optimization, with only either log or log10.

xesn.optim.inverse_transform(...)

Perform the inverse of the specified transformation, of either only log or log10.

Everything Else#

xesn.Driver(config[, output_directory])

This is intended to automate ESN and LazyESN usage.

xesn.RandomMatrix(n_rows, n_cols, factor, ...)

Creates a random numpy or cupy based matrix via __call__().

xesn.SparseRandomMatrix(n_rows, n_cols, ...)

Similar to RandomMatrix, but used to create a sparse random matrix.

xesn.XData(field_name, zstore_path[, ...])

A class for very simple processing routines for xarray.DataArrays.