Upload README.md with huggingface_hub
Browse files
README.md
CHANGED
|
@@ -1,3 +1,133 @@
|
|
| 1 |
-
---
|
| 2 |
-
license: apache-2.0
|
| 3 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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 CatalystClient
|
| 112 |
+
client = CatalystClient(api_key="your-key")
|
| 113 |
+
result = client.simulate(network_config={...})
|
| 114 |
+
```
|
| 115 |
+
|
| 116 |
+
## Citation
|
| 117 |
+
|
| 118 |
+
If you use this model, please cite:
|
| 119 |
+
```bibtex
|
| 120 |
+
@misc{shulayevbarnes2026catalyst,
|
| 121 |
+
title={Catalyst N1: An Open-Design Neuromorphic Processor with Full Loihi Parity},
|
| 122 |
+
author={Shulayev Barnes, Henry},
|
| 123 |
+
year={2026},
|
| 124 |
+
publisher={Zenodo}
|
| 125 |
+
}
|
| 126 |
+
```
|
| 127 |
+
|
| 128 |
+
## Links
|
| 129 |
+
|
| 130 |
+
- [Website](https://catalyst-neuromorphic.com)
|
| 131 |
+
- [Cloud API](https://catalyst-neuromorphic.com/cloud)
|
| 132 |
+
- [PyPI: catalyst-cloud](https://pypi.org/project/catalyst-cloud/)
|
| 133 |
+
- [Paper (Zenodo)](https://zenodo.org/records/14868368)
|