Releases: reservoirpy/reservoirpy
Releases · reservoirpy/reservoirpy
ReservoirPy v0.3.2.post1
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
forNode.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
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
andFORCE
). - 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
- 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
- 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 fromRidge
). - Adding new matrices initializers in
mat_gen
(more flexible than the old ones). - Adding node
dtype
parameter to change parameter type. - Adding
bias
andbias_scaling
inReservoir
. - Fixing tutorials (#51 #61)
Full Changelog: v0.3.0...v0.3.1
ReservoirPy v0.3.0
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
- #35 #32 Ensure backport of
runtime_checkable
typing function for Python < 3.8 (usingtyping_extensions
) - #33 Use
collections.abc
instead ofcollections
to getIterable
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 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 bypickle
.
ReservoirPy v0.2.4-post1
- #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
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 aNode
, 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 ofNode
objects, 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 asModel
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
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.