Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
239 commits
Select commit Hold shift + click to select a range
07464b7
create release branch
Jul 5, 2024
cf639ad
Merge pull request #60 from NACLab/dev
ago109 Jul 6, 2024
a1567cf
Merge pull request #61 from NACLab/main
ago109 Jul 6, 2024
f8aff77
Dev (#62)
willgebhardt Jul 8, 2024
d01314c
added block diag init to weight dist
ago109 Jul 9, 2024
06d6331
added block diag init to weight dist
ago109 Jul 9, 2024
49d20ba
added block diag init to weight dist; with will optimization
ago109 Jul 9, 2024
59049b0
slight extension to rate-cell for tensor-shaping
ago109 Jul 14, 2024
f4b81b2
slight extension to rate-cell for tensor-shaping
ago109 Jul 14, 2024
52f36ae
slight extension to rate-cell for tensor-shaping
ago109 Jul 14, 2024
18724fd
slightly modded bernoulli-cell help to reflect correct compartment names
Jul 17, 2024
4e33b4a
nudge to readme for minor version shift to beta2
ago109 Jul 22, 2024
8e4f9ab
nudge to readme for minor version shift to beta2
ago109 Jul 22, 2024
bdb0d43
mod to docs to prep for nudge to beta2
Jul 22, 2024
a0eea84
Merge pull request #64 from NACLab/main
ago109 Jul 22, 2024
bbf0330
nudge correctly to pip version beta3
Jul 22, 2024
c6d9e31
Merge pull request #65 from NACLab/main
ago109 Jul 22, 2024
1dee123
generalized rate-cell a bit
ago109 Jul 22, 2024
e72d75e
Merge branch 'main' of github.com:NACLab/ngc-learn
ago109 Jul 22, 2024
2189f51
touched up rate-cell further
ago109 Jul 23, 2024
23eb7ed
minor mod to lif
ago109 Jul 23, 2024
1ddd86d
updated lif-cell to use units/tags and minor cleanup and edits
ago109 Jul 23, 2024
e240644
Monitor plot (#66)
willgebhardt Jul 23, 2024
086bd4d
added meta-data to rate-cell, input encoders, adex
ago109 Jul 23, 2024
19bf502
fixed minor saving/loading in rate-cell w/ vectorized compartments
ago109 Jul 23, 2024
4e298db
Added auto resolving for monitors (#67)
willgebhardt Jul 23, 2024
22e0d3a
fixed surr arg in lif-cell
ago109 Jul 24, 2024
42167cb
Merge branch 'main' of github.com:NACLab/ngc-learn
ago109 Jul 24, 2024
05ea912
modded bernoulli-cell to include max-frequency constraint
ago109 Jul 24, 2024
c19d15e
added warning check to bernoulli, some cleanup
ago109 Jul 24, 2024
23a54f6
integrated if-cell, cleaned up lif and inits
ago109 Jul 24, 2024
27a61ef
mod to latency-cell
ago109 Jul 24, 2024
05a97f0
updated the poissonCell to be a true poisson
willgebhardt Jul 25, 2024
cdea291
Merge branch 'dynamics' of github.com:NACLab/ngc-learn into dynamics
willgebhardt Jul 25, 2024
efa61a5
fixed minor bug in deprecation for poiss/bern
ago109 Jul 25, 2024
223d3c0
fixed minor bug in deprecation for poiss/bern
ago109 Jul 25, 2024
9afaadf
fixed validation fun in bern/poiss
ago109 Jul 25, 2024
bf72094
moved back and cleaned up bernoulli and poisson cells
ago109 Jul 25, 2024
c894b8a
added threshold-clipping to latency cell
ago109 Jul 25, 2024
ba08453
updates to if/lif
ago109 Jul 26, 2024
9c932b1
added batch-size arg to slif
ago109 Jul 26, 2024
03940e9
fixed minor load bug in lif-cell
ago109 Jul 27, 2024
6bc5cd8
fixed a blocking jit-partial call in lif update_theta method; when lo…
Jul 27, 2024
f4c03a1
minor edit to dim-reduce
Jul 28, 2024
8d74157
Patched synapses added (#68)
Faezehabibi Aug 1, 2024
8d5bbd1
updated monitor plot code
willgebhardt Aug 6, 2024
97c4d92
update to dim-reduce
ago109 Aug 6, 2024
bf06510
update to dim-reduce with merge
ago109 Aug 6, 2024
77f347f
integrated phasor-cell, minor cleanup of latency
ago109 Aug 6, 2024
714a58c
tweak to adex thr arg
ago109 Aug 7, 2024
6ec2e7a
tweak to adex thr arg
ago109 Aug 7, 2024
fb8524a
integrated resonate-and-fire neuronal cell
ago109 Aug 8, 2024
dd49e5f
mod to raf-cell
ago109 Aug 8, 2024
8882208
cleaned up raf
ago109 Aug 8, 2024
ee50f33
cleaned up raf
ago109 Aug 8, 2024
611e5b3
cleaned up raf-cell
ago109 Aug 9, 2024
94f37f7
cleaned up raf-cell
ago109 Aug 9, 2024
73e5aa1
cleaned up raf-cell
ago109 Aug 9, 2024
6408ee0
minor tweak to dim-reduce in utils
Aug 11, 2024
da439bd
Fix typo in pcn_discrim.md (#69)
sonnygeorge Oct 7, 2024
7510bb3
model_utils and rate cell (#70)
Faezehabibi Oct 16, 2024
889d230
Fix/reorganize feature library (#74)
Faezehabibi Oct 25, 2024
7338c34
Update model_utils.py (#78)
Faezehabibi Nov 19, 2024
35eae76
Additions for inhibition stuff
willgebhardt Nov 19, 2024
94f1697
add sindy documentation for exhibits (#81)
Faezehabibi Dec 2, 2024
de53d20
Update ode_utils.py (#79)
Faezehabibi Dec 2, 2024
23473ab
Add patched synapse (#80)
Faezehabibi Dec 2, 2024
2295ba5
Update __init__.py (#83)
Faezehabibi Dec 6, 2024
eeb057a
Add l1 decay term to update calculation (#84)
Faezehabibi Dec 9, 2024
cf53968
feat NGC module regression (#86)
Faezehabibi Dec 9, 2024
c49daea
Update odes.py
Faezehabibi Dec 10, 2024
d5def75
Update odes.py (#87)
Faezehabibi Dec 10, 2024
21a8af0
Update odes.py
Faezehabibi Dec 10, 2024
537c29d
Update __init__.py
Faezehabibi Dec 10, 2024
34278ed
Update __init__.py
Faezehabibi Dec 10, 2024
0782fa6
Merge pull request #89 from Faezehabibi/fix-typo
rxng8 Dec 10, 2024
8b2730a
Merge branch 'NACLab:main' into refactor-odes
Faezehabibi Dec 10, 2024
9a3ce0e
Merge pull request #88 from Faezehabibi/refactor-odes
rxng8 Dec 10, 2024
da2f24e
Add attribute 'lr' (#90)
Faezehabibi Dec 16, 2024
796178d
commit probes/mods to utils to analysis_tools branch
Mar 1, 2025
84237ff
commit probes/mods to utils to analysis_tools branch
Mar 1, 2025
9d7acbb
update documentation
rxng8 Mar 1, 2025
247de74
cleaned up probes/docs for probes
Mar 1, 2025
d0df86e
change heads_dim to attn_dim, and modify the mlp to be as similar as …
rxng8 Mar 1, 2025
8a36e40
in layer normalization or any other Gaussian, standardeviation can ne…
rxng8 Mar 1, 2025
f402d98
update attentive probe code
rxng8 Mar 1, 2025
2a71b7f
minor tweak to attentive prob code comments
Mar 3, 2025
b688c6c
cleaned up probe parent fit routine
Mar 3, 2025
9ad4ae2
cleaned up probe parent fit routine
Mar 3, 2025
3a2de99
cleaned up probe parent fit routine
Mar 3, 2025
155d830
cleaned up probe parent fit routine
Mar 3, 2025
099c588
minor edits to attn probe
Mar 5, 2025
aeabf61
update attentive probe with input layer norm
rxng8 Mar 5, 2025
8682954
update input layer normalization
rxng8 Mar 6, 2025
dc8c127
update code to fix nan bug
rxng8 Mar 6, 2025
27fd9bf
minor tweak to attn probe
Mar 6, 2025
84005b5
cleaned up probes
Mar 6, 2025
2feeced
cleaned up probes
Mar 6, 2025
56f006c
cleaned up probes
Mar 6, 2025
1b7bff8
cleaned up probes
Mar 6, 2025
f38373f
generalized dropout in terms of shape
Mar 6, 2025
012395b
tweak to atten probe
Mar 6, 2025
53ed773
tweak to atten probe
Mar 6, 2025
1fbbf93
added silu/swish/elu to model_utils
Mar 6, 2025
23e8c84
cleaned up model_utils
Mar 6, 2025
695e9d8
fix bug in attention probe dropout, fix bug in None noise_key passed …
rxng8 Mar 7, 2025
04e1343
hyperparameter tunning arguments added
rxng8 Mar 10, 2025
b3418df
Merge branch 'main' into analysis_tools
rxng8 Mar 11, 2025
ffd8f0e
Merging over Dynamics feature branch to main (#92)
ago109 Mar 12, 2025
2d0452a
Merge branch 'main' into analysis_tools
ago109 Mar 12, 2025
7bfd8ac
remove unused local variables
rxng8 Mar 12, 2025
27ae7e2
update note
rxng8 Mar 12, 2025
92633f9
update model utils
rxng8 Mar 13, 2025
08b4d12
remove notes
rxng8 Mar 13, 2025
8f75b0d
Merge pull request #93 from NACLab/analysis_tools
rxng8 Mar 13, 2025
5664c64
Update ode utils (#94)
Faezehabibi Mar 13, 2025
36e8152
minor fix to header in diffeq
Mar 13, 2025
534ab67
Update files with ode_solver (#95)
Faezehabibi Mar 13, 2025
6e8261e
revised/cleaned up sindy tutorial doc/imgs
Mar 13, 2025
1d15f1f
add prior for hebbian patched synapse (#96)
Faezehabibi Mar 14, 2025
9de3c98
cleaned up doc-strings in odes.py to comply w/ ngc-learn format
Mar 17, 2025
0d720e1
minor tweak to sig-figs printing in probe utils
Mar 17, 2025
b9227f0
add-sigma-to-gaussianErrorCell (#97)
Faezehabibi Mar 20, 2025
4af85dc
cleaned up ode_utils, cleaned up gaussian/laplacian cell
Mar 20, 2025
7f3e7c8
Update gaussianErrorCell.py (#98)
Faezehabibi Mar 21, 2025
e055d95
cleaned up gauss/laplace error cells
Mar 21, 2025
b0b496a
integrated bernoulli err-cell
Mar 21, 2025
bbea397
Major release update merge to main (in prep for 2.0.0 release on rele…
ago109 Apr 12, 2025
54ec2dd
Major release update (to 2.0.0) (#100)
ago109 Apr 12, 2025
86b7189
Major release update merge to main (sync up) (#101)
ago109 Apr 12, 2025
20c81d2
update test cases
rxng8 Apr 12, 2025
e34b5ec
Nudging main v2.0.0 to release stage (formal release) (#102)
ago109 Apr 12, 2025
bbfe622
added hh-plot for hh tutorial
Apr 12, 2025
53a8f7f
Further nudge from main to release (#103)
ago109 Apr 12, 2025
214a6d3
tweak to img folder for sindy
Apr 12, 2025
0b07fff
Merge branch 'release' into main
ago109 Apr 12, 2025
fb5ddc4
update to sindy tutorial to adhere to readthedocs formatting
Apr 13, 2025
d5104ec
Merge branch 'main' of github.com:NACLab/ngc-learn
Apr 13, 2025
c3570de
Minor mods in release sync'd up back to main (#106)
ago109 Apr 13, 2025
061e713
minor edit to h-h text in modeling api doc
Apr 13, 2025
9fd17f1
Update jaxProcess.py
willgebhardt Apr 18, 2025
49bccb5
update to mstdp-et and var-trace
Apr 23, 2025
5396eb3
Merge branch 'main' of github.com:NACLab/ngc-learn
Apr 23, 2025
0182340
minor tweaks + init of rl-snn exhibit lesson
Apr 25, 2025
8f5a650
Dynamic synapses and updates to lessons (including operant conditioni…
ago109 Apr 29, 2025
1fe0d55
fixed exp-syn pytest
Apr 29, 2025
087d32a
Add tutorial diagram for GaussianErrorCells (#107)
Faezehabibi Apr 29, 2025
4d0cdff
Refactor patched synapse (#110)
Faezehabibi May 2, 2025
0419997
Add vis_mode to generate_patch_set (#111)
Faezehabibi May 6, 2025
276fbbb
cleaned up trace
May 22, 2025
a09a3c4
edit to requirements
May 24, 2025
91789a5
rename variables for masking (#112)
Faezehabibi May 29, 2025
cf7ee73
minor cleanup/patches to rate-cell/lif/hebb-syn/trace-stdp and dim_re…
Jun 4, 2025
2d8c6e4
Merge branch 'main' of github.com:NACLab/ngc-learn
Jun 4, 2025
1a8d26c
Updated model_utils.py with Telu (#114)
AnkurMali Jun 5, 2025
2213b7e
fixed v_decay naming bug in LIF
Jun 7, 2025
cf061dd
fixed v_decay naming bug in LIF
Jun 7, 2025
c186902
nudge minor version to 2.0.2
Jun 7, 2025
ffc94a5
nudge of doc to 2.0.2
Jun 7, 2025
08546b7
nudge of doc to 2.0.2 (#115)
ago109 Jun 7, 2025
4b7ed56
minor edit to math in hh-lesson doc
Jun 7, 2025
d85f040
Fix workflow, numpy install, and pytest bug in github action workflow…
rxng8 Jun 7, 2025
d8e52c8
minor nudge/cleanup to minor patched version 2.0.1
Jul 29, 2025
d748570
minor nudge/cleanup to minor patched version 2.0.3
Jul 29, 2025
208f820
Merge branch 'release' of github.com:NACLab/ngc-learn into release
Jul 29, 2025
488ec1e
Merge branch 'release' into main
ago109 Jul 29, 2025
9fd56ea
Nudge of release to minor patched version 2.0.3 (#118)
ago109 Jul 29, 2025
fdb2d98
Merge branch 'release' of github.com:NACLab/ngc-learn into release
Jul 29, 2025
26617aa
fixed typo/error in doc evolving_synapses.md
Jul 30, 2025
09be2fe
Merged back minor doc fix back to main (for syncing purposes) (#119)
ago109 Jul 30, 2025
f72bee8
minor clean-up in model_basics docs
Jul 30, 2025
4ddc60d
minor fixes/cleanup of docs
Jul 30, 2025
45d711c
Merge over further doc edits/clean-up from main (#120)
ago109 Jul 30, 2025
420e336
fixed typo in integration tutorial doc
Jul 30, 2025
75aadda
Minor merge (typo in integration doc) (#121)
ago109 Jul 30, 2025
9ce44f8
updated papers/talk page for ngclearn
Aug 1, 2025
c6547a8
Updated papers/talks page in docs (#122)
ago109 Aug 1, 2025
f658e4b
Merging over v3 to main (for roll-out of v3 upgrade) (#125)
ago109 Dec 6, 2025
1ef50ec
Merge branch 'release' into main
ago109 Dec 6, 2025
03bcf75
Major release update (to 3.0.0) (#127)
ago109 Dec 6, 2025
52e3fba
cleaned up return carriages in ode-integration doc
Dec 6, 2025
91cd96d
update to rbm/harmonium doc
Dec 6, 2025
2d567be
sync up release with main for harmonium/images
Dec 6, 2025
710d8b1
updated leaky-noise-cell to maintain temporal derivative of state
Dec 8, 2025
a8b156a
minor revisons/updates to hebb/dense syn, metric utils
Dec 8, 2025
f72a063
cleaned-up/revised leaky-noise-cell
Dec 8, 2025
d5b350a
cleaned-up/revised leaky-noise-cell
Dec 8, 2025
3c1fa61
Merge branch 'release' into main
ago109 Dec 8, 2025
054619b
Minor nudge to v3.0.1 (#129)
ago109 Dec 8, 2025
242f699
nudge release to v3.0.1
Dec 8, 2025
e15adc2
Merge back release nudge to main (sync to v3.0.1) (#130)
ago109 Dec 8, 2025
06cec92
minor revision of leaky-noise-cell
Dec 8, 2025
4a17152
Merge branch 'main' into release
ago109 Dec 8, 2025
b300492
Sync up of main with release (#131)
ago109 Dec 8, 2025
63a4e98
added pointer/stub for ei-rnn song-et-al in museum doc
Dec 8, 2025
71ad065
Move over minor update to main docs to release docs (#132)
ago109 Dec 8, 2025
1d70611
update to ei-rnn doc
Dec 8, 2025
0e0d324
Merge branch 'release' into main
ago109 Dec 8, 2025
4ed1d8f
update to ei-rnn arch fig
Dec 9, 2025
2b418c1
Merge branch 'main' of github.com:NACLab/ngc-learn
Dec 9, 2025
009ab50
added log-gaussian initializer to distribution_generator
Dec 9, 2025
b0a4193
bug-fix to log-gaussian func
Dec 9, 2025
2e2dd5e
Refactor patch utility functions and add doc strings (#136)
Faezehabibi Dec 13, 2025
3f848a8
Rao1999 hpc (#135)
Faezehabibi Dec 13, 2025
16f4293
fixed minor errors in pc-rao doc
Dec 13, 2025
d21e1a5
made revisions to pc-rao doc
Dec 13, 2025
40ac018
mod to pc-rao doc
Dec 13, 2025
07b36a4
update to docs
Dec 23, 2025
01fec02
minor revision to h-h doc-string
Dec 29, 2025
1ecadf8
added lkwta utility
Jan 9, 2026
eb89be5
Add retinal ganglion cell input encoder (#137)
Faezehabibi Jan 24, 2026
2fd70fc
Refactor patch synapse (#138)
Faezehabibi Jan 24, 2026
4f434f1
feat: Integrate MPSSynapse Component (#140)
antonvice Mar 16, 2026
79d2aab
integrated working som-synapse into competitive sub-package for synapses
Mar 21, 2026
970cb74
cleaned up som-syn
Mar 21, 2026
59afc24
update test code for hebbian patch synapse
rxng8 Mar 22, 2026
e9e6c75
fix SOM Synapse bug
rxng8 Mar 27, 2026
a9cf886
Flexible batch size (#142)
Faezehabibi Mar 31, 2026
4c355a8
cleaned up graded/patched comps with inner batched_reset formulation
Mar 31, 2026
969bb1b
minor clean-up of som-syn
Mar 31, 2026
64eb27d
claned up ganglion-cell, added batched_reset
Mar 31, 2026
1569e31
minor cleanup
Apr 1, 2026
dbd1029
added working hopfield-syn/modern-hopfield-syn
Apr 4, 2026
d6b1ecf
update SOM synapse to batchified version
rxng8 Apr 5, 2026
1362b11
integrated prototype for vector-quantize memory model/synapse
Apr 5, 2026
49ce5b9
wrote/integrated an ART2A synapse model, batch-generalized
Apr 5, 2026
be47ab0
updates to art2a, cleanup of probes
Apr 6, 2026
e1773db
updates to art2a, cleanup of probes
Apr 6, 2026
5097184
added in knn-probe for utils.analysis
Apr 6, 2026
d21fc65
cleaned up vq-synapse
Apr 7, 2026
ef8627a
cleaned up vq-synapse
Apr 7, 2026
6b78909
tweaked/cleaned-up gaussian-error-cell
Apr 15, 2026
5eb6180
Update JaxProcessesMixin.py
willgebhardt Apr 26, 2026
46fd684
minor patch fixes, including making .mask a compartment in key syn
Apr 28, 2026
3660cba
patch to bernoulli/latency and wtas cells
Apr 29, 2026
6386e71
update reset function of the ganglion cell
rxng8 May 1, 2026
c89c245
minor mod to model_utils
May 1, 2026
8a7b3f5
docs now with a few more mods
May 1, 2026
c802473
Merge branch 'dev' into main
ago109 May 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
32 changes: 13 additions & 19 deletions .github/workflows/python-package-conda.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,25 +10,19 @@ jobs:

steps:
- uses: actions/checkout@v4
- name: Set up Python 3.10
uses: actions/setup-python@v3

- name: Install Miniconda
uses: conda-incubator/setup-miniconda@v2
with:
python-version: '3.10'
- name: Add conda to system path
auto-update-conda: true
python-version: 3.11
environment-name: test

- name: Install dependencies
run: |
# $CONDA is an environment variable pointing to the root of the miniconda directory
echo $CONDA/bin >> $GITHUB_PATH
- name: Install current library and dependencies
run: |
pip install -e .
# - name: Lint with flake8
# run: |
# conda install flake8
# # stop the build if there are Python syntax errors or undefined names
# flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
# # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
# flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
- name: Test with pytest
conda install -n test numpy=1.26 pytest pip
conda run -n test pip install -e .

- name: Run tests
run: |
conda install pytest
pytest
conda run -n test pytest
10 changes: 6 additions & 4 deletions AUTHORS
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,14 @@
# The email address is not required for organizations.

Core Team
Alexander Ororbia <ago@cs.rit.edu>
William Gebhardt <wdg1351@rit.edu>
Viet Dung Nguyen <vn1747@rit.edu>
Ankur Mali <aam35@psu.edu>
Alexander Ororbia <agocse109@gmail.com>
William Gebhardt <wdg1351@g.rit.edu>
Viet Dung Nguyen <vn1747@g.rit.edu>
Ankur Mali <ankurmali07@gmail.com>
Faeze Habibi <habibifaeze.66@gmail.com>

Contributors
Maxbeth2 (Ohas)
pagrawal-psu
pulinagrawal
antonvice
4 changes: 3 additions & 1 deletion CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,12 @@ authors:
orcid: https://orcid.org/0000-0002-2590-1310
- family-names: Gebhardt
given-names: William
orcid: https://orcid.org/0009-0008-7456-6556
- family-names: Mali
given-names: Ankur
orcid: https://orcid.org/0000-0001-5813-3584
title: "ngc-learn"
version: 1.0.0
version: 3.0.0
identifiers:
- type: doi
value: 10.5281/zenodo.6605728
Expand Down
22 changes: 9 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,15 @@

<img src="docs/images/ngc-learn-logo.png" width="300">

<b>ngc-learn</b> 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.
<b>ngc-learn</b> is a Python library for building, simulating, and analyzing biophysical / neurobiological systems, spiking neuronal networks, predictive coding circuitry, and biomimetic (NeuroAI) agents that learn in a biologically-plausible manner. This simulation toolkit, meant to support computational neuroscience and brain-inspired computing research, is built on top of JAX and is distributed under the 3-Clause BSD license.

It is currently maintained by the
<a href="https://www.cs.rit.edu/~ago/nac_lab.html">Neural Adaptive Computing (NAC) laboratory</a>.

## <b>Documentation</b>

Official documentation, including tutorials, can be found
<a href="https://ngc-learn.readthedocs.io/en/latest/#">here</a>. The model museum repo,
<a href="https://ngc-learn.readthedocs.io/en/latest/#">here</a>. The model museum repo (ngc-museum),
which implements several historical models, can be found
<a href="https://github.com/NACLab/ngc-museum">here</a>.

Expand All @@ -34,10 +30,10 @@ chosen as one of the <i>Editors' Highlights for Applied Physics and Mathematics<

ngc-learn requires:
1) Python (>=3.10)
2) NumPy (>=1.26.0)
2) NumPy (>=1.22.0)
3) SciPy (>=1.7.0)
4) ngcsimlib (>=0.3.b2), (visit official page <a href="https://github.com/NACLab/ngc-sim-lib">here</a>)
5) JAX (>= 0.4.18) (to enable GPU use, make sure to install one of the CUDA variants)
4) ngcsimlib (>=3.0.0), (visit official page <a href="https://github.com/NACLab/ngc-sim-lib">here</a>)
5) JAX (>=0.4.28) (to enable GPU use, make sure to install one of the CUDA variants)
<!--
5) scikit-learn (>=1.3.1) if using `ngclearn.utils.density`
6) matplotlib (>=3.4.3) if using `ngclearn.utils.viz`
Expand All @@ -46,7 +42,7 @@ ngc-learn requires:
-->

---
ngc-learn 1.2.beta0 and later require Python 3.10 or newer as well as ngcsimlib >=0.3.b3.
ngc-learn 3.0.0 and later require Python 3.10 or newer as well as ngcsimlib >=3.0.0.
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).
Expand All @@ -66,7 +62,7 @@ running the above pip command if you want to use the GPU version.

The documentation includes more detailed
<a href="https://ngc-learn.readthedocs.io/en/latest/installation.html">installation instructions</a>.
Note that this library was developed on Ubuntu 20.04 and tested on Ubuntu(s) 18.04 and 20.04.
Note that this library was developed on Ubuntu 20.04/22.04 and tested on Ubuntu(s) 20.04 and 22.04.

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
Expand All @@ -79,7 +75,7 @@ Python 3.11.4 (main, MONTH DAY YEAR, TIME) [GCC XX.X.X] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import ngclearn
>>> ngclearn.__version__
'1.2b1'
'3.0.0'
```

<i>Note:</i> For access to the previous Tensorflow-2 version of ngc-learn (of
Expand Down Expand Up @@ -126,7 +122,7 @@ $ python install -e .
</pre>

**Version:**<br>
1.2.1-Beta <!-- -Alpha -->
3.0.1 <!--1.2.3-Beta--> <!-- -Alpha -->

Author:
Alexander G. Ororbia II<br>
Expand Down
2 changes: 1 addition & 1 deletion docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@
html_logo = "images/ngc-learn-logo.png"
html_theme_options = {
'logo_only': True,
'display_version': True,
#'display_version': True,
}

# def setup(app):
Expand Down
Binary file added docs/images/museum/ei_rnn/ei_rnn_arch.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/museum/harmonium/rbm_arch.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/museum/harmonium/rbm_recon.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/museum/harmonium/samples_0.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/museum/harmonium/samples_1.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/museum/harmonium/samples_2.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/museum/hgpc/GEC.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/museum/hgpc/HGPC_inputL.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/museum/hgpc/Input_layer.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/museum/hgpc/hgpc_model.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/museum/hgpc/patch_input.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/museum/rat_accuracy.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/museum/rat_rewards.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/museum/ratmaze.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/museum/real_ratmaze.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/museum/sindy/C2D.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/museum/sindy/L2D.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/museum/sindy/L3D.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/museum/sindy/LSQ.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/museum/sindy/Lorenz3D.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/museum/sindy/Masking.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/museum/sindy/O3D.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/museum/sindy/P1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/museum/sindy/P2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/museum/sindy/SR.png
Binary file added docs/images/museum/sindy/SRin.png
Binary file added docs/images/museum/sindy/STLSQ.png
Binary file added docs/images/museum/sindy/Theta.png
Binary file added docs/images/museum/sindy/Thresholding.png
Binary file added docs/images/museum/sindy/X_.png
Binary file added docs/images/museum/sindy/X_dX_.png
Binary file added docs/images/museum/sindy/Xtheta.png
Binary file added docs/images/museum/sindy/cubic_2D.png
Binary file added docs/images/museum/sindy/dX_.png
Binary file added docs/images/museum/sindy/d_xyz.png
Binary file added docs/images/museum/sindy/dx.png
Binary file added docs/images/museum/sindy/dy.png
Binary file added docs/images/museum/sindy/dz.png
Binary file added docs/images/museum/sindy/flow.png
Binary file added docs/images/museum/sindy/flow_SR.png
Binary file added docs/images/museum/sindy/flow_full.jpg
Binary file added docs/images/museum/sindy/iterin.png
Binary file added docs/images/museum/sindy/linear_2D.png
Binary file added docs/images/museum/sindy/linear_3D.png
Binary file added docs/images/museum/sindy/lorenz.png
Binary file added docs/images/museum/sindy/oscillator.png
Binary file added docs/images/museum/sindy/sindy.png
Binary file added docs/images/museum/sindy/xdx.png
Binary file added docs/images/tutorials/neurocog/GEC.png
Binary file added docs/images/tutorials/neurocog/SingleGEC.png
Binary file added docs/images/tutorials/neurocog/alphasyn.jpg
Binary file added docs/images/tutorials/neurocog/exp2syn.jpg
Binary file added docs/images/tutorials/neurocog/expsyn.jpg
Binary file added docs/images/tutorials/neurocog/gmm_fit.jpg
Binary file added docs/images/tutorials/neurocog/gmm_samples.jpg
Binary file added docs/images/tutorials/neurocog/hh_plot.jpg
9 changes: 4 additions & 5 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,7 @@
Welcome to ngc-learn's documentation!
=====================================

**ngc-learn** is a Python library for building, simulating, and analyzing
biomimetic computational models, arbitrary predictive processing/coding models,
and spiking neural networks. This toolkit is built on top of
`JAX <https://github.com/google/jax>`_ and is distributed under the 3-Clause BSD license.
**ngc-learn** is a Python library for building, simulating, and analyzing biomimetic and NeuroAI computational models, arbitrary predictive processing/coding models, spiking neural networks, and general dynamical systems. This toolkit is built on top of `JAX <https://github.com/google/jax>`_ and is distributed under the 3-Clause BSD license.

.. toctree::
:maxdepth: 1
Expand All @@ -23,6 +20,7 @@ and spiking neural networks. This toolkit is built on top of

tutorials/intro
tutorials/theory
tutorials/configuration/index
tutorials/index
tutorials/neurocog/index

Expand Down Expand Up @@ -52,9 +50,10 @@ and spiking neural networks. This toolkit is built on top of

.. toctree::
:maxdepth: 1
:caption: Papers that use NGC-Learn
:caption: NGC-Learn Papers & Media

ngclearn_papers
ngclearn_talks

Indices and tables
==================
Expand Down
65 changes: 20 additions & 45 deletions docs/installation.md
Original file line number Diff line number Diff line change
@@ -1,65 +1,41 @@
# Installation

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

<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 (and 18.04).
Specifically, ngc-learn requires:
<i>Setup:</i> <a href="https://github.com/NACLab/ngc-learn">NGC-Learn</a>, in its entirety (including its supporting utility sub-packages), 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).
Specifically, NGC-Learn requires:
* Python (>=3.10)
* ngcsimlib (>=0.3.b3), (<a href="https://github.com/NACLab/ngc-sim-lib">official page</a>)
* NumPy (>=1.26.0)
* ngcsimlib (>=3.0.0), (<a href="https://github.com/NACLab/ngc-sim-lib">official page</a>)
* NumPy (>=1.22.0)
* SciPy (>=1.7.0)
* JAX (>= 0.4.18; and jaxlib>=0.4.18) <!--(tested for cuda 11.8)-->
* Matplotlib (>=3.4.2), (for `ngclearn.utils.viz`)
* Scikit-learn (>=1.3.1), (for `ngclearn.utils.patch_utils` and `ngclearn.utils.density`)
* JAX (>= 0.4.28; and jaxlib>=0.4.28) <!--(tested for cuda 11.8)-->
* Matplotlib (>=3.8.0), (for `ngclearn.utils.viz`)
* Scikit-learn (>=1.6.1), (for `ngclearn.utils.patch_utils` and `ngclearn.utils.density`)

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 installed currently) via
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:
```console
$ pip install ngclearn
```

or install the GPU version of ngc-learn by first installing the
<a href="https://jax.readthedocs.io/en/latest/installation.html">CUDA 11 or 12
version of JAX</a> before running the above pip command.
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.

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

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).
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).

## Install from Source

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

1. Clone the ngc-learn repository:
2. Clone the NGC-Learn repository:
```console
$ git clone https://github.com/NACLab/ngc-learn.git
$ cd ngc-learn
```

2. (<i>Optional</i>; only for GPU version) Install JAX for either CUDA 11 or 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.
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.

<!--
3. (<i>Optional</i>) Install, a pre-package installation step (for only the
non-ngclearn dependencies), the base requirements (and a few extras for building
the docs) with:
```console
$ pip install -r requirements.txt
```
-->

3. Install the ngc-learn package via:
4. Install the NGC-Learn package via:
```console
$ pip install .
```
Expand All @@ -68,22 +44,21 @@ or, to install as an editable install for development, run:
$ pip install -e .
```

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>
<!--<img src="images/test_ngclearn_install.png" width="512">-->
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>

```console
Python 3.11.4 (main, MONTH DAY YEAR, TIME) [GCC XX.X.X] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import ngclearn
>>> ngclearn.__version__
'1.2b1'
'3.0.1'
```

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

15 changes: 15 additions & 0 deletions docs/modeling/input_encoders.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,3 +71,18 @@ whereas lower intensity values yield later firing times.
.. automethod:: reset
:noindex:
```

### Phasor Cell

This cell takes a real-valued pattern(s) and transforms it on-the-fly to
a spike train composed of pulses emitted a regular interval.

```{eval-rst}
.. autoclass:: ngclearn.components.PhasorCell
:noindex:

.. automethod:: advance_state
:noindex:
.. automethod:: reset
:noindex:
```
Loading
Loading