SNNCutoff is a Python package developed with a PyTorch backend, designed primarily for evaluating Spiking Neural Networks (SNNs). It offers:
-
SNN Evaluation:
- Utilizing detailed performance metrics, e.g., accuracy, latency and operations.
- Capabilities for conducting adaptive inference or cutoff of SNNs.
-
SNN Training:
- While the emphasis is on evaluation, the toolkit also supports a diverse array of training algorithms.
-
SNN Training Algorithms:
-
A New Metric:
- Optimal Cutoff Timestep (OCT): A optimal timestep that determines the minimal input processing duration for maintaining predictive reliability in SNNs. OCT is grounded in theoretical analysis and serves as a robust benchmark for assessing SNN models under different optimization algorithms.
-
Cutoff Approximation:
- Timestep (Baseline): Cutoff triggered using fixed timestep.
- Top-K: Cutoff triggered using the gap between the top-1 and top-2 output predictions at each timestep.
- Others: Coming soon.
More details in Documentation.
To begin using SNNCutoff, clone this repository and follow the setup instructions below.
- Clone the repo
git clone https://github.com/Dengyu-Wu/snncutoff.git
- Install Pytorch
pip install -r requirements. txt
We provide training and evaluation examples in scripts.
Check the contributing guidelines if you want to get involved with developing SNNCutoff.
We extend our appreciation to everyone who has contributed to the development of this project, both directly and indirectly.