Skip to content

Latest commit

 

History

History
72 lines (46 loc) · 2.08 KB

README.md

File metadata and controls

72 lines (46 loc) · 2.08 KB

Evolving Connectivity for Recurrent Spiking Neural Networks Repository

This repository contains the implementation of the paper Evolving Connectivity for Recurrent Spiking Neural Networks. It includes the Evolutionary Connectivity (EC) algorithm, Recurrent Spiking Neural Networks (RSNN), and the Evolution Strategies (ES) baseline implemented in JAX.

Getting Started

Prerequisites

  1. Install JAX

  2. Install W&B and log in to your account to view metrics

  3. Install the required dependencies:

pip install -r requirements.txt

Precautions

  • Brax v1 is required (brax<0.9) to reproduce our experiments. Brax v2 has completely rewritten the physics engine and adopted a different reward function.
  • Due to the inherent numerical stochasticity in Brax's physics simulations, variations in results can occur even when using a fixed seed.

Usage

Training EC with RSNN

To set parameters, use the command-line format of OmegaConf. For example:

python ec.py task=humanoid

Running experiment sets

To reproduce the Brax locomotion experiments using EC-RSNN:

python exp_launcher.py include=conf_experiment/ec_brax.yaml

To reproduce the ES experiments:

  • Deep RNN (GRU, LSTM)
python exp_launcher.py include=conf_experiment/rnn_brax.yaml
  • Densely weighted RSNN
python exp_launcher.py include=conf_experiment/dense_snn_brax.yaml

Note: The experiment launcher will automatically allocate all idle GPUs on your machine and run experiments in parallel.

Citation

@inproceedings{wang2023evolving,
    title={Evolving Connectivity for Recurrent Spiking Neural Networks},
    author={Wang, Guan and Sun, Yuhao and Cheng, Sijie and Song, Sen},
    booktitle={Thirty-seventh Conference on Neural Information Processing Systems},
    year={2023},
    url={https://openreview.net/forum?id=30o4ARmfC3}
}

License

This project is licensed under the Apache License 2.0.