Skip to content

Build

Readouts

A readout maps collected reservoir states to outputs. Every readout is an ordinary linear layer underneath, so any reservoir family's states can feed any readout, and both training paths remain available: a one-pass algebraic solve, or gradient descent with any PyTorch optimizer.

The solver is a pluggable contract: a new readout implements _fit_impl(states, targets) and inherits shape handling, validation, and parameter copy-back from the ReadoutLayer base class. Several solvers ship with the library — the default, RidgeReadoutLayer, fits ridge regression with a direct Cholesky solve; CGReadoutLayer solves the same problem iteratively by conjugate gradient; and SVDReadoutLayer, PinvReadoutLayer, and IncrementalRidgeReadout cover rank-deficient, pseudo-inverse, and streaming cases. Theory · Readout solvers tabulates which to reach for.

  • CGReadoutLayer


    Family-agnostic trainable maps — the name contract, ridge regression by conjugate gradient, bias and precision semantics, and the _fit_impl hook for custom solvers.

See also