Skip to content

Commit 88ce190

Browse files
author
Alexander Ororbia
committed
some revisions/updates to toc/pointer/general tutorial docs
1 parent 78e58da commit 88ce190

File tree

6 files changed

+40
-149
lines changed

6 files changed

+40
-149
lines changed

docs/installation.md

Lines changed: 16 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,65 +1,41 @@
11
# Installation
22

3-
**ngc-learn** officially supports Linux on Python 3. It can be run with or
4-
without a GPU.
3+
**ngc-learn** officially supports Linux on Python 3. It can be run with or without a GPU.
54

6-
<i>Setup:</i> <a href="https://github.com/NACLab/ngc-learn">ngc-learn</a>,
7-
in its entirety (including its supporting utilities),
8-
requires that you ensure that you have installed the following base dependencies in
9-
your system. Note that this library was developed and tested on Ubuntu 22.04 (and earlier versions on 18.04/20.04).
10-
Specifically, ngc-learn requires:
5+
<i>Setup:</i> <a href="https://github.com/NACLab/ngc-learn">NGC-Learn</a>, in its entirety (including its supporting utilities), requires that you ensure that you have installed the following base dependencies in your system. Note that this library was developed and tested on Ubuntu 22.04 (with much earlier versions on Ubuntu 18.04/20.04).
6+
Specifically, NGC-Learn requires:
117
* Python (>=3.10)
12-
* ngcsimlib (>=1.0.0), (<a href="https://github.com/NACLab/ngc-sim-lib">official page</a>)
8+
* ngcsimlib (>=2.0.0), (<a href="https://github.com/NACLab/ngc-sim-lib">official page</a>)
139
* NumPy (>=1.22.0)
1410
* SciPy (>=1.7.0)
1511
* JAX (>= 0.4.28; and jaxlib>=0.4.28) <!--(tested for cuda 11.8)-->
1612
* Matplotlib (>=3.8.0), (for `ngclearn.utils.viz`)
1713
* Scikit-learn (>=1.6.1), (for `ngclearn.utils.patch_utils` and `ngclearn.utils.density`)
1814

19-
Note that the above requirements are taken care of if one installs ngc-learn
20-
through either `pip`. One can either install the CPU version of ngc-learn (if no JAX is
21-
pre-installed or only the CPU version of JAX is installed currently) via
15+
Note that the above requirements are taken care of if one installs NGC-Learn through either `pip`. One can either install the CPU version of NGC-Learn (if no JAX is pre-installed or only the CPU version of JAX is currently installed) via:
2216
```console
2317
$ pip install ngclearn
2418
```
2519

26-
or install the GPU version of ngc-learn by first installing the
27-
<a href="https://jax.readthedocs.io/en/latest/installation.html">CUDA 12
28-
version of JAX</a> before running the above pip command.
20+
or install the GPU version of NGC-Learn by first installing the <a href="https://jax.readthedocs.io/en/latest/installation.html">CUDA 12 version of JAX</a> before running the above pip command.
2921

30-
Alternatively, one may locally, step-by-step (see below), install and setup
31-
ngc-learn from source after pulling from the repo.
22+
Alternatively, one may locally, step-by-step (see below), install and setup NGC-Learn from source after pulling from the repo.
3223

33-
Note that installing the official pip package without any form of JAX installed
34-
on your system will default to downloading the CPU version of ngc-learn (see
35-
below for installing the GPU version).
24+
Note that installing the official pip package without any form of JAX installed on your system will default to downloading the CPU version of NGC-Learn (see below for installing the GPU version).
3625

3726
## Install from Source
3827

39-
0. Install ngc-sim-lib first (as an editable install); visit the repo
40-
https://github.com/NACLab/ngc-sim-lib for details.
28+
1. Install NGC-Sim-Lib first (as an editable install); visit the repo https://github.com/NACLab/ngc-sim-lib for details.
4129

42-
1. Clone the ngc-learn repository:
30+
2. Clone the NGC-Learn repository:
4331
```console
4432
$ git clone https://github.com/NACLab/ngc-learn.git
4533
$ cd ngc-learn
4634
```
4735

48-
2. (<i>Optional</i>; only for GPU version) Install JAX for either CUDA 12 , depending
49-
on your system setup. Follow the
50-
<a href="https://jax.readthedocs.io/en/latest/installation.html">installation instructions</a>
51-
on the official JAX page to properly install the CUDA 11 or 12 version.
36+
3. (<i>Optional</i>; only for GPU version) Install JAX for either CUDA 12 , depending on your system setup. Follow the <a href="https://jax.readthedocs.io/en/latest/installation.html">installation instructions</a> on the official JAX page to properly install the CUDA 11 or 12 version.
5237

53-
<!--
54-
3. (<i>Optional</i>) Install, a pre-package installation step (for only the
55-
non-ngclearn dependencies), the base requirements (and a few extras for building
56-
the docs) with:
57-
```console
58-
$ pip install -r requirements.txt
59-
```
60-
-->
61-
62-
3. Install the ngc-learn package via:
38+
4. Install the NGC-Learn package via:
6339
```console
6440
$ pip install .
6541
```
@@ -68,22 +44,21 @@ or, to install as an editable install for development, run:
6844
$ pip install -e .
6945
```
7046

71-
If the installation was successful, you should see the following if you test
72-
it against your Python interpreter, i.e., run the <code>$ python</code> command
73-
and complete the following sequence of steps as depicted in the screenshot below:<br>
74-
<!--<img src="images/test_ngclearn_install.png" width="512">-->
47+
If the installation was successful, you should see the following if you test it against your Python interpreter, i.e., run the <code>$ python</code> command and complete the following sequence of steps as depicted in the screenshot below:<br>
7548

7649
```console
7750
Python 3.11.4 (main, MONTH DAY YEAR, TIME) [GCC XX.X.X] on linux
7851
Type "help", "copyright", "credits" or "license" for more information.
7952
>>> import ngclearn
8053
>>> ngclearn.__version__
81-
'2.0.2'
54+
'3.0.0'
8255
```
8356

57+
<!--
8458
<i>Note</i>: If you do not have a JSON configuration file in place (see tutorials
8559
for details) locally where you call the import to ngc-learn, a warning will pop
8660
up containing within it "<i>UserWarning: Missing file to preload modules from.</i>";
8761
this still means that ngc-learn installed successfully but you will need to
8862
point to a JSON configuration when building projects with ngc-learn.
63+
-->
8964

docs/ngclearn_papers.md

Lines changed: 8 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,19 @@
11
# List of Papers/Publications
22

3-
The following is a list of current papers that use ngc-learn (this list will be
4-
actively updated as we discover others that use ngc-learn):
3+
The following is a list of current papers that use ngc-learn (this list will be actively updated as we discover others that use ngc-learn):
54

6-
1. Ororbia, A., and Kifer, D. The neural coding framework for learning
7-
generative models. Nature Communications 13, 2064 (2022).
5+
1. Ororbia, A., and Kifer, D. The neural coding framework for learning generative models. Nature Communications 13, 2064 (2022).
86

9-
2. Ororbia, A., and Mali, A. Backprop-free reinforcement learning with active
10-
neural generative coding. Proceedings of the AAAI Conference on Artificial
11-
intelligence (2022).
7+
2. Ororbia, A., and Mali, A. Backprop-free reinforcement learning with active neural generative coding. Proceedings of the AAAI Conference on Artificial intelligence (2022).
128

13-
3. Ororbia, A. "Spiking neural predictive coding for continual learning
14-
from data streams." arXiv preprint arXiv:1908.08655 (2019).
9+
3. Ororbia, A. "Spiking neural predictive coding for continual learning from data streams." Neurocomputing 544: 126292 (2022).
1510

16-
4. Ororbia, A, and Kelly, M. Alex. "CogNGen: constructing the kernel of
17-
a hyperdimensional predictive processing cognitive architecture."
18-
Proceedings of the Annual Meeting of the Cognitive Science Society (CogSci), Volume 44 (2022).
11+
4. Ororbia, A, and Kelly, M. Alex. "CogNGen: constructing the kernel of a hyperdimensional predictive processing cognitive architecture." Proceedings of the Annual Meeting of the Cognitive Science Society (CogSci), Volume 44 (2022).
1912

20-
5. Ororbia, A., and Kelly, M. Alex. "Learning using a hyperdimensional predictive processing cognitive
21-
architecture." 15th International Conference on Artificial General Intelligence (AGI) (2022).
13+
5. Ororbia, A., and Kelly, M. Alex. "Learning using a hyperdimensional predictive processing cognitive architecture." 15th International Conference on Artificial General Intelligence (AGI) (2022).
2214

23-
6. Ororbia, A., Mali, A., Kifer, D., & Giles, C. L. "Lifelong neural predictive coding: Learning cumulatively online without
24-
forgetting." Thirty-sixth Conference on Neural Information Processing Systems (NeurIPS) (2022).
15+
6. Ororbia, A., Mali, A., Kifer, D., & Giles, C. L. "Lifelong neural predictive coding: Learning cumulatively online without forgetting." Thirty-sixth Conference on Neural Information Processing Systems (NeurIPS) (2022).
2516

2617
7. Ororbia, A., Friston, K., Rao, Rajesh P. N. "Meta-representational predictive coding: Biomimetic self-supervised learning." arXiv preprint arXiv:2503.21796 (2025).
2718

28-
<b>Note:</b> Please let us know if your work uses ngc-learn so we can update this page to accurately track
29-
ngc-learn's use and include your work in the accumulating body of work in predictive processing
30-
and/or brain-inspired computational modeling.
19+
<b>Note:</b> Please let us know if your work uses ngc-learn so we can update this page to accurately track ngc-learn's use and include your work in the accumulating body of work in predictive processing and/or brain-inspired computational modeling.

docs/tutorials/foundations.md

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,8 @@
11
# Foundational Elements
22

3-
In this set of tutorials/walkthroughs, we go through the some of the core elements
4-
and mechanisms underlying ngc-learn in order understand how its simulation
5-
scheme (and the nodes-and-cables system) works and to help in writing your
6-
own custom elements.
3+
In this set of tutorials/walkthroughs, we go through some of the core elements and mechanisms underlying NGC-Learn in order understand how its simulation scheme (and the nodes-and-cables system) works and to help in writing your own custom elements.
74

85
The foundational walkthroughs are organized as follows:
9-
1. <b>[Using Model Contexts](../tutorials/foundations/contexts.md)</b>: This lesson goes
10-
the fundamentals of the primary simulation construct you need to set up models, the
11-
(simulation) context.
12-
2. <b>[Understanding Commands](../tutorials/foundations/commands.md)</b>: This lesson will
13-
walk you through the basics of a command -- an essential part of building a
14-
simulation controller in ngc-learn and ngcsimlib -- and offer some useful
15-
points for designing new ones.
16-
3. <b>[Operations](../tutorials/foundations/operations.md)</b>: Here, the basics
17-
of bundle rules, a commonly use mechanism for crafting complex biophysical
18-
systems, will be presented.
6+
1. <b>[Using Model Contexts](../tutorials/foundations/contexts.md)</b>: This lesson goes the fundamentals of the primary simulation construct you need to set up models, the (simulation) context.
7+
2. <b>[Understanding Commands](../tutorials/foundations/commands.md)</b>: This lesson will walk you through the basics of a command -- an essential part of building a simulation controller in ngc-learn and ngcsimlib -- and offer some useful points for designing new ones.
8+
3. <b>[Operations](../tutorials/foundations/operations.md)</b>: Here, the basics of bundle rules, a commonly-used mechanism for crafting complex biophysical systems, will be presented.

docs/tutorials/index.rst

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,7 @@
55
Tutorial Contents
66
=================
77

8-
Lessons/tutorials go through the very basics of constructing a dynamical system in
9-
ngc-learn, core elements and tools of neurocognitive modeling using ngc-learn's
10-
in-built components and simulation tools, and finally providing foundational insights
11-
into how ngc-learn and its backend, ngc-sim-lib, work (particularly with respect
12-
to configuration).
8+
Lessons/tutorials go through the very basics of constructing a dynamical system in NGC-Learn, core elements and tools of neurocognitive modeling using NGC-Learn's in-built components and simulation tools, and finally providing foundational insights into how NGC-Learn and its backend, NGC-Sim-Lib, work (particularly with respect to configuration).
139

1410
.. toctree::
1511
:maxdepth: 1

docs/tutorials/intro.md

Lines changed: 6 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,15 @@
11
# Introduction
22

3-
ngc-learn is a general-purpose library for modeling biomimetic/neuro-mimetic
4-
complex systems. While the library is designed to provide flexibility on the
5-
experimenter/designer side -- allowing one to design their own dynamics and
6-
evolutionary processes -- at its foundation are a few standard components, the
7-
basic modeling nodes for simulating some common biophysical systems computationally,
8-
that useful to know in getting started and quickly building some classical/historical
9-
models. If you are interested in knowing some of the neurophysiological theory
10-
behind ngc-learn's design philosophy, [this section](../tutorials/theory) might
11-
be of interest.
3+
NGC-Learn is a general-purpose library for modeling complex dynamical systems, particularly those that are useful for computational neuroscience, neuroscience-motivated artificial intelligence (NeuroAI), and brain-inspired computing.
4+
<!-- biomimetic/neuro-mimetic complex systems. -->
5+
While the library is designed to provide flexibility on the experimenter/designer side -- allowing one to develop their own dynamics and evolutionary processes -- at its foundation are a few standard components. These are basic modeling nodes for simulating some common biophysical systems computationally, which are useful to know when getting started and for quickly building some classical/historical models. If you are interested in knowing some of the neurophysiological theory behind NGC-Learn's design philosophy, [this section](../tutorials/theory) might be of interest.
126

13-
Specifically, to make best use of ngc-learn, it is important to get the
14-
hang of its "nodes-and-cables system" (as it was historically referred to) in
15-
order to build simulation objects. This set of tutorials will walk through,
16-
step-by-step, the key aspects of the library you need to know so you can build
17-
and run simulations of computational biophysical models. In addition, we
18-
provide walkthroughs of some of the central mechanisms underlying
19-
<a href="https://github.com/NACLab/ngc-sim-lib">ngcsimlib</a>, the simulation
20-
dependency library that drives ngc-learn; these are particularly useful for not
21-
only understanding why and how things are done by ngc-learn's simulation
22-
backend but also for those who want to design new, custom extensions of ngc-learn
23-
either for their own research or to contribute to the development of the main library.
7+
Specifically, to make best use of NGC-Learn, it is important to get the hang of its "nodes-and-cables system" (the historical name for its backend engine) in order to build simulation objects. This set of tutorials will walk you through, step-by-step, the key aspects of the library that you will need to know so that you can build
8+
and run simulations of computational biophysical models. In addition, we provide walkthroughs of some of the central mechanisms underlying <a href="https://github.com/NACLab/ngc-sim-lib">NGC-Sim-Lib</a>, the simulation dependency library that drives NGC-Learn; these lessons are particularly useful for not only understanding why and how things are done by NGC-Learn's simulation backend engine but also for those who want to design new, custom extensions of NGC-Learn either for their own research or to help contribute to the development of the main library.
249

2510
## Organization of Tutorials
2611

27-
The core tutorials and lessons for using ngc-learn can be found [here, in the
28-
tutorial table of contents](../tutorials/index.rst) and go through: the basic
29-
configuration and use of ngc-learn and ngc-sim-lib to construct simulations
30-
of dynamical systems, the essentials of neurocognitive modeling (such as
31-
building and analyzing neuronal dynamics and synaptic plasticity), as well
32-
as the coverage of some key foundational ideas/tools worth knowing about
33-
ngc-learn (and its backend, ngc-sim-lib) particularly to facilitate easier
34-
debugging, experimental configuration, and advanced model tools like `bundle rules`.
12+
The core tutorials and lessons for using NGC-Learn can be found [here, in the tutorial table of contents](../tutorials/index.rst) which essentially go through: the basic configuration and use of NGC-Learn and NGC-Sim-Lib to construct simulations of dynamical systems, the essentials of neurocognitive modeling (such as building and analyzing models of neuronal dynamics and synaptic plasticity), as well as the coverage of some key foundational ideas/tools worth knowing about NGC-Learn (and its backend, NGC-Sim-Lib) particularly to facilitate easier debugging, experimental configuration, and advanced modeling tools. <!-- like `bundle rules`. -->
3513

3614
<!--
3715
### Setting Up and Modeling Basics

0 commit comments

Comments
 (0)