Skip to content

Releases: reservoirpy/reservoirpy

ReservoirPy v0.3.2.post1

25 Mar 16:43
Compare
Choose a tag to compare

Bug fix

  • Fix feedback in Model: forced vectors were not used if they were adresses to sender.
  • Fix import error of typing.Literal with Python < 3.8 (#65)
  • Fix random seed: reservoirpy.set_seed was not fixing Numpy random seed.
  • Fix frozen model list building in ops.link.
  • Fix problem with private data containers _X and _Y for Node.fit that were mirroring themselves.

Other changes

  • Improve coverage in reservoirpy.utils
  • Add Python 3.7 in test matrix for GitHub runner.
  • Fix typing issues with Model built from linking or merging of nodes (not recognized as a Model by IDEs)

Full Changelog: v0.3.2...v0.3.2.post1

ReservoirPy v0.3.2

18 Mar 15:29
Compare
Choose a tag to compare

Minor changes

  • Adding new feature: Intrinsic Plasticity ! Allow to fit a Reservoir on some data to change its activation values distribution, using the node reservoirpy.nodes.IPReservoir.
  • Bias initializers for readouts (Ridge and FORCE).
  • Using arrays of input scaling is now possible.
  • Some nodes may now have several inputs (without using a Concat node to concatenate them).
  • Big code cleanup: new private core module _base declares the nodes basic API, including input/output validation, train and forward procedures, Node abstract class and better feedback handlers.

Other fixes

  • Fix feedback system to avoid running twice nodes in distant feedback models, yielding incorrect results.
  • Fix some matrix generation problems (arrays of input scaling unsupported, some bugs with zeros not accepting **kwargs)
  • Fix readouts base API to allow bias initializers.
  • Improve coverage (79% -> 88% (+9pts))
  • Add documentation for all nodes/observables/activation functions.

Full Changelog: v0.3.1...v0.3.2

ReservoirPy v0.3.1.post1

25 Feb 10:42
Compare
Choose a tag to compare
  • Fix: apply input scalings defined as vectors to input matrices in Reservoir was not working with sparse matrices.

Full Changelog: v0.3.1...v0.3.1.post1

ReservoirPy v0.3.1

09 Feb 20:13
Compare
Choose a tag to compare
  • Adding teacher nodes: nodes can be used as teachers for other nodes when training online.
  • Adding warmup parameter in for offline learning (and removing transient parameter from Ridge).
  • Adding new matrices initializers in mat_gen (more flexible than the old ones).
  • Adding node dtype parameter to change parameter type.
  • Adding bias and bias_scaling in Reservoir.
  • Fixing tutorials (#51 #61)

Full Changelog: v0.3.0...v0.3.1

ReservoirPy v0.3.0

16 Jan 19:04
Compare
Choose a tag to compare

What's Changed

Release for new ReservoirPy major version: v0.3

Changes

Almost everything changed from previous version. Note the following changes:

  • Node API: everything in ReservoirPy is now a Node, which is the minimal piece of dynamical system defined in the library. It can apply a function to some input data, modify its internal state, train its parameters...
  • ...and get involved in much bigger architectures through Model objects. Model objects store graphs of Nodeobjects, and can handle forward flow of data, training of online and offline nodes, and feedbacks.
  • Reservoirs have now their own class ! Along with a lot of other tools defined in reservoirpy.nodes module: non linear vector auto regressive machine (NVAR), dense network with Tikhonov regression, FORCE learning, activations functions, operators... and more coming in the next releases.
  • While Model objects define complex flow of data between nodes, feedback connections define complex flow of data between nodes shifted in time. This allows for more refined techniques to be applied.
  • Subclassing a Node requires only a bunch of functions, and allows to quickly create new nodes and test new behaviors.
  • The ESN class has not disappeared though, and is back as Model instance optimized with some parallelization (still ongoing work, parallelization might still lead to unpredicted behavior with some configurations).
  • The reservoirpy.compat module keep track of everything from the last release (v0.2.4) of ReservoirPy.

Full Changelog: v0.2.4...v0.3.0-b

Full Changelog: v0.2.4...v0.3.0

ReservoirPy v0.3.0-beta2

01 Dec 18:28
Compare
Choose a tag to compare
Pre-release
  • #35 #32 Ensure backport of runtime_checkable typing function for Python < 3.8 (using typing_extensions)
  • #33 Use collections.abc instead of collections to get Iterable protocol
  • Removed scikit-learn support in compat module (at least for now, will create a scikit-laern compatible API soon)
  • Added all tests to test suite for CI
  • Fixed "Simple example with Mackey Glass" to support v0.3

ReservoirPy v0.3.0-beta1

29 Nov 16:53
Compare
Choose a tag to compare
Pre-release
  • #29 Partially fix multiprocessing error on Mac OS and Windows. A new multiprocessing strategy wil be developed in next release.
  • Add a load_compat function to load ESN models from v0.2.4 (or lower) as v0.3 ESN models. Model saving should now be handled by pickle.

ReservoirPy v0.2.4-post1

29 Nov 16:47
Compare
Choose a tag to compare
  • #29 Error with multiprocessing on Mac OS and Windows partially fixed. A new multiprocessing strategy will be developped to fully fix the problem in a future version.
  • Avoid ARPACK convergence errors when computing spectral radius

ReservoirPy v0.3.0-beta

19 Nov 19:02
Compare
Choose a tag to compare
Pre-release

Beta release for new ReservoirPy major version: v0.3

Changes

Almost everything changed from previous version. Note the following changes:

  • Node API: everything in ReservoirPy is now a Node, which is the minimal piece of dynamical system defined in the library. It can apply a function to some input data, modify its internal state, train its parameters...
  • ...and get involved in much bigger architectures through Model objects. Model objects store graphs of Nodeobjects, and can handle forward flow of data, training of online and offline nodes, and feedbacks.
  • Reservoirs have now their own class ! Along with a lot of other tools defined in reservoirpy.nodes module: non linear vector auto regressive machine (NVAR), dense network with Tikhonov regression, FORCE learning, activations functions, operators... and more coming in the next complete releases.
  • While Model objects define complex flow of data between nodes, feedback connections define complex flow of data between nodes shifted in time. This allows for more refined techniques to be applied.
  • Subclassing a Node requires only a bunch of functions, and allows to quickly create new nodes and test new behaviors.
  • The ESN class has not disappeared though, and is back as Model instance optimized with some parallelization (still ongoing work, parallelization might still lead to unpredicted behavior with some configurations).
  • The reservoirpy.compat module keep track of everything from the last release (v0.2.4) of ReservoirPy.

This is beta version, where some bugs are still expected. Do not hesitate to open an issue in that case.

Full Changelog: v0.2.4...v0.3.0-b

ReservoirPy v0.2.4

25 Jun 10:06
4321ea2
Compare
Choose a tag to compare

New release, including some major changes in the backend API:

  • New faster and lighter concurrent computation of ridge regression.
  • Beginning of a major refactorization of ReservoirPy, to prepare big changes of v0.3.0 (new _ESNBase class and regression model API)
  • More validators to assert quality of user inputs, and new handlers for parallel computations.

Minor changes:

  • Time axis is now axis 0 in state computation methods like compute_all_state
  • Wout matrix is now automatically computed at init of ESNOnline object.
  • States are not explicitely computed in most methods. A return_states parameters allow to returns states anyway.