https://github.com/3it-inpaqt/neuropack
NeuroPack, a tool for emulating memristor-based neuromorphic architectures
Science Score: 23.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
○codemeta.json file
-
○.zenodo.json file
-
✓DOI references
Found 3 DOI reference(s) in README -
✓Academic publication links
Links to: arxiv.org, frontiersin.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (13.9%) to scientific vocabulary
Last synced: 10 months ago
·
JSON representation
Repository
NeuroPack, a tool for emulating memristor-based neuromorphic architectures
Basic Info
- Host: GitHub
- Owner: 3it-inpaqt
- License: gpl-3.0
- Default Branch: master
- Size: 1.55 MB
Statistics
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
- Releases: 0
Fork of hjq310/NeuroPack
Created about 3 years ago
· Last pushed over 3 years ago
https://github.com/3it-inpaqt/NeuroPack/blob/master/
# NeuroPack
Paper available here: [NeuroPack: An Algorithm-level Python-based Simulator for Memristor-empowered Neuro-inspired Computing](https://www.frontiersin.org/article/10.3389/fnano.2022.851856)
`experimentalResults.npz` gives experimental results shown in the paper.
NeuroPack is an algorithm-level simulator for memrsitor-based neuromorphic designs. It incorporates an empirical memristor model [here](https://arxiv.org/abs/1703.01167) to simulate how memristor states change during an online-training process.
To get memristor fitting parameters, please use [ArC One](https://github.com/arc-instruments/arc1_pyqt) instrument module 'ParameterFit'.
---
#### Components
- `NeuroPack.py` implements the main panel and the built-in analysis tool for NeuroPack
- `NeuroCores/core_X.py` implements the neuron model and the learning rule
---
#### Input files
- Configuration file: `NeuroData/XX.json` is an input file that users need to provide for setting configuration
- Matrix Connectivity file: `NeuroData/XX.txt` is an input file that defines how neurons are connected and which memristor is mapped to the connectivity.
- Stimuli file for training: `NeuroData/XX.txt` is an input file that provides input spikes and output labels (for supervised learning only) for training.
- Stimuli file for testing (optional): `NeuroData/XX.txt` is an input file that provide input spikes and output labels (for supervised learning only) for test.
---
#### Install and run
- Please install the updated [Arc One](https://github.com/hjq310/arc1_pyqt) interface with all required packages.
- Download NeuroPack and put it in the following directory:
C:/Users/AppData/Roaming/arc1pyqt\ProgPanels
- If you use Windows, open command prompt and go to the path where you install arc1_pyqt.
- Use the following commands to run Arc One interface:
`SET NNDBG=1` if you want to print out debug information in command prompt.
`python setup.py build`
`python run.py`
- Now ArC One interface pops up. Select 'VirtualArC' from the portal dropdown list, and click 'connect'.
- Click 'Read All'. Now the state indicator changes to 'Ready'.
- Select 'NeuroPack' from module dropdown list, and click 'Add'.
- Now NeuroPack main panel should pop up. Add all necessary input files and click 'Training network' to run.
---
#### Example usage
If you want to reproduce the results showcased in the paper 'NeuroPack: An Algorithm-level Python-based Simulator for Memristor-empowered Neuro-inspired Computing', please do the following:
- Click 'NeuroBase.json' and select 'MNIST_LIF.json'.
- Click 'Load Conn. Matrix' and select 'MNIST_LIF_connmat.txt'.
- Click 'Load Stim. File' and select 'MNIST_LIF_stim.txt'.
- Tick 'Load test file', click and select 'MNIST_LIF_test_stim.txt'.
- Tick 'Save to', click 'Load test file', and create a file to store inference results.
- Select 'LIF_supervisedLearning_wta' for 'Network core'.
- Press 'Train Network'
---
#### Citation
```
@ARTICLE{NeuroPack,
AUTHOR={Huang, Jinqi and Stathopoulos, Spyros and Serb, Alexantrou and Prodromakis, Themis},
TITLE={NeuroPack: An Algorithm-Level Python-Based Simulator for Memristor-Empowered Neuro-Inspired Computing},
JOURNAL={Frontiers in Nanotechnology},
VOLUME={4},
YEAR={2022},
URL={https://www.frontiersin.org/article/10.3389/fnano.2022.851856},
DOI={10.3389/fnano.2022.851856},
ISSN={2673-3013}
}
```
Owner
- Name: Integrated Nanoelectronics and Packaging for AI and Quantum Technologies (INPAQT)
- Login: 3it-inpaqt
- Kind: organization
- Location: Sherbrooke, Canada
- Website: nano-electronique/groupe-inpaqthttps://www.usherbrooke.ca/ln2/recherche/
- Repositories: 18
- Profile: https://github.com/3it-inpaqt
Sherbrooke University – Institut Interdisciplinaire d'Innovation Technologique (3IT) – Laboratoire Nanotechnologies et Nanosystèmes (LN2)