Update model card with corrected GitHub links
Browse files
README.md
CHANGED
|
@@ -1,137 +1,88 @@
|
|
| 1 |
-
---
|
| 2 |
-
license: apache-2.0
|
| 3 |
-
tags:
|
| 4 |
-
- spiking-neural-network
|
| 5 |
-
- neuromorphic
|
| 6 |
-
- loihi
|
| 7 |
-
- temporal-classification
|
| 8 |
-
- audio
|
| 9 |
-
datasets:
|
| 10 |
-
- zenke-lab/spiking-heidelberg-digits
|
| 11 |
-
metrics:
|
| 12 |
-
- accuracy
|
| 13 |
-
model-index:
|
| 14 |
-
- name: Catalyst SHD SNN
|
| 15 |
-
results:
|
| 16 |
-
- task:
|
| 17 |
-
type: audio-classification
|
| 18 |
-
name: Spoken Digit Recognition
|
| 19 |
-
dataset:
|
| 20 |
-
name: Spiking Heidelberg Digits (SHD)
|
| 21 |
-
type: zenke-lab/spiking-heidelberg-digits
|
| 22 |
-
metrics:
|
| 23 |
-
- name: Test Accuracy (float32)
|
| 24 |
-
type: accuracy
|
| 25 |
-
value: 85.9
|
| 26 |
-
- name: Test Accuracy (int16 quantized)
|
| 27 |
-
type: accuracy
|
| 28 |
-
value: 85.4
|
| 29 |
-
---
|
| 30 |
-
|
| 31 |
# Catalyst SHD Spiking Neural Network
|
| 32 |
|
| 33 |
-
|
| 34 |
|
| 35 |
-
|
| 36 |
|
| 37 |
-
|
| 38 |
|
| 39 |
| Parameter | Value |
|
| 40 |
|-----------|-------|
|
| 41 |
-
|
|
| 42 |
-
|
|
| 43 |
-
|
|
| 44 |
-
|
|
| 45 |
-
|
|
| 46 |
-
|
|
| 47 |
-
|
| 48 |
-
## Training Configuration
|
| 49 |
-
|
| 50 |
-
| Hyperparameter | Value |
|
| 51 |
-
|----------------|-------|
|
| 52 |
-
| Epochs | 200 |
|
| 53 |
-
| Batch size | 128 |
|
| 54 |
-
| Optimizer | AdamW |
|
| 55 |
-
| Learning rate | 1e-3 (cosine annealing) |
|
| 56 |
-
| Weight decay | 1e-4 |
|
| 57 |
-
| Dropout | 0.3 |
|
| 58 |
-
| Gradient clipping | 1.0 norm |
|
| 59 |
-
| Surrogate gradient | Fast sigmoid (scale=25.0) |
|
| 60 |
-
| Membrane decay (hidden) | 0.95 (learnable) |
|
| 61 |
-
| Membrane decay (output) | 0.9 (learnable) |
|
| 62 |
-
| Threshold | 1.0 |
|
| 63 |
-
| Reset mechanism | Hard reset: v = v * (1 - spike) |
|
| 64 |
|
| 65 |
-
##
|
| 66 |
|
| 67 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 68 |
|
| 69 |
-
|
| 70 |
-
- Decay mapping: `decay_v = round(beta * 4096)` (CUBA neurons)
|
| 71 |
-
- Quantization accuracy loss: only **0.4%** (85.9% -> 85.4%)
|
| 72 |
|
| 73 |
-
##
|
| 74 |
|
| 75 |
-
|
| 76 |
-
|
| 77 |
-
|
| 78 |
-
|
| 79 |
-
|
|
|
|
| 80 |
|
| 81 |
-
##
|
| 82 |
|
| 83 |
-
|
| 84 |
-
|
| 85 |
-
|
| 86 |
-
|
| 87 |
-
|
| 88 |
-
|
| 89 |
-
|
| 90 |
-
|
| 91 |
-
``
|
|
|
|
| 92 |
|
| 93 |
## Usage
|
| 94 |
|
| 95 |
```python
|
| 96 |
-
|
| 97 |
-
|
| 98 |
-
checkpoint = torch.load("shd_model.pt", map_location="cpu")
|
| 99 |
-
print(f"Test accuracy: {checkpoint['test_acc']:.1%}")
|
| 100 |
|
| 101 |
-
#
|
| 102 |
-
|
|
|
|
| 103 |
```
|
| 104 |
|
| 105 |
-
|
| 106 |
```bash
|
| 107 |
-
pip install catalyst-
|
|
|
|
| 108 |
```
|
| 109 |
|
| 110 |
-
|
| 111 |
-
|
| 112 |
-
|
| 113 |
-
|
| 114 |
-
|
| 115 |
-
|
| 116 |
-
)
|
| 117 |
-
result = client.simulate(network_id=net["network_id"], timesteps=250)
|
| 118 |
-
```
|
| 119 |
|
| 120 |
## Citation
|
| 121 |
|
| 122 |
-
|
| 123 |
-
|
| 124 |
-
|
| 125 |
-
|
| 126 |
-
|
| 127 |
-
|
| 128 |
-
publisher={Zenodo}
|
| 129 |
-
}
|
| 130 |
-
```
|
| 131 |
|
| 132 |
## Links
|
| 133 |
|
| 134 |
-
- [
|
| 135 |
- [Cloud API](https://catalyst-neuromorphic.com/cloud)
|
| 136 |
-
- [
|
| 137 |
-
- [N1 Paper (Zenodo)](https://zenodo.org/records/18727094)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
# Catalyst SHD Spiking Neural Network
|
| 2 |
|
| 3 |
+
## Model Description
|
| 4 |
|
| 5 |
+
A recurrent spiking neural network (SNN) trained on the Spiking Heidelberg Digits (SHD) spoken digit classification benchmark, designed for deployment on Catalyst neuromorphic processors.
|
| 6 |
|
| 7 |
+
**Architecture**: 700 → 512 (recurrent, LIF) → 20
|
| 8 |
|
| 9 |
| Parameter | Value |
|
| 10 |
|-----------|-------|
|
| 11 |
+
| Input channels | 700 (cochlea model spike trains) |
|
| 12 |
+
| Hidden neurons | 512 (recurrent LIF) |
|
| 13 |
+
| Output classes | 20 (German + English digits 0-9) |
|
| 14 |
+
| Trainable parameters | ~421,000 |
|
| 15 |
+
| Neuron model | Leaky Integrate-and-Fire (CUBA) |
|
| 16 |
+
| Surrogate gradient | Fast sigmoid (scale=25) |
|
| 17 |
+
| Time bins | 250 (4ms bins, 1s window) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 18 |
|
| 19 |
+
## Performance
|
| 20 |
|
| 21 |
+
| Metric | Value |
|
| 22 |
+
|--------|-------|
|
| 23 |
+
| Float accuracy (best) | **85.9%** |
|
| 24 |
+
| Quantized accuracy (16-bit) | **85.4%** |
|
| 25 |
+
| Quantization loss | 0.4% |
|
| 26 |
|
| 27 |
+
Surpasses Cramer et al. (2020) at 83.2% and Zenke & Vogels (2021) at 83.4%.
|
|
|
|
|
|
|
| 28 |
|
| 29 |
+
## Training
|
| 30 |
|
| 31 |
+
- **Optimizer**: AdamW (lr=1e-3, weight_decay=1e-4)
|
| 32 |
+
- **Scheduler**: CosineAnnealingLR
|
| 33 |
+
- **Epochs**: 200
|
| 34 |
+
- **Batch size**: 128
|
| 35 |
+
- **Gradient clipping**: norm=1.0
|
| 36 |
+
- **Dropout**: 0.3
|
| 37 |
|
| 38 |
+
## Hardware Deployment
|
| 39 |
|
| 40 |
+
Trained for deployment on Catalyst N1/N2 neuromorphic processors:
|
| 41 |
+
- Weight quantization: float → int16 (scale = threshold_hw / threshold_float)
|
| 42 |
+
- Membrane decay: beta → decay_v = round(beta * 4096) [12-bit fractional]
|
| 43 |
+
- Target hardware threshold: 1000
|
| 44 |
+
- Deployment via: `python shd_deploy.py --checkpoint shd_model.pt`
|
| 45 |
+
|
| 46 |
+
## Files
|
| 47 |
+
|
| 48 |
+
- `shd_model.pt` — PyTorch checkpoint (float32 weights)
|
| 49 |
+
- `config.json` — Model architecture and training config
|
| 50 |
|
| 51 |
## Usage
|
| 52 |
|
| 53 |
```python
|
| 54 |
+
# Install SDK
|
| 55 |
+
pip install catalyst-cloud
|
|
|
|
|
|
|
| 56 |
|
| 57 |
+
# Or use directly with PyTorch
|
| 58 |
+
import torch
|
| 59 |
+
checkpoint = torch.load("shd_model.pt")
|
| 60 |
```
|
| 61 |
|
| 62 |
+
For FPGA deployment, use the Catalyst SDK:
|
| 63 |
```bash
|
| 64 |
+
pip install catalyst-neurocore
|
| 65 |
+
python -c "from neurocore import Network; print('SDK ready')"
|
| 66 |
```
|
| 67 |
|
| 68 |
+
## Dataset
|
| 69 |
+
|
| 70 |
+
[Spiking Heidelberg Digits (SHD)](https://zenkelab.org/resources/spiking-heidelberg-digits-shd/)
|
| 71 |
+
- ~8,000 training samples, ~2,600 test samples
|
| 72 |
+
- 700-channel cochlea model spike recordings of spoken digits
|
| 73 |
+
- 20 classes (digits 0-9 in German and English)
|
|
|
|
|
|
|
|
|
|
| 74 |
|
| 75 |
## Citation
|
| 76 |
|
| 77 |
+
[https://doi.org/10.5281/zenodo.18727094]
|
| 78 |
+
|
| 79 |
+
## License
|
| 80 |
+
|
| 81 |
+
Model weights: Apache 2.0
|
| 82 |
+
SDK: BSL 1.1 (source-available, free for research)
|
|
|
|
|
|
|
|
|
|
| 83 |
|
| 84 |
## Links
|
| 85 |
|
| 86 |
+
- [GitHub](https://github.com/catalyst-neuromorphic/catalyst-neurocore)
|
| 87 |
- [Cloud API](https://catalyst-neuromorphic.com/cloud)
|
| 88 |
+
- [Website](https://catalyst-neuromorphic.com)
|
|
|