Version | Docs | Style | Python | PyTorch | Contribute | Roadmap |
---|---|---|---|---|---|---|
1. Paper abstract (arxiv)
We introduce bio-inspired artificial neural networks consisting of neurons that are additionally characterized by spatial positions. To simulate properties of biological systems we add the costs penalizing long connections and the proximity of neurons in a two-dimensional space. Our experiments show that in the case where the network performs two different tasks, the neurons naturally split into clusters, where each cluster is responsible for processing a different task. This behavior not only corresponds to the biological systems, but also allows for further insight into interpretability or continual learning.
Dependencies are gathered inside requirements.txt
.
We advise to use conda
environment for easier package management.
- Install conda for your specific OS, see instructions here
- Create new environment by issuing from shell:
$ conda create --name SpatialNetworks
- Activate environment:
$ conda activate SpatialNetworks
- Install
pip
within environment:$ conda install pip
Make sure you have pip
installed (see documentation) and run:
pip install -r requirements.txt
Specify --user
flag if needed.
Experiments are divided into subsections.
To perform specific part use python main.py <subsection>
.
Currently following options are available
train
- train neural networkrecord
- record per task activations of neural network for later userplot
- plot spatial locations of each layersplit
- split networks into task-specific subnetworks via some methodscore
- score each network on specific task
Issue python main.py <subsection> --help
to see available options for each subsection.
To help with reproducibility later, please wrap your experiments commands with dvc
(see their documentation).