Training and benchmarking of spiking neural networks
Context
Spiking neural networks (SNNs) are a type of neural network that emulate the behavior of biological neurons by processing information via discrete temporal events (spikes) instead of continuous activations as in classical networks. This event-driven approach makes them particularly energy efficient and well suited for neuromorphic hardware. However, direct training of SNNs is difficult because their spiking mechanisms are not differentiable, making it difficult to use traditional gradient-based learning methods such as backpropagation. Nevertheless, direct training is desirable as it can lead to more accurate and efficient models that are better adapted to the specific dynamics of spiking-based systems.
Tasks
The main tasks include training spiking neural networks and evaluating their performance against common benchmarks such as MNIST as well as more complex tasks from the Neurobench suite. Due to the high computational overhead of training, we use JAX for the most efficient execution and distribute the load across multiple GPUs where possible.
- Implementation of training methods for spiking neural networks
- Training SNNs and benchmarking their performance
Prerequisites
- Basics of neural networks
- Solid knowledge of Python