Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
d59e9bd
Merge pull request #156 from NACLab/release
ago109 Jun 9, 2026
1a0d96f
minor edits
Jun 9, 2026
0fd7f35
Fixed evolve and update bugs in model basics tutorial 3
JackForeback Jun 15, 2026
9c5034d
Merge pull request #157 from JackForeback/bugfix
ago109 Jun 16, 2026
8fbe8e2
updates to gerstner syn, data-loader
Jun 20, 2026
8bb2dc7
Merge branch 'main' of github.com:NACLab/ngc-learn
Jun 20, 2026
867ca15
clean-up and integration of lif/raf-SRMs
Jun 22, 2026
303bed7
fixed broken link in pc_rao_ballard_1999.md
JackForeback Jun 25, 2026
873d2c6
Merge pull request #158 from JackForeback/bugfix
ago109 Jun 25, 2026
b8898d5
minor cleanup/edits to srm predictor co-routines
Jun 25, 2026
ca5461c
updated breadth of tuning-curve metric
Jun 26, 2026
258fec1
Fix d_swish() function
Faezehabibi Jun 26, 2026
f36e285
Fix d_swish() function
Faezehabibi Jun 26, 2026
5fbb76a
Merge pull request #159 from Faezehabibi/minor-change-to-d_swish()-fu…
ago109 Jun 26, 2026
44419d0
integrated ttfs-cell encoder
Jun 29, 2026
166c3cf
added surrogate dfx support for lif/dense-syn
Jun 30, 2026
18c53ff
fixed surrogate estimators + added box-car estimator
Jun 30, 2026
4a4f856
fixed surrogate estimators + added box-car estimator
Jun 30, 2026
65a6f37
Implement save and load for optimizer parameters
Faezehabibi Jul 6, 2026
03213ca
Merge pull request #161 from Faezehabibi/add-load-and-save-to-Patched…
ago109 Jul 7, 2026
daec93d
tweaked participate-ratio, eff-dim tools; update to ttfs
Jul 7, 2026
aa7b060
Merge branch 'main' of github.com:NACLab/ngc-learn
Jul 7, 2026
3d8e4f5
deprecated resist_scale arg in synapses for g_conduct_factor, since t…
Jul 10, 2026
5689440
Fix gradient update calculation in Hebbian synapse
Faezehabibi Jul 13, 2026
f7b27f0
Merge pull request #162 from Faezehabibi/fix-HebbianPatchSynapse-regu…
ago109 Jul 14, 2026
88e773d
integrated iSTDP into hebbian-plasticity rule-set
Jul 17, 2026
fc68df3
minor edits/fix to metric_utils
Jul 18, 2026
ee6e5c6
integrated pearson correlation, added stochastic transmission to syna…
Jul 21, 2026
c8dd28a
added stochastic synaptic transmission and pre-synaptic delay support…
Jul 25, 2026
bc07331
added stochastic synaptic transmission and pre-synaptic delay support…
Jul 25, 2026
0f85161
minor cleanup of dense/istdp syn
Jul 25, 2026
9fcf34b
added multihot value sample function to model_utils
Jul 25, 2026
6c7ce8d
Refactor participation_ratio and rankme functions
Faezehabibi Aug 4, 2026
d14afd3
Add diag_offdiag method for matrix generation
Faezehabibi Aug 6, 2026
bcc9920
add RateCell with lateral synapse
Faezehabibi Aug 6, 2026
9380ceb
Change sign_value from -1 to 1 in rateCell.py
Faezehabibi Aug 6, 2026
126a653
Merge pull request #163 from Faezehabibi/fix
ago109 Aug 7, 2026
83ec13e
Merge pull request #164 from Faezehabibi/add-lateral-synapse-to-RateC…
ago109 Aug 7, 2026
489b861
update rankme function
Faezehabibi Aug 13, 2026
bf0c038
add verbose argument
Faezehabibi Aug 13, 2026
fa388ba
refactor constraint enforcement in HebbianPatchedSynapse
Faezehabibi Aug 13, 2026
75476fe
Merge pull request #165 from Faezehabibi/fix-final-checks
ago109 Aug 14, 2026
aa000c5
mods/minor tweaks
Aug 14, 2026
b2bea49
integrated lc-sparse synapse cable
Aug 14, 2026
bf6f6a5
clean-up, docs ready for nudge to v3.2.0
Aug 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ ngc-learn requires:
1) Python (>=3.10)
2) NumPy (>=1.22.0)
3) SciPy (>=1.7.0)
4) ngcsimlib (>=3.0.0), (visit official page <a href="https://github.com/NACLab/ngc-sim-lib">here</a>)
4) ngcsimlib (>=3.1.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`
Expand All @@ -39,7 +39,7 @@ ngc-learn requires:
-->

---
ngc-learn 3.1.0 and later require Python 3.10 or newer as well as ngcsimlib >=3.0.0.
ngc-learn 3.2.0 and later require Python 3.10 or newer as well as ngcsimlib >=3.1.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 Down Expand Up @@ -72,7 +72,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__
'3.1.0'
'3.2.0'
```

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

**Version:**<br>
3.1.1 <!--1.2.3-Beta--> <!-- -Alpha -->
3.2.0 <!--1.2.3-Beta--> <!-- -Alpha -->

Author:
Alexander G. Ororbia II<br>
Expand Down
2 changes: 1 addition & 1 deletion docs/museum/pc_rao_ballard1999.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ In this exhibit, we create, simulate, and visualize the internally acquired rece
model originally proposed in (Rao &amp; Ballard, 1999) [1].

The model code for this exhibit can be found
[here](https://github.com/NACLab/ngc-museum/tree/main/exhibits/pc_recon).
[here](https://github.com/NACLab/ngc-museum/tree/main/exhibits/pc_reconstruction).

## Setting Up Hierarchical Predictive Coding (HPC) with NGC-Learn

Expand Down
32 changes: 8 additions & 24 deletions docs/source/ngclearn.components.input_encoders.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,14 @@ ngclearn.components.input\_encoders package
Submodules
----------

ngclearn.components.input\_encoders.TTFSCell module
---------------------------------------------------

.. automodule:: ngclearn.components.input_encoders.TTFSCell
:members:
:undoc-members:
:show-inheritance:

ngclearn.components.input\_encoders.bernoulliCell module
--------------------------------------------------------

Expand All @@ -20,14 +28,6 @@ ngclearn.components.input\_encoders.ganglionCell module
:undoc-members:
:show-inheritance:

ngclearn.components.input\_encoders.gridCell module
---------------------------------------------------

.. automodule:: ngclearn.components.input_encoders.gridCell
:members:
:undoc-members:
:show-inheritance:

ngclearn.components.input\_encoders.latencyCell module
------------------------------------------------------

Expand All @@ -44,14 +44,6 @@ ngclearn.components.input\_encoders.phasorCell module
:undoc-members:
:show-inheritance:

ngclearn.components.input\_encoders.placeCell module
----------------------------------------------------

.. automodule:: ngclearn.components.input_encoders.placeCell
:members:
:undoc-members:
:show-inheritance:

ngclearn.components.input\_encoders.poissonCell module
------------------------------------------------------

Expand All @@ -60,14 +52,6 @@ ngclearn.components.input\_encoders.poissonCell module
:undoc-members:
:show-inheritance:

ngclearn.components.input\_encoders.populationCoderCell module
--------------------------------------------------------------

.. automodule:: ngclearn.components.input_encoders.populationCoderCell
:members:
:undoc-members:
:show-inheritance:

Module contents
---------------

Expand Down
16 changes: 16 additions & 0 deletions docs/source/ngclearn.components.neurons.spiking.rst
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,14 @@ ngclearn.components.neurons.spiking.LIFCell module
:undoc-members:
:show-inheritance:

ngclearn.components.neurons.spiking.LIFSRM module
-------------------------------------------------

.. automodule:: ngclearn.components.neurons.spiking.LIFSRM
:members:
:undoc-members:
:show-inheritance:

ngclearn.components.neurons.spiking.RAFCell module
--------------------------------------------------

Expand All @@ -28,6 +36,14 @@ ngclearn.components.neurons.spiking.RAFCell module
:undoc-members:
:show-inheritance:

ngclearn.components.neurons.spiking.RAFSRM module
-------------------------------------------------

.. automodule:: ngclearn.components.neurons.spiking.RAFSRM
:members:
:undoc-members:
:show-inheritance:

ngclearn.components.neurons.spiking.WTASCell module
---------------------------------------------------

Expand Down
8 changes: 0 additions & 8 deletions docs/source/ngclearn.components.synapses.competitive.rst
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,6 @@ ngclearn.components.synapses.competitive.hopfieldSynapse module
:undoc-members:
:show-inheritance:

ngclearn.components.synapses.competitive.simple\_ART2ASynapse module
--------------------------------------------------------------------

.. automodule:: ngclearn.components.synapses.competitive.simple_ART2ASynapse
:members:
:undoc-members:
:show-inheritance:

ngclearn.components.synapses.competitive.vectorQuantizeSynapse module
---------------------------------------------------------------------

Expand Down
8 changes: 8 additions & 0 deletions docs/source/ngclearn.components.synapses.hebbian.rst
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,14 @@ ngclearn.components.synapses.hebbian.hebbianSynapse module
:undoc-members:
:show-inheritance:

ngclearn.components.synapses.hebbian.inhibitorySTDPSynapse module
-----------------------------------------------------------------

.. automodule:: ngclearn.components.synapses.hebbian.inhibitorySTDPSynapse
:members:
:undoc-members:
:show-inheritance:

ngclearn.components.synapses.hebbian.traceSTDPSynapse module
------------------------------------------------------------

Expand Down
16 changes: 16 additions & 0 deletions docs/source/ngclearn.components.synapses.rst
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,22 @@ ngclearn.components.synapses.mpsSynapse module
:undoc-members:
:show-inheritance:

ngclearn.components.synapses.sparseTensorSynapse module
-------------------------------------------------------

.. automodule:: ngclearn.components.synapses.sparseTensorSynapse
:members:
:undoc-members:
:show-inheritance:

ngclearn.components.synapses.staticSparseTensorSynapse module
-------------------------------------------------------------

.. automodule:: ngclearn.components.synapses.staticSparseTensorSynapse
:members:
:undoc-members:
:show-inheritance:

ngclearn.components.synapses.staticSynapse module
-------------------------------------------------

Expand Down
11 changes: 7 additions & 4 deletions docs/tutorials/model_basics/evolving_synapses.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,13 +46,16 @@ with Context("Circuit") as circuit:

## create and compile core simulation commands
evolve = (MethodProcess("evolve")
>> a.evolve)
>> Wab.evolve)

advance = (MethodProcess("advance")
>> a.advance_state)
>> a.advance_state
>> Wab.advance_state
>> b.advance_state)

reset = (MethodProcess("reset")
>> a.reset)
>> a.reset
>> b.reset)

## set up non-compiled utility commands
def clamp(x):
Expand All @@ -67,7 +70,7 @@ and evolve the synapse every time step like so:
x_seq = jnp.asarray([[1, 1, 0, 0, 1]], dtype=jnp.float32)

reset.run()
print("{}: Wab = {}".format(-1, Wab.weights.value))
print("{}: Wab = {}".format(-1, Wab.weights.get()))
for ts in range(x_seq.shape[1]):
x_t = jnp.expand_dims(x_seq[0,ts], axis=0) ## get data at time t
clamp(x_t)
Expand Down
17 changes: 11 additions & 6 deletions history.txt
Original file line number Diff line number Diff line change
Expand Up @@ -103,10 +103,15 @@ History

3.1.1
— — — — — — — — -
* Several patches and fixes (ensured certain error-neurons behaved as in v3.0.0)
* Update to docs/revisions
* Integration of filters/filtering functionality (including simple divisive normalization) in utilities
* Integration of several useful metrics (including for characterizing sparsity)
* Some additional clean-up throughout

* several patches and fixes (ensured certain error-neurons behaved as in v3.0.0)
* ipdate to docs/revisions
* integration of filters/filtering functionality (including simple divisive normalization) in utilities
* integration of several useful metrics (including for characterizing sparsity)
* some additional clean-up throughout

3.2.0
— — — — — — — — -
* various fixes/patches as well as clean-up/minor tweaks to utils/core components
* integration of additional visualization tools
* integration of sparse-tensor synaptic cable (locally-connected/unshared-convolutional structure)
* additional component integration/revisions, including updates to patched-synaptic cable components
7 changes: 7 additions & 0 deletions ngclearn/components/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@
from .neurons.spiking.izhikevichCell import IzhikevichCell
from .neurons.spiking.hodgkinHuxleyCell import HodgkinHuxleyCell
from .neurons.spiking.RAFCell import RAFCell
## point to standard spiking spike-response model component types
from .neurons.spiking.LIFSRM import LIFSRM
from .neurons.spiking.RAFSRM import RAFSRM

## point to transformer/operator component types
from .other.varTrace import VarTrace
Expand All @@ -30,19 +33,23 @@
from .input_encoders.ganglionCell import RetinalGanglionCell
from .input_encoders.latencyCell import LatencyCell
from .input_encoders.phasorCell import PhasorCell
from .input_encoders.TTFSCell import TTFSCell
#from .input_encoders.populationCoderCell import PopulationCoderCell
#from .input_encoders.gridCell import GridCell
#from .input_encoders.placeCell import PlaceCell

## point to synapse component types
from .synapses.denseSynapse import DenseSynapse
from .synapses.staticSynapse import StaticSynapse
from .synapses.sparseTensorSynapse import SparseTensorSynapse
from .synapses.staticSparseTensorSynapse import StaticSparseTensorSynapse
from .synapses.hebbian.hebbianSynapse import HebbianSynapse
from .synapses.hebbian.STDPSynapse import STDPSynapse
from .synapses.hebbian.traceSTDPSynapse import TraceSTDPSynapse
from .synapses.hebbian.expSTDPSynapse import ExpSTDPSynapse
from .synapses.hebbian.eventSTDPSynapse import EventSTDPSynapse
from .synapses.hebbian.BCMSynapse import BCMSynapse
from .synapses.hebbian.inhibitorySTDPSynapse import InhibitorySTDPSynapse
from .synapses.competitive.SOMSynapse import SOMSynapse
from .synapses.STPDenseSynapse import STPDenseSynapse
from .synapses.exponentialSynapse import ExponentialSynapse
Expand Down
Loading
Loading