Skip to content

Releases: lava-nc/lava-dl

Lava Deep Learning 0.5.0

15 Nov 06:49
Compare
Choose a tag to compare

Lava Deep Learning v0.5.0 Release Notes

November 9, 2023

What's Changed

New Features and Improvements

  • Lava-dl SLAYER now has extended support for training and inference of video object detection networks and the associated pre and post processing utilities used for object detection. The object detection module is available as lava.lib.dl.slayer.obd. The modules are described below:

    Module Description
    obd.yolo_base the foundational model for YOLO object detection training which can be used to build a variety of YOLO models
    obd.models selected pre-trained YOLO SDNN models which can be fine-tuned for user-specific applications
    obd.dataset object detection dataset library (will be progressively extended)
    obd.bbox.metrics modules to evaluate object detection models
    obd.{bbox, dataset}.utils utilities to manipulate bounding boxes and dataset processing including frame visualization and video export

    Extensive tutorials for

    are also available.

    In addition, the lava-dl SLAYER tutorials now include XOR regression tutorial as a basic example to get started with lava-dl training.

    Finally, lava-dl SLAYER now supports SpikeMoid loss, the official implementation of the spike-based loss introduced in

    Jurado et. al., Spikemoid: Updated Spike-based Loss Methods for Classification.

    which enables more advanced tuning of SNNs for classification.

  • Lava-dl NetX now supports users to configure inference of fully connected layers using sparse synapse instead of the default dense synapse. This allows the network to leverage the compression offered by sparse synapse if the fully connected weights are sparse enough. It is as simple as setting sparse_fc_layer=True when initializing a netx.hdf5.Network. netx.hdf5.Network also supports global control of spike exponent (the fraction portion of spike message) by setting spike_exp keyword. This allows users to control the network behavior in a more fine-grained manner and potentially avoid data overflow on Loihi hardware.

    In addition, lava-dl NetX now includes sequential modules netx.modules. These modules allow the creation of PyTorch style callable constructs whose behavior is described in the forward function. In addition, these sequential modules also allow the execution of non-critical, but expensive management between calls in a parallel thread so that the execution flow is not blocked.

    netx.modules.Quantize and netx.modules.Dequantize are now pre-built to allow for consistent quantization and dequantization to/from the fixed precision representation in the NetX network. Their usage can be seen in the YOLO SDNN inference on Lava and Loihi tutorial.

Bug Fixes and Other Changes

  • Lava-dl SLAYER is now Torch 2.0 compatible allowing our users to use advanced Torch 2.0+ features.
  • Fixes have been included that enable hdf5 export of affine block and proper handling of out-of-bound delays during hdf5 export in lava-dl SLAYER.

Breaking Changes

  • No breaking changes in this release.

Known Issues

  • No known issues in this release.

New Contributors

Full Changelog: v0.4.0...v0.5.0

Lava 0.4.0

25 Jul 08:39
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.3.3...v0.4.0

Lava Deep Learning 0.3.3

22 Apr 08:25
e8c4d35
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.3.2...v0.3.3

Lava Deep Learning 0.3.2

04 Nov 10:20
Compare
Choose a tag to compare

Lava Deep Learning v0.3.2 Release Notes

New Features and Improvements

  • No new features or improvements in this release.

Bug Fixes and Other Changes

  • Updated dependency on lava-nc from main to version 0.5.1.

Breaking Changes

  • No breaking changes in this release.

Known Issues

  • No known issues in this release.

Thanks to our Contributors

  • Intel Labs Lava Developers

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

Lava Deep Learning 0.3.1

31 Oct 11:15
5913425
Compare
Choose a tag to compare

Lava Deep Learning v0.3.1 Release Notes

October 31, 2022

The lava-dl library version 0.3.1 now includes additional deep SNN inference and benchmarking tutorials.

New Features and Improvements

Bug Fixes and Other Changes

  • Fixed issue with imports for recurrent tests (#112)
  • Fixed a bug for improper device configuration for lava.lib.dl.slayer neuron normalization (#116)

Breaking Changes

  • No breaking changes in this release.

Known Issues

  • Issue training with GPU for lava-dl-slayer on Windows machine.

Thanks to our Contributors

  • Intel Labs Lava Developers
  • Tobias Fischer
  • fangwei123456

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

  1. Intel Core i5-5257U with 32GB RAM, running Ubuntu 20.04.2 LTS with lava v0.5.1. Performance results are based on testing as of November 2022 and may not reflect all publicly available security updates. Results may vary.

Lava Deep Learning 0.3.0

29 Sep 01:55
5d6d5db
Compare
Choose a tag to compare

The lava-dl library version 0.3.0 now enables inference for trained spiking networks seamlessly on CPU or Loihi 2 backends and can leverage Loihi 2’s convolutional network compression and graded spike features for improved memory usage and performance.

New Features and Improvements

  • Added Loihi 2 support in lava-dl NetX utilizing Loihi 2 convolution support and graded spikes (PR #88, #107).
  • Added a tutorial demonstrating PilotNet application running on Intel Loihi 2 (PR #107).
  • Added accelerated training of recurrent topologies in lava-dl SLAYER (PR #103)
  • Added Transposed Convolution and Unpool support in lava-dl SLAYER (PR #80)

Bug Fixes and Other Changes

  • Improved lava-dl SLAYER codebase with bugfixes and additional documentation (PR #78, #105)

Breaking Changes

  • No breaking changes in this release

Known Issues

  • Issue training with GPU for lava-dl-slayer on Windows machine.

What's Changed

New Contributors

Full Changelog: v0.2.0...v0.3.0

Lava Deep Learning 0.2.0

09 Mar 17:56
e680722
Compare
Choose a tag to compare

The lava-dl library version 0.2.0 now supports automated generation of Lava processes for a trained network described by hdf5 network configuration using our Network Exchange (NetX) library.

New Features and Improvements

  • Released Network Exchange (NetX) library to support automated creation of Lava process for a deep network. We support hdf5 network exchange format. Support for more formats will be introduced in future. (PR #30, Issue #29)

Bug Fixes and Other Changes

  • Fixed bug with pre-hook quantization function on conv blocks (PR#13)

Breaking Changes

  • No breaking changes in this release

Known Issues

  • Issue training with GPU for lava-dl-slayer on Windows machine.

What's Changed

Full Changelog: v0.1.1...v0.2.0

Lava Deep Learning v0.1.1

29 Nov 16:09
267e99a
Compare
Choose a tag to compare

Lava Deep Learning 0.1.1 is a bugfix dot release.

Features and Improvements

  • Added more content to tutorial_01. Some tuning guidelines of learning rates α and β for the QP solver have been added

Bug Fixes and Other Changes

  • Fixed bug with pre-hook quantization function on conv blocks. (PR#13)

Known Issues

  • No known issues at this point

What's Changed

  • Adding init.py to lava-dl/lava by @awintel in #10
  • Clean up of explicit namespace declaration by @bamsumit in #11
  • Fix Pool layer when pre_hook function is not None by @valmat07 in #13

New Contributors

Full Changelog: v0.1.0...v0.1.1

Lava Deep Learning 0.1.0

13 Nov 06:20
6360210
Compare
Choose a tag to compare

Lava Deep Learning Library

This first release of lava-dl under BSD-3 license provides two new modes of training deep event-based neural networks, either directly with SLAYER 2.0 or through hybrid ANN/SNN training using the Bootstrap module.

SLAYER 2.0 (lava.lib.dl.slayer) provides direct training of heterogenous event-based computational blocks with support for a variety of learnable neuron models, complex synaptic computation, arbitrary recurrent connection, and many more new features. The API provides high level building blocks that are fully autograd enabled and training utilities that make getting started with training SNNs extremely simple.

Bootstrap (lava.lib.dl.bootstrap) is a new training method for rate-coded SNNs. In contrast to prior ANNto-SNN conversion schemes, it relies on an equivalent “shadow” ANN during training to maintain fast training speed but to also accelerate SNN inference post-training dramatically with only few spikes. Although Bootstrap is currently separate from SLAYER, its API mirrors the familiar SLAYER API, enabling fast hybrid ANN-SNN training for minimal performance loss in ANN to SNN conversion.

At this point in time, Lava processes cannot be trained directly with backpropagation. Therefore, we will soon release the Network Exchange (lava.lib.dl.netx) module for automatic generation of Lava processes from SLAYER or Bootstrap-trained networks. At that point, networks trained with SLAYER or Bootstrap can be executed in Lava.

Open-source contributions to these libraries are highly welcome. You are invited to extend the collection neuron models supported by both SLAYER and Bootstrap. Check out the Neurons and Dynamics tutorial to learn how to create custom neuron models from the fundamental linear dynamics’ API.

New Features and Improvements

  • lava.lib.dl.slayer is an extension of SLAYER for natively training a combination of different neuron models and architectures including arbitrary recurrent connections. The library is fully autograd compatible with custom CUDA acceleration when supported by the hardware.
  • lava.lib.dl.bootstrap is a new training method for accelerated training of rate based SNN using dynamically estimated ANN as well as hybrid training with fully spiking layers for low latency rate coded SNNs.

Bug Fixes and Other Changes

  • This is the first release of Lava. No bug fixes or other changes.

Breaking Changes

  • This is the first release of Lava. No breaking or other changes.

Known Issues

  • No known issues at this point.

What's Changed

New Contributors

Full Changelog: https://github.com/lava-nc/lava-dl/commits/v0.1.0