Skip to content

[WIP] Implementation of Biologically-Inspired Spatial Neural Networks (https://arxiv.org/abs/1910.02776)

License

Notifications You must be signed in to change notification settings

gmum/SpatialNetworks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Version Docs Style Python PyTorch Contribute Roadmap
Version Documentation 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.

2. Dependencies

Dependencies are gathered inside requirements.txt. We advise to use conda environment for easier package management.

2.1 Setup conda [optional]

  • 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

2.2 Install packages

Make sure you have pip installed (see documentation) and run:

pip install -r requirements.txt

Specify --user flag if needed.

3. Performing experiments

Experiments are divided into subsections. To perform specific part use python main.py <subsection>.

Currently following options are available

  • train - train neural network
  • record - record per task activations of neural network for later user
  • plot - plot spatial locations of each layer
  • split - split networks into task-specific subnetworks via some method
  • score - 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).

Releases

No releases published

Packages

No packages published

Languages