Dual_memory_pathways: Algorithm-hardware co-design of neuromorphic networks with dual memory pathways
Authors/Creators
- 1. Imperial College London
- 2. Institute of Neuroinformatics, University of Zurich and ETH Zurich
- 3. University of Oxford
Description
Algorithm-hardware co-design of neuromorphic networks with dual memory pathways
Pengfei Sun* [1], Zhe Su*[2], Jascha Achterberg [3], Giacomo Indiveri [2] , Dan F.M. Goodman [1], Danyal Akarca [1, 4]
Imperial College London, ETH Zurich, University of Oxford, University of Cambridge
- These authors contributed equally to this work.
Algorithm: Pengfei Sun
Hardware: Zhe Su
README
Requirements
Python 3 with the following packages installed:
- PyTorch
- numpy
- spikingjelly
The software has been tested with CUDA libraries version 11.3 and Pytorch 1.12.1, and spikingjelly==0.0.0.0.14.
pip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 torchaudio==0.12.1 -f https://download.pytorch.org/whl/cu113/torch_stable.html
pip install spikingjelly
Examples
The core module is "dual_memory_pathways.py", and you can call "ConvLMU2" function.
output = convLMU2(input_dim, hidden_dim, out_dim, d, TT, t)
input_dim: input dimension
hidden_dim: hidden dimension
out_dim: output dimension
d: memory state
TT: total simulation time step
t: state buffer length
Example implementations can be found inside different dataset folders. For the SHD/SSC, please download the dataset from (https://zenkelab.org/datasets/).
- Run example SHD implementation,
cd shd/src
python train_spiking.py -d 5 -t 40
d is the memory state and t is the state buffer length.
Files
sunpengfei1122/Dual_memory_pathways-v1.0.0.zip
Files
(42.4 kB)
| Name | Size | Download all |
|---|---|---|
|
md5:1a0c04e5291a517a180c5842cbaf7ea2
|
42.4 kB | Preview Download |
Additional details
Related works
- Is supplement to
- Software: https://github.com/sunpengfei1122/Dual_memory_pathways/tree/v1.0.0 (URL)
Software
- Repository URL
- https://github.com/sunpengfei1122/Dual_memory_pathways