Rockpool

Latest version: v2.8

Safety actively analyzes 641872 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 4

2.8

Added
* Add cycles model for Xylo A and Xylo IMU, enabling to calculate the required master clock frequency for Xylo
* Add support for NIR, for importing and exporting Rockpool torch networks

Changed
* `LIFExodus` now supports vectors as threshold parameter
* Standard `LIF` modules now have `w_rec` as a simulation parameter when in non-recurrent mode

Fixed
* `TypeError` when using `LIFExodus`
* Update `jax.config` usage
* Power measurement for `xyloA2` was not considering AFE channels
* Remove `check_grads` from Jax tests, since this will fail for LIF neurons due to surrograte gradients
* Fix a bug in `AFESim` on windows, where the maximum int32 value would be exceeded when seeding the AFE simulation
* Fix stochasticity in some unit tests
* Fix a bug in `channel_quantize`, where quantization would be incorrectly applied for Xylo IMU networks with Nien < Nhid
* Fix a bug in `channel_quantize`, where hidden unit biases would be incorrectly used in place of output unit biases
* Fix a non-handled buffer bug in `LIFJax`, where non-recurrent modules would sometimes have garbage in `w_rec` instead of all zeros
* Fix a bug in `TorchSequential.as_graph()`, where torch module functions would be called instead of rockpool modules, leading to a failing call to `.as_graph()`.

Deprecated

* Brian2 tests are not running -- Brian2 backend will be soon removed

Removed

Security


[v.2.7.1 hotfix] -- 2024-01-19

Fixed

* Bug in Xylo IMU mapper, where networks with more than 128 hidden neurons could not be mapped

2.7

Added


* Dependency on `pytest-random-order` v1.1.0 for test order randomization
* New HowTo tutorial for performing constrained optimisation with torch and jax
* Xylo IMU application software support:

* `mapper`, `config_from_specification` and graph mapping support
* `XyloSim` module: SNN core simulation for Xylo IMU
* `IMUIFSim` module: Simulation of the input encoding interface with sub-modules:
* `BandPassFilter`
* `FilterBank`
* `RotationRemoval`
* `IAFSpikeEncoder`
* `ScaleSpikeEncoder`
* `XyloIMUMonitor` module: Real-time hardware monitoring for Xylo IMU
* `XyloSamna` module: Interface to the SNN core
* `IMUIFSamna` module: Interface to `IMUIF`, utilizing neurons in the SNN core
* `IMUData` module: Collection of sensor data from the onboard IMU sensor
* Utility functions for network mapping to the Xylo IMU HDK, interfacing, and data processing
* Introductory documentation providing an overview of Xylo IMU and instructions on configuring preprocessing
* New losses, with structure similar to PyTorch
* PeakLoss which can be imported as `peak_loss = rockpool.nn.losses.PeakLoss()`
* MSELoss which can be imported as `mse_loss = rockpool.nn.losses.MSELoss()`

Changed

* Update dependency version of pytest-xdist to >=3.2.1.
* Update to `Sequential` API. `Sequential` now permits instantiation with an `OrderedDict` to specify module names. `Sequential` now supports an `.append()` method, to append new modules, optionally specifying a module name.
* Cleaned up tree manipulation libraries and added to documentation. Implemented unit tests.
* Removed obsolete unit tests
* Changed semantics of transformation configurations for QAT, to only include attributes which will be transformed, rather than all attributes. This fixes an incompatibility with torch >= 2.0.
* Added support for latest `torch` versions
* New fine-grained installation options
* Renamed power measurement dict keys returned by Xylo Audio 2 (`syns61201`) `XyloSamna` module, to be more descriptive
* Upgrade minimum Python version supported to 3.8
* Upgrade minimum JAX version supported to 0.4.10
* Rearranged Xylo documentation to separate overview, Xylo Audio and Xylo IMU

Fixed

* Fixed bug in initialising access to MC3620 IMU sensor on Xylo IMU HDK, where it would fail with an error the on the second initialisation

Deprecated

Removed

* NEST backend completely removed
* Removed spiking output surrogate "U" from LIF modules

Security

2.6

Added

* Dynap-SE2 Application Software Support (jax-backend)

* jax backend `DynapSim` neuron model with its own custom surrogate gradient implementation
* `DynapSamna` module handling low-level HDK interface under-the-hood
* rockpool network <-> hardware configuration bi-directional conversion utilities
* Network mapping: `mapper()` and `config_from_specification()`
* sequentially combined `LinearJax`+`DynapSim` network getters : `dynapsim_net_from_config()` and `dynapsim_net_from_spec()`
* transistor lookup tables to ease high-level parameters <-> currents <-> DAC (coarse, fine values) conversions
* Dynap-SE2 specific auto-encoder quantization `autoencoder_quantization()`
* Custom `DigitalAutoEncoder` implementation and training pipeline
* `samna` alias classes compensating the missing documentation support
* unit tests + tutorials + developer docs
* `DynapseNeuron` graph module which supports conversion from and to `LIFNeuronWithSynsRealValue` graph
* hardcoded frozen and dynamic mismatch prototypes
* mismatch transformation (jax)
* `LIFExodus` now supports training time constants, and multiple time constants
* Improved API for `LIFTorch`
* Implemented `ExpSynExodus` for accelerated training of exponential synapse modules
* Added initial developer documentation
* Added MNIST tutorial
* Fixed notebook links to MyBinder.org


Changed

* Updated Samna version requirement to >=0.19.0
* User explicitly defines Cuda device for LIFExodus, ExpDynExodus and LIFMembraneExodus
* Improved error message when a backend is missing
* Improved transient removal in `syns61201.AFESim`

Fixed

* Weight scaling was too different for output layers and hidden layers.
* Hotfix: Regression in `LIFExodus`

2.5

Added

* Added support for Xylo-Audio v2 (SYNS61201) devices and HDK
* Added hardware versioning for Xylo devices
* Added a beta implementation of Quantisation-Aware Training for Torch backend in ``rockpool.transform.torch_transform``
* Added support for parameter boundary constraints in ``rockpool.training.torch_loss``
* Added tutorial for Spiking Heidelberg Digits audio classification
* Added tutorial and documentation for WaveSense network architecture
* Added support to ``LIFTorch`` for training decays and bitshift parameters
* Added a new utility package ``rockpool.utilities.tree_utils``

Changed

* Updated support for Exodus v1.1
* Updated ``XyloSim.from_specification`` to handle NIEN ≠ NRSN ≠ NOEN for Xylo devices
* Updated ``LIFTorch`` to provide proper ``tau``s for ``.as_graph()`` in case of decay and bitshift traning
* Improved backend management, to test torch version requirements

Fixed

* Fixed usage of Jax optimisers in tutorial notebooks to reflect Jax API changes
* Fixed issues with ``LIFTorch`` and ``aLIFTorch``, preventing ``deepcopy`` protocol
* Fixed bug in `tree_utils`, where `Tree` was used instead of `dict` in `isinstance` check
* Replaced outdated reference from ``FFRateEuler`` to ``Rate`` module in high-level API tutorial
* Fixed seeds in torch and numpy to avoid ``nan`` loss problem while training in tutorial
* Fixed bug in ``TorchModule`` where assigning to an existing registered attribute would clear the family of the attribute
* Fixed a bug in Constant handling for `torch.Tensor`s, which would raise errors in torch 1.12
* Fixed bug in ``LIFTorch``, which would cause recorded state to hang around post-evolution, causing errors from `deepcopy`
* Fixed bug in `Module._register_module()`, where replacing an existing submodule would cause the string representation to be incorrect

2.4.2

Hotfix

Improved handling of weights when using `XyloSim.from_specification`

2.4

Major changes

- `Linear...` modules now *do not* have a bias parameter, by default.

Added

- Support for Xylo SNN core v2, via XyloSim. Including biases and quantisation support; mapping and deployment for Xylo SNN core v2 (SYNS61201)
- Added support for Xylo-A2 test board, with audio recording support from Xylo AFE (`AFESamna` and `XyloSamna`)
- Support for an LIF neuron including a trainable adaptive threshold (`aLIFTorch`). Deployable to Xylo
- New module `BooleanState`, which maintains a boolean state
- Support for membrane potential training using `LIFExodus`

Changed

- Xylo package support for HW versioning (SYNS61300; SYNS61201)
- Ability to return events, membrane potentials or synaptic currents as output from `XyloSim` and `XyloSamna`
- Enhanced Xylo `mapper` to be more lenient about weight matrix size --- now assumes missing weights are zero
- Xylo `mapper` is now more lenient about HW constraints, permitting larger numbers of input and output channels than supported by existing HDKs
- Xylo `mapper` supports a configurable number of maxmimum hidden and output neurons
- Running `black` is enforced by the CI pipeline
- `Linear...` modules now export bias parameters, if they are present
- `Linear...` modules now do not include bias parameters by default
- Xylo `mapper` now raises a warning if any linear weights have biases
- `LIFSlayer` renamed to `LIFExodus`, corresponding to `sinabs.exodus` library name change
- Periodic exponetial surrogate function now supports training thresholds

Fixed

- Fixes related to torch modules moved to simulation devices
- Fixed issue in `dropout.py`, where if jax was missing an ImportError was raised
- Fixed an issue with `Constant` `torch` parameters, where `deepcopy` would raise an error
- Fixed issue with newer versions of torch; torch v1.12 is now supported
- Updated to support changes in latest jax api
- Fixed bug in `WavesenseNet`, where neuron class would not be checked properly
- Fixed bug in `channel_quantize`, where *un*quantized weights were returned instead of quantized weights

Deprecated

- `LIFSlayer` is now deprecated

Page 1 of 4

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.