Skip to main content

Simulation software for building and analyzing arbitrary predictive coding, spiking network, and biomimetic neural systems.

Project description

Python VersionLicenseMaintenanceDocumentation StatusDOI

ngc-learn is a Python library for building, simulating, and analyzing biomimetic systems, neurobiological agents, spiking neuronal networks, predictive coding circuitry, and models that learn via biologically-plausible forms of credit assignment. This simulation toolkit is built on top of JAX and is distributed under the 3-Clause BSD license.

It is currently maintained by the Neural Adaptive Computing (NAC) laboratory.

Documentation

Official documentation, including tutorials, can be found here.

The official blog-post related to the source paper behind this software library can be found here.
You can find the related paper right here, which was selected to appear in the Nature Neuromorphic Hardware and Computing Collection in 2023 and was chosen as one of the Editors' Highlights for Applied Physics and Mathematics in 2022.

Installation

Dependencies

ngc-learn requires:

  1. Python (>=3.10)
  2. NumPy (>=1.26.0)
  3. SciPy (>=1.7.0)
  4. ngcsimlib (>=0.2.b1), (visit official page here)
  5. JAX (>= 0.4.18) (to enable GPU use, make sure to install one of the CUDA variants)

ngc-learn 1.0.beta0 and later require Python 3.10 or newer as well as ngcsimlib >=0.2.b2. ngc-learn's plotting capabilities (routines within ngclearn.utils.viz) require Matplotlib (>=3.8.0) and imageio (>=2.31.5) and both plotting and density estimation tools (routines within ngclearn.utils.density) will require Scikit-learn (>=0.24.2). Many of the tutorials will require Matplotlib (>=3.8.0), imageio (>=2.31.5), and Scikit-learn (>=0.24.2).

User Installation

Setup: The easiest way to install ngc-learn (CPU version) is through pip:

$ python install ngclearn

The documentation includes more detailed installation instructions. Note that this library was developed on Ubuntu 20.04 and tested on Ubuntu(s) 18.04 and 20.04.

If the installation was successful, you should see the following if you test it against your Python interpreter, i.e., run the $ python command and complete the following sequence of steps as depicted in the screenshot below:

Note: For access to the previous Tensorflow-2 version of ngc-learn (of which we no longer support), please visit the repo for ngc-learn-legacy.

Attribution:

If you use this code in any form in your project(s), please cite its source paper (as well as ngc-learn's official software citation):

@article{Ororbia2022,
  author={Ororbia, Alexander and Kifer, Daniel},
  title={The neural coding framework for learning generative models},
  journal={Nature Communications},
  year={2022},
  month={Apr},
  day={19},
  volume={13},
  number={1},
  pages={2064},
  issn={2041-1723},
  doi={10.1038/s41467-022-29632-7},
  url={https://doi.org/10.1038/s41467-022-29632-7}
}

Development:

We warmly welcome community contributions to this project. For details on how to make a contribution to ngc-learn, please see our contributing guidelines.

Source Code You can check/pull the latest source code for this library via:

$ git clone https://github.com/NACLab/ngc-learn.git

If you are working on and developing with ngc-learn pulled from the github repo, then run the following command to set up an editable install:

$ python install -e .

Version:
1.0.2-Beta

Author: Alexander G. Ororbia II
Director, Neural Adaptive Computing (NAC) Laboratory
Rochester Institute of Technology, Department of Computer Science

Copyright:

Copyright (C) 2021 The Neural Adaptive Computing Laboratory - All Rights Reserved
You may use, distribute and modify this code under the terms of the BSD 3-clause license.

You should have received a copy of the BSD 3-clause license with this software.
If not, please email us

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ngclearn-1.0b2.tar.gz (40.0 kB view details)

Uploaded Source

Built Distribution

ngclearn-1.0b2-py3-none-any.whl (61.3 kB view details)

Uploaded Python 3

File details

Details for the file ngclearn-1.0b2.tar.gz.

File metadata

  • Download URL: ngclearn-1.0b2.tar.gz
  • Upload date:
  • Size: 40.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.4

File hashes

Hashes for ngclearn-1.0b2.tar.gz
Algorithm Hash digest
SHA256 a8a244f16bcb922d3ffea91ad32b50d0874ade5ecc3e71fcba086d19bdc41a7f
MD5 09af510f2282b8038f4e1a51ae143efc
BLAKE2b-256 ee85eee20535c3e7ba67533a2779dd4478d92636e13e21a189275af7b596bcdb

See more details on using hashes here.

File details

Details for the file ngclearn-1.0b2-py3-none-any.whl.

File metadata

  • Download URL: ngclearn-1.0b2-py3-none-any.whl
  • Upload date:
  • Size: 61.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.4

File hashes

Hashes for ngclearn-1.0b2-py3-none-any.whl
Algorithm Hash digest
SHA256 3707e0fbdf12e4d0cc82c100df44c69efd2cb31d766d2ce70f27b8134d9a75df
MD5 2fc5afc293f29b37d134c7e8f07ff282
BLAKE2b-256 ac300a58bb3c01c941c547c136aedef74e43119c8f10b35f9d88956569588579

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page