/leabra

Python implementation of the Leabra framework

Primary LanguageJupyter Notebook

Leabra

Binder Build Status

This repository holds a Python implementation of the Leabra (Local, Error-driven and Associative, Biologically Realistic Algorithm) framework. The reference implementation for Leabra is in emergent developped by the Computational Cognitive Neuroscience Laboratory at the University of Colorado Boulder. This Python implementation targets emergent 8.1.0, and only implements the rate-coded mode —which includes some spiking behavior, but is different from the discrete spiking mode (which is not implemented).

This work is the fruit of the collaboration of the Computational Cognitive Neuroscience Laboratory at the University of Colorado Boulder and the Mnemosyne Project-Team at Inria Bordeaux, France.

Status & Roadmap

This is a work in progress. Most of the basic algorithms of Leabra are implemented, but some mechanisms are still missing. While the current implementation passes several quantitative tests of equivalence with the emergent implementation (8.1.1, r11060), the number and diversity of tests is too low to guarantee that the implementation is correct yet.

  • Unit, Layer, Connection, Network class
  • XCAL learning rule
  • Basic notebook examples
  • Quantitative equivalence with emergent
  • Neuron tutorial notebook
  • Inhibition tutorial notebook
  • Weight balance mechanism

Installation & Usage

Install dependencies:

pip install -r requirements.txt

Then, launch Jupyter to see usage examples:

jupyter notebook index.ipynb

Run Notebooks Online

Notebooks can be run online without installation with the Binder service. The service is still experimental, and may be down or unstable.

Useful Resources

License

To be decided.