mrwabbit commited on
Commit
b888744
·
verified ·
1 Parent(s): 752ee0a

Update model card with corrected GitHub links

Browse files
Files changed (1) hide show
  1. README.md +57 -106
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
- A recurrent spiking neural network trained on the [Spiking Heidelberg Digits (SHD)](https://zenkelab.org/resources/spiking-heidelberg-datasets-shd/) benchmark, achieving **85.9% test accuracy** (float) / **85.4% quantized (int16)**.
34
 
35
- Trained using the [Catalyst Neuromorphic](https://catalyst-neuromorphic.com) SDK (`neurocore`) with surrogate gradient descent, and deployable directly to Loihi-compatible neuromorphic hardware via the Catalyst Cloud API.
36
 
37
- ## Model Details
38
 
39
  | Parameter | Value |
40
  |-----------|-------|
41
- | **Architecture** | Recurrent LIF (Leaky Integrate-and-Fire) |
42
- | **Input neurons** | 700 (cochlea spike channels) |
43
- | **Hidden neurons** | 512 (recurrent) |
44
- | **Output classes** | 20 (digits 0-9, German + English) |
45
- | **Total parameters** | ~1.49M |
46
- | **Time bins** | 250 (dt = 4ms, 1s duration) |
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
- ## Hardware Deployment
66
 
67
- The model is quantized to **int16** for direct deployment on Catalyst neuromorphic hardware (FPGA) and the [Catalyst Cloud API](https://catalyst-neuromorphic.com/cloud):
 
 
 
 
68
 
69
- - Threshold: 1000 (int16)
70
- - Decay mapping: `decay_v = round(beta * 4096)` (CUBA neurons)
71
- - Quantization accuracy loss: only **0.4%** (85.9% -> 85.4%)
72
 
73
- ## Benchmark Context
74
 
75
- | Method | SHD Accuracy |
76
- |--------|-------------|
77
- | Cramer et al. (2020) | 83.2% |
78
- | Zenke & Vogels (2021) | 83.4% |
79
- | **Catalyst (this model)** | **85.9%** |
 
80
 
81
- ## Checkpoint Format
82
 
83
- PyTorch `.pt` file containing:
84
- ```python
85
- {
86
- 'epoch': int,
87
- 'model_state_dict': OrderedDict, # PyTorch model weights
88
- 'test_acc': 0.859,
89
- 'args': dict # Complete training arguments
90
- }
91
- ```
 
92
 
93
  ## Usage
94
 
95
  ```python
96
- import torch
97
-
98
- checkpoint = torch.load("shd_model.pt", map_location="cpu")
99
- print(f"Test accuracy: {checkpoint['test_acc']:.1%}")
100
 
101
- # Load weights into your model
102
- model.load_state_dict(checkpoint['model_state_dict'])
 
103
  ```
104
 
105
- Or use the Catalyst Cloud API:
106
  ```bash
107
- pip install catalyst-cloud
 
108
  ```
109
 
110
- ```python
111
- from catalyst_cloud import Client
112
- client = Client("cn_live_your_key_here")
113
- net = client.create_network(
114
- populations=[{"label": "input", "size": 700}, {"label": "hidden", "size": 512}],
115
- connections=[{"source": "input", "target": "hidden", "weight": 500}],
116
- )
117
- result = client.simulate(network_id=net["network_id"], timesteps=250)
118
- ```
119
 
120
  ## Citation
121
 
122
- If you use this model, please cite:
123
- ```bibtex
124
- @misc{shulayevbarnes2026catalyst,
125
- title={Catalyst N1: An Open-Design Neuromorphic Processor with Full Loihi Parity},
126
- author={Shulayev Barnes, Henry},
127
- year={2026},
128
- publisher={Zenodo}
129
- }
130
- ```
131
 
132
  ## Links
133
 
134
- - [Website](https://catalyst-neuromorphic.com)
135
  - [Cloud API](https://catalyst-neuromorphic.com/cloud)
136
- - [PyPI: catalyst-cloud](https://pypi.org/project/catalyst-cloud/)
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)