diff --git a/README.md b/README.md index 511cef621..a4be67684 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![Go Report Card](https://goreportcard.com/badge/github.com/emer/axon)](https://goreportcard.com/report/github.com/emer/axon) [![GoDoc](https://godoc.org/github.com/emer/axon?status.svg)](https://godoc.org/github.com/emer/axon) -[![codecov](https://codecov.io/gh/emer/axon/branch/master/graph/badge.svg)](https://codecov.io/gh/emer/axon) +[![codecov](https://codecov.io/gh/emer/axon/branch/main/graph/badge.svg)](https://codecov.io/gh/emer/axon) ![CI](https://github.com/emer/axon/actions/workflows/build.yml/badge.svg?branch=master) This is the Go implementation of the Axon algorithm for spiking, biologically based models of cognition, based on the [emergent](https://github.com/emer/emergent) framework. Development of Axon is supported by the Obelisk project at https://astera.org/ and by collaborations with scientists at the University of California Davis, and other institutions around the world. @@ -156,7 +156,7 @@ Axon is the spiking version of [Leabra](https://github.com/emer/leabra), which u You can copy the markdown source of this README into a file, and run [pandoc](https://pandoc.org/) on it to convert to LaTeX (or other formats) for inclusion in a paper. As this page is always kept updated, it is best to regenerate from this source -- very easy: ```bash -curl "https://raw.githubusercontent.com/emer/axon/master/README.md" -o appendix.md +curl "https://raw.githubusercontent.com/emer/axon/main/README.md" -o appendix.md pandoc appendix.md -f gfm -t latex -o appendix.tex ``` diff --git a/examples/attn_trn/attn.go b/examples/attn_trn/attn.go index ff4886d64..30c933257 100644 --- a/examples/attn_trn/attn.go +++ b/examples/attn_trn/attn.go @@ -928,7 +928,7 @@ func (ss *Sim) ConfigGUI() *core.Window { height := 1200 core.SetAppName("attn") - core.SetAppAbout(`attn: This simulation illustrates how object recognition (ventral, what) and spatial (dorsal, where) pathways interact to produce spatial attention effects, and accurately capture the effects of brain damage to the spatial pathway. See README.md on GitHub.
`) + core.SetAppAbout(`attn: This simulation illustrates how object recognition (ventral, what) and spatial (dorsal, where) pathways interact to produce spatial attention effects, and accurately capture the effects of brain damage to the spatial pathway. See README.md on GitHub.`) win := core.NewMainWindow("attn", "Attention", width, height) ss.Win = win @@ -1023,9 +1023,9 @@ func (ss *Sim) ConfigGUI() *core.Window { vp.SetNeedsFullRender() }) - tbar.AddAction(core.ActOpts{Label: "README", Icon: "file-markdown", Tooltip: "Opens your browser on the README file that contains instructions for how to run this model."}, win.This(), + tbar.AddAction(core.ActOpts{Label: "README", Icon: icons.FileMarkdown, Tooltip: "Opens your browser on the README file that contains instructions for how to run this model."}, win.This(), func(recv, send tree.Node, sig int64, data interface{}) { - core.TheApp.OpenURL("https://github.com/emer/axon/blob/master/examples/attn_trn/README.md") + core.TheApp.OpenURL("https://github.com/emer/axon/blob/main/examples/attn_trn/README.md") }) vp.UpdateEndNoSig(updt) diff --git a/examples/choose/choose.go b/examples/choose/choose.go index 81a892b58..3a44755ac 100644 --- a/examples/choose/choose.go +++ b/examples/choose/choose.go @@ -1398,7 +1398,7 @@ func (ss *Sim) ConfigGUI() { }, }) ss.GUI.AddToolbarItem(p, egui.ToolbarItem{Label: "README", - Icon: "file-markdown", + Icon: icons.FileMarkdown, Tooltip: "Opens your browser on the README file that contains instructions for how to run this model.", Active: egui.ActiveAlways, Func: func() { diff --git a/examples/deep_fsa/deep_fsa.go b/examples/deep_fsa/deep_fsa.go index 7d1a4fd33..f29bf5177 100644 --- a/examples/deep_fsa/deep_fsa.go +++ b/examples/deep_fsa/deep_fsa.go @@ -658,11 +658,11 @@ func (ss *Sim) ConfigGUI() { }, }) ss.GUI.AddToolbarItem(p, egui.ToolbarItem{Label: "README", - Icon: "file-markdown", + Icon: icons.FileMarkdown, Tooltip: "Opens your browser on the README file that contains instructions for how to run this model.", Active: egui.ActiveAlways, Func: func() { - core.TheApp.OpenURL("https://github.com/emer/axon/blob/master/examples/deep_fsa/README.md") + core.TheApp.OpenURL("https://github.com/emer/axon/blob/main/examples/deep_fsa/README.md") }, }) }) diff --git a/examples/deep_move/README.md b/examples/deep_move/README.md index ff532dd41..e8463b6b1 100644 --- a/examples/deep_move/README.md +++ b/examples/deep_move/README.md @@ -1,6 +1,6 @@ # deep_move -This example tests the `deep` predictive learning model on predicting the effects of moving within a first-person depth-map view of an agent moving within a simple square-shaped environment. There are two predictions that are updated: head direction relative to some kind of "north" compass direction, which changes with rotations, and a depth map to the walls, encoded using a population code for each of N angles within an overall field of view (FOV). This uses a simplified version of the [Flat World](https://github.com/emer/envs/tree/master/fworld) environment, and this project serves as an testing and optimization platform for the larger [Emery Map Nav](https://github.com/ccnlab/map-nav/tree/master/sims/emery2) model. +This example tests the `deep` predictive learning model on predicting the effects of moving within a first-person depth-map view of an agent moving within a simple square-shaped environment. There are two predictions that are updated: head direction relative to some kind of "north" compass direction, which changes with rotations, and a depth map to the walls, encoded using a population code for each of N angles within an overall field of view (FOV). This uses a simplified version of the [Flat World](https://github.com/emer/envs/tree/main/fworld) environment, and this project serves as an testing and optimization platform for the larger [Emery Map Nav](https://github.com/ccnlab/map-nav/tree/main/sims/emery2) model. The parameters that work well for `deep_music` don't work here at all, for reasons that make sense: https://github.com/emer/axon/discussions/61 This model requires short time scale integration (i.e., Markovian, one-step history) and local, topographic connectivity to process different depth ranges and angle positions independently. A fully connected hidden layer does not work at all: it tries to process the depth map wholistically, and that just doesn't work. diff --git a/examples/deep_move/deep_move.go b/examples/deep_move/deep_move.go index 3b0e593dd..f2d4a394e 100644 --- a/examples/deep_move/deep_move.go +++ b/examples/deep_move/deep_move.go @@ -661,11 +661,11 @@ func (ss *Sim) ConfigGUI() { }, }) ss.GUI.AddToolbarItem(p, egui.ToolbarItem{Label: "README", - Icon: "file-markdown", + Icon: icons.FileMarkdown, Tooltip: "Opens your browser on the README file that contains instructions for how to run this model.", Active: egui.ActiveAlways, Func: func() { - core.TheApp.OpenURL("https://github.com/emer/axon/blob/master/examples/deep_move/README.md") + core.TheApp.OpenURL("https://github.com/emer/axon/blob/main/examples/deep_move/README.md") }, }) }) diff --git a/examples/deep_music/deep_music.go b/examples/deep_music/deep_music.go index 7d7d26ad7..fae43e77b 100644 --- a/examples/deep_music/deep_music.go +++ b/examples/deep_music/deep_music.go @@ -653,11 +653,11 @@ func (ss *Sim) ConfigGUI() { }, }) ss.GUI.AddToolbarItem(p, egui.ToolbarItem{Label: "README", - Icon: "file-markdown", + Icon: icons.FileMarkdown, Tooltip: "Opens your browser on the README file that contains instructions for how to run this model.", Active: egui.ActiveAlways, Func: func() { - core.TheApp.OpenURL("https://github.com/emer/axon/blob/master/examples/deep_music/README.md") + core.TheApp.OpenURL("https://github.com/emer/axon/blob/main/examples/deep_music/README.md") }, }) }) diff --git a/examples/dls/dls.go b/examples/dls/dls.go index b67811c7a..0f9bbbdcf 100644 --- a/examples/dls/dls.go +++ b/examples/dls/dls.go @@ -1029,11 +1029,11 @@ func (ss *Sim) ConfigGUI() { }, }) ss.GUI.AddToolbarItem(p, egui.ToolbarItem{Label: "README", - Icon: "file-markdown", + Icon: icons.FileMarkdown, Tooltip: "Opens your browser on the README file that contains instructions for how to run this model.", Active: egui.ActiveAlways, Func: func() { - core.TheApp.OpenURL("https://github.com/emer/axon/blob/master/examples/dls/README.md") + core.TheApp.OpenURL("https://github.com/emer/axon/blob/main/examples/dls/README.md") }, }) }) diff --git a/examples/hip/diff/README.md b/examples/hip/diff/README.md index c4be17b8d..6b00febc5 100644 --- a/examples/hip/diff/README.md +++ b/examples/hip/diff/README.md @@ -1,5 +1,5 @@ # Net configurations -And here are the diffs to the standard `hip.go` from `leabra/examples/hip` implementing the different network configuration and `AlphaCyc` code to achieve the above changes. The full diffs including some changes to logging are here: https://github.com/emer/leabra/blob/master/examples/hip/best_2-20.diff +And here are the diffs to the standard `hip.go` from `leabra/examples/hip` implementing the different network configuration and `AlphaCyc` code to achieve the above changes. The full diffs including some changes to logging are here: https://github.com/emer/leabra/blob/main/examples/hip/best_2-20.diff ![](fig_netconfig_diffs.png?raw=true "ConfigNet Diffs") diff --git a/examples/hip/hip.go b/examples/hip/hip.go index 8df59fc64..6aa753e74 100644 --- a/examples/hip/hip.go +++ b/examples/hip/hip.go @@ -835,11 +835,11 @@ func (ss *Sim) ConfigGUI() { }, }) ss.GUI.AddToolbarItem(p, egui.ToolbarItem{Label: "README", - Icon: "file-markdown", + Icon: icons.FileMarkdown, Tooltip: "Opens your browser on the README file that contains instructions for how to run this model.", Active: egui.ActiveAlways, Func: func() { - core.TheApp.OpenURL("https://github.com/emer/axon/blob/master/examples/hip/README.md") + core.TheApp.OpenURL("https://github.com/emer/axon/blob/main/examples/hip/README.md") }, }) }) diff --git a/examples/hip/hip.py b/examples/hip/hip.py index 7c57de107..305f7e525 100755 --- a/examples/hip/hip.py +++ b/examples/hip/hip.py @@ -177,7 +177,7 @@ def NewRndSeedCB(recv, send, sig, data): def ReadmeCB(recv, send, sig, data): core.TheApp.OpenURL( - "https://github.com/emer/leabra/blob/master/examples/hip/README.md" + "https://github.com/emer/leabra/blob/main/examples/hip/README.md" ) @@ -326,18 +326,25 @@ def __init__(self): self.PoolVocab = patgen.Vocab() self.SetTags("PoolVocab", 'display:"no-inline" desc:"pool patterns vocabulary"') self.TrainAB = etable.Table() - self.SetTags("TrainAB", 'display:"no-inline" desc:"AB training patterns to use"') + self.SetTags( + "TrainAB", 'display:"no-inline" desc:"AB training patterns to use"' + ) self.TrainAC = etable.Table() - self.SetTags("TrainAC", 'display:"no-inline" desc:"AC training patterns to use"') + self.SetTags( + "TrainAC", 'display:"no-inline" desc:"AC training patterns to use"' + ) self.TestAB = etable.Table() self.SetTags("TestAB", 'display:"no-inline" desc:"AB testing patterns to use"') self.TestAC = etable.Table() self.SetTags("TestAC", 'display:"no-inline" desc:"AC testing patterns to use"') self.TestLure = etable.Table() - self.SetTags("TestLure", 'display:"no-inline" desc:"Lure testing patterns to use"') + self.SetTags( + "TestLure", 'display:"no-inline" desc:"Lure testing patterns to use"' + ) self.TrainAll = etable.Table() self.SetTags( - "TrainAll", 'display:"no-inline" desc:"all training patterns -- for pretrain"' + "TrainAll", + 'display:"no-inline" desc:"all training patterns -- for pretrain"', ) self.TrnTrlLog = etable.Table() self.SetTags( @@ -362,7 +369,9 @@ def __init__(self): self.RunLog = etable.Table() self.SetTags("RunLog", 'display:"no-inline" desc:"summary log of each run"') self.RunStats = etable.Table() - self.SetTags("RunStats", 'display:"no-inline" desc:"aggregate stats on all runs"') + self.SetTags( + "RunStats", 'display:"no-inline" desc:"aggregate stats on all runs"' + ) self.TstStats = etable.Table() self.SetTags("TstStats", 'display:"no-inline" desc:"testing stats"') self.SimMats = {} @@ -370,7 +379,9 @@ def __init__(self): "SimMats", 'display:"no-inline" desc:"similarity matrix results for layers"' ) self.Params = params.Sets() - self.SetTags("Params", 'display:"no-inline" desc:"full collection of param sets"') + self.SetTags( + "Params", 'display:"no-inline" desc:"full collection of param sets"' + ) self.ParamSet = str() self.SetTags( "ParamSet", @@ -1880,7 +1891,9 @@ def ConfigTstTrlPlot(ss, plt, dt): lnm + " ActM.Avg", eplot.Off, eplot.FixMin, 0, eplot.FixMax, 0.5 ) for lnm in ss.LayStatNms: - plt.SetColumnOptions(lnm + " Act", eplot.Off, eplot.FixMin, 0, eplot.FixMax, 1) + plt.SetColumnOptions( + lnm + " Act", eplot.Off, eplot.FixMin, 0, eplot.FixMax, 1 + ) return plt @@ -2036,7 +2049,9 @@ def ConfigTstEpcPlot(ss, plt, dt): # order of params: on, fixMin, min, fixMax, max plt.SetColumnOptions("Run", eplot.Off, eplot.FixMin, 0, eplot.FloatMax, 0) plt.SetColumnOptions("Epoch", eplot.Off, eplot.FixMin, 0, eplot.FloatMax, 0) - plt.SetColumnOptions("PerTrlMSec", eplot.Off, eplot.FixMin, 0, eplot.FloatMax, 0) + plt.SetColumnOptions( + "PerTrlMSec", eplot.Off, eplot.FixMin, 0, eplot.FloatMax, 0 + ) plt.SetColumnOptions("SSE", eplot.Off, eplot.FixMin, 0, eplot.FloatMax, 0) plt.SetColumnOptions("AvgSSE", eplot.Off, eplot.FixMin, 0, eplot.FloatMax, 0) plt.SetColumnOptions("PctErr", eplot.Off, eplot.FixMin, 0, eplot.FixMax, 1) @@ -2250,9 +2265,13 @@ def ConfigRunStatsPlot(ss, plt, dt): plt.Options.Type = eplot.Bar plt.Options.XAxisRot = 45 - cp = plt.SetColumnOptions("AB Mem:Mean", eplot.On, eplot.FixMin, 0, eplot.FixMax, 1) + cp = plt.SetColumnOptions( + "AB Mem:Mean", eplot.On, eplot.FixMin, 0, eplot.FixMax, 1 + ) cp.ErrCol = "AB Mem:Sem" - cp = plt.SetColumnOptions("AC Mem:Mean", eplot.On, eplot.FixMin, 0, eplot.FixMax, 1) + cp = plt.SetColumnOptions( + "AC Mem:Mean", eplot.On, eplot.FixMin, 0, eplot.FixMax, 1 + ) cp.ErrCol = "AC Mem:Sem" cp = plt.SetColumnOptions( "FirstZero:Mean", eplot.On, eplot.FixMin, 0, eplot.FixMax, 30 @@ -2465,7 +2484,7 @@ def ConfigGUI(ss): tbar.AddAction( core.ActOpts( Label="README", - Icon="file-markdown", + Icon=icons.FileMarkdown, Tooltip="Opens your browser on the README file that contains instructions for how to run this model.", ), recv, diff --git a/examples/inhib/inhib.go b/examples/inhib/inhib.go index 4cdc00e71..876590311 100644 --- a/examples/inhib/inhib.go +++ b/examples/inhib/inhib.go @@ -561,11 +561,11 @@ func (ss *Sim) ConfigGUI() { }, }) ss.GUI.AddToolbarItem(p, egui.ToolbarItem{Label: "README", - Icon: "file-markdown", + Icon: icons.FileMarkdown, Tooltip: "Opens your browser on the README file that contains instructions for how to run this model.", Active: egui.ActiveAlways, Func: func() { - core.TheApp.OpenURL("https://github.com/emer/axon/blob/master/examples/inhib/README.md") + core.TheApp.OpenURL("https://github.com/emer/axon/blob/main/examples/inhib/README.md") }, }) }) diff --git a/examples/kinaseq/sim.go b/examples/kinaseq/sim.go index 75ad25263..c6652c156 100644 --- a/examples/kinaseq/sim.go +++ b/examples/kinaseq/sim.go @@ -140,7 +140,7 @@ func (ss *Sim) ResetTstCycPlot() { // ConfigGUI configures the Cogent Core GUI interface for this simulation. func (ss *Sim) ConfigGUI() { title := "Kinase Eq" - ss.GUI.MakeBody(ss, "kinaseq", title, `kinaseq: Explores calcium-based synaptic learning rules, specifically at the synaptic level. See README.md on GitHub.`) + ss.GUI.MakeBody(ss, "kinaseq", title, `kinaseq: Explores calcium-based synaptic learning rules, specifically at the synaptic level. See README.md on GitHub.`) ss.GUI.CycleUpdateInterval = 10 ss.GUI.AddPlots(title, &ss.Logs) @@ -229,11 +229,11 @@ func (ss *Sim) ConfigGUI() { }, }) ss.GUI.AddToolbarItem(p, egui.ToolbarItem{Label: "README", - Icon: "file-markdown", + Icon: icons.FileMarkdown, Tooltip: "Opens your browser on the README file that contains instructions for how to run this model.", Active: egui.ActiveAlways, Func: func() { - core.TheApp.OpenURL("https://github.com/emer/axon/blob/master/examples/neuron/README.md") + core.TheApp.OpenURL("https://github.com/emer/axon/blob/main/examples/neuron/README.md") }, }) }) diff --git a/examples/mpi/ra25.go b/examples/mpi/ra25.go index 10b2705cd..bc6249c6a 100644 --- a/examples/mpi/ra25.go +++ b/examples/mpi/ra25.go @@ -745,11 +745,11 @@ func (ss *Sim) ConfigGUI() { }, }) ss.GUI.AddToolbarItem(p, egui.ToolbarItem{Label: "README", - Icon: "file-markdown", + Icon: icons.FileMarkdown, Tooltip: "Opens your browser on the README file that contains instructions for how to run this model.", Active: egui.ActiveAlways, Func: func() { - core.TheApp.OpenURL("https://github.com/emer/axon/blob/master/examples/mpi/README.md") + core.TheApp.OpenURL("https://github.com/emer/axon/blob/main/examples/mpi/README.md") }, }) }) diff --git a/examples/neuron/neuron.go b/examples/neuron/neuron.go index 9848ef522..b437f7da9 100644 --- a/examples/neuron/neuron.go +++ b/examples/neuron/neuron.go @@ -380,7 +380,7 @@ func (ss *Sim) ConfigNetView(nv *netview.NetView) { // ConfigGUI configures the Cogent Core GUI interface for this simulation. func (ss *Sim) ConfigGUI() { title := "Neuron" - ss.GUI.MakeBody(ss, "neuron", title, `This simulation illustrates the basic properties of neural spiking and rate-code activation, reflecting a balance of excitatory and inhibitory influences (including leak and synaptic inhibition). See README.md on GitHub.`) + ss.GUI.MakeBody(ss, "neuron", title, `This simulation illustrates the basic properties of neural spiking and rate-code activation, reflecting a balance of excitatory and inhibitory influences (including leak and synaptic inhibition). See README.md on GitHub.`) ss.GUI.CycleUpdateInterval = 10 nv := ss.GUI.AddNetView("NetView") @@ -448,11 +448,11 @@ func (ss *Sim) ConfigGUI() { }, }) ss.GUI.AddToolbarItem(p, egui.ToolbarItem{Label: "README", - Icon: "file-markdown", + Icon: icons.FileMarkdown, Tooltip: "Opens your browser on the README file that contains instructions for how to run this model.", Active: egui.ActiveAlways, Func: func() { - core.TheApp.OpenURL("https://github.com/emer/axon/blob/master/examples/neuron/README.md") + core.TheApp.OpenURL("https://github.com/emer/axon/blob/main/examples/neuron/README.md") }, }) }) diff --git a/examples/objrec/README.md b/examples/objrec/README.md index 25ed7022f..cbd1418c0 100644 --- a/examples/objrec/README.md +++ b/examples/objrec/README.md @@ -12,4 +12,4 @@ Changes: TODOs: - [ ] Delete lots of the unnecessary code (like everything in logging, except the most basic stats e.g. `CorSim`) -- [ ] Instead of being `package main`, turn the `main()` into a `BenchmarkObjrec(b *testing.B)` to make it easier to run & profile. Currently, this prohibits the use of a GUI (the window never gets created, just blocks [here](https://github.com/go-gl/glfw/blob/master/v3.3/glfw/window.go#L348) forever). +- [ ] Instead of being `package main`, turn the `main()` into a `BenchmarkObjrec(b *testing.B)` to make it easier to run & profile. Currently, this prohibits the use of a GUI (the window never gets created, just blocks [here](https://github.com/go-gl/glfw/blob/main/v3.3/glfw/window.go#L348) forever). diff --git a/examples/objrec/objrec.go b/examples/objrec/objrec.go index 3e5897290..7941e2afc 100644 --- a/examples/objrec/objrec.go +++ b/examples/objrec/objrec.go @@ -658,7 +658,7 @@ func (ss *Sim) ConfigActRFs() { // ConfigGUI configures the Cogent Core GUI interface for this simulation. func (ss *Sim) ConfigGUI() { title := "Object Recognition" - ss.GUI.MakeBody(ss, "objrec", title, `This simulation explores how a hierarchy of areas in the ventral stream of visual processing (up to inferotemporal (IT) cortex) can produce robust object recognition that is invariant to changes in position, size, etc of retinal input images. See README.md on GitHub.`) + ss.GUI.MakeBody(ss, "objrec", title, `This simulation explores how a hierarchy of areas in the ventral stream of visual processing (up to inferotemporal (IT) cortex) can produce robust object recognition that is invariant to changes in position, size, etc of retinal input images. See README.md on GitHub.`) ss.GUI.CycleUpdateInterval = 10 nv := ss.GUI.AddNetView("NetView") @@ -728,11 +728,11 @@ func (ss *Sim) ConfigGUI() { }, }) ss.GUI.AddToolbarItem(p, egui.ToolbarItem{Label: "README", - Icon: "file-markdown", + Icon: icons.FileMarkdown, Tooltip: "Opens your browser on the README file that contains instructions for how to run this model.", Active: egui.ActiveAlways, Func: func() { - core.TheApp.OpenURL("https://github.com/emer/axon/blob/master/examples/bench_objrec/README.md") + core.TheApp.OpenURL("https://github.com/emer/axon/blob/main/examples/bench_objrec/README.md") }, }) }) diff --git a/examples/pcore_ds/pcore_ds.go b/examples/pcore_ds/pcore_ds.go index c7a3f0a4c..fff6639bc 100644 --- a/examples/pcore_ds/pcore_ds.go +++ b/examples/pcore_ds/pcore_ds.go @@ -892,11 +892,11 @@ func (ss *Sim) ConfigGUI() { }, }) ss.GUI.AddToolbarItem(p, egui.ToolbarItem{Label: "README", - Icon: "file-markdown", + Icon: icons.FileMarkdown, Tooltip: "Opens your browser on the README file that contains instructions for how to run this model.", Active: egui.ActiveAlways, Func: func() { - core.TheApp.OpenURL("https://github.com/emer/axon/blob/master/examples/pcore/README.md") + core.TheApp.OpenURL("https://github.com/emer/axon/blob/main/examples/pcore/README.md") }, }) }) diff --git a/examples/pcore_vs/pcore_vs.go b/examples/pcore_vs/pcore_vs.go index 8bdf32fc1..beb6fc05c 100644 --- a/examples/pcore_vs/pcore_vs.go +++ b/examples/pcore_vs/pcore_vs.go @@ -722,11 +722,11 @@ func (ss *Sim) ConfigGUI() { }, }) ss.GUI.AddToolbarItem(p, egui.ToolbarItem{Label: "README", - Icon: "file-markdown", + Icon: icons.FileMarkdown, Tooltip: "Opens your browser on the README file that contains instructions for how to run this model.", Active: egui.ActiveAlways, Func: func() { - core.TheApp.OpenURL("https://github.com/emer/axon/blob/master/examples/pcore/README.md") + core.TheApp.OpenURL("https://github.com/emer/axon/blob/main/examples/pcore/README.md") }, }) }) diff --git a/examples/pfcmaint/pfcmaint.go b/examples/pfcmaint/pfcmaint.go index 53cfb502c..1cf0cd5ae 100644 --- a/examples/pfcmaint/pfcmaint.go +++ b/examples/pfcmaint/pfcmaint.go @@ -562,11 +562,11 @@ func (ss *Sim) ConfigGUI() { }, }) ss.GUI.AddToolbarItem(p, egui.ToolbarItem{Label: "README", - Icon: "file-markdown", + Icon: icons.FileMarkdown, Tooltip: "Opens your browser on the README file that contains instructions for how to run this model.", Active: egui.ActiveAlways, Func: func() { - core.TheApp.OpenURL("https://github.com/emer/axon/blob/master/examples/pcore/README.md") + core.TheApp.OpenURL("https://github.com/emer/axon/blob/main/examples/pcore/README.md") }, }) }) diff --git a/examples/pvlv/README.md b/examples/pvlv/README.md index 5a4a41c2a..a8b01f11c 100644 --- a/examples/pvlv/README.md +++ b/examples/pvlv/README.md @@ -24,7 +24,7 @@ The overarching idea behind the PVLV model [OReilly et al, 2007](#references) is ![PV.1](fig_bvpvlv_pv_lv_only.png?raw=true "PV.1") -**Figure 1:** Simplified diagram of major components of the PVLV model, with the LV Learned Value component in the Amygdala and PV Primary Value component in the Ventral Striatum (principally the Nucleus Accumbens Core, NAc). LHb: Lateral Habenula, RMTg: RostroMedial Tegmentum, PPTg: PendunculoPontine Tegmentum, LHA: Lateral Hypothalamus, PBN: Parabrachial Nucleus. See [PVLV Code](https://github.com/emer/leabra/tree/master/pvlv) for a more detailed figure and description of the implementation. +**Figure 1:** Simplified diagram of major components of the PVLV model, with the LV Learned Value component in the Amygdala and PV Primary Value component in the Ventral Striatum (principally the Nucleus Accumbens Core, NAc). LHb: Lateral Habenula, RMTg: RostroMedial Tegmentum, PPTg: PendunculoPontine Tegmentum, LHA: Lateral Hypothalamus, PBN: Parabrachial Nucleus. See [PVLV Code](https://github.com/emer/leabra/tree/main/pvlv) for a more detailed figure and description of the implementation. # Basic Appetitive Conditioning @@ -192,7 +192,7 @@ Note how the negative `VTAp_act` (black) and positive `LHbRMTg_act` (blue) activ **Tip:** You may want to switch back and forth with the `NetView` tab to watch the activity of the layers as stimuli are presented. If so, switch back to `TrialTypeData` to continue. -At the end of conditioned inhibition training three test trials are run: A alone, X alone, and AX. (Reward is never presented in any case). Note that the network shows a dopamine dip to the conditioned inhibitor (X) meaning that it has acquired negative valence, in accordance with the [Tobler et al., 2003](#references) data. This is caused by activity in the `LHbRMTg`, which reflects activity of the `VSMatrixPosD2` that has learned an association of the X conditioned inhibitor with reward omission. See [PVLV Code](https://github.com/emer/leabra/tree/master/pvlv) if you wish to learn more about the computations of the various ventral striatum and amygdala layers in the network. +At the end of conditioned inhibition training three test trials are run: A alone, X alone, and AX. (Reward is never presented in any case). Note that the network shows a dopamine dip to the conditioned inhibitor (X) meaning that it has acquired negative valence, in accordance with the [Tobler et al., 2003](#references) data. This is caused by activity in the `LHbRMTg`, which reflects activity of the `VSMatrixPosD2` that has learned an association of the X conditioned inhibitor with reward omission. See [PVLV Code](https://github.com/emer/leabra/tree/main/pvlv) if you wish to learn more about the computations of the various ventral striatum and amygdala layers in the network. > **Optional Question** Why does the network continue to show a partial dopamine burst to the A stimulus when it is presented alone? Hint: You may want to watch the network run again and note the different trial types. What is the purpose of interleaving A_Rf trials with the AX trials? diff --git a/examples/pvlv/pvlv.go b/examples/pvlv/pvlv.go index cad7c9543..35a06ccf6 100644 --- a/examples/pvlv/pvlv.go +++ b/examples/pvlv/pvlv.go @@ -786,7 +786,7 @@ func (ss *Sim) ConfigGUI() { Tooltip: "Opens your browser on the README file that contains instructions for how to run this model.", Active: egui.ActiveAlways, Func: func() { - core.TheApp.OpenURL("https://github.com/emer/axon/blob/master/examples/pvlv/README.md") + core.TheApp.OpenURL("https://github.com/emer/axon/blob/main/examples/pvlv/README.md") }, }) }) diff --git a/examples/ra25/README.md b/examples/ra25/README.md index e33211cee..ac06e7c6c 100644 --- a/examples/ra25/README.md +++ b/examples/ra25/README.md @@ -10,7 +10,7 @@ First, see [Wiki Install](https://github.com/emer/axon/wiki/Install) for install ./ra25 ``` -You can also run the [Python](https://github.com/emer/axon/blob/master/python/README.md) version of the model by following those instructions. +You can also run the [Python](https://github.com/emer/axon/blob/main/python/README.md) version of the model by following those instructions. ## Basic running and graphing diff --git a/examples/ra25/ra25.go b/examples/ra25/ra25.go index 95f45df2b..3aa3a9906 100644 --- a/examples/ra25/ra25.go +++ b/examples/ra25/ra25.go @@ -698,11 +698,11 @@ func (ss *Sim) ConfigGUI() { }, }) ss.GUI.AddToolbarItem(p, egui.ToolbarItem{Label: "README", - Icon: "file-markdown", + Icon: icons.FileMarkdown, Tooltip: "Opens your browser on the README file that contains instructions for how to run this model.", Active: egui.ActiveAlways, Func: func() { - core.TheApp.OpenURL("https://github.com/emer/axon/blob/master/examples/ra25/README.md") + core.TheApp.OpenURL("https://github.com/emer/axon/blob/main/examples/ra25/README.md") }, }) }) diff --git a/examples/ra25/ra25.py b/examples/ra25/ra25.py index 8a741b3b1..e31ac7a58 100755 --- a/examples/ra25/ra25.py +++ b/examples/ra25/ra25.py @@ -184,7 +184,7 @@ def NewRndSeedCB(recv, send, sig, data): def ReadmeCB(recv, send, sig, data): core.TheApp.OpenURL( - "https://github.com/emer/leabra/blob/master/examples/ra25/README.md" + "https://github.com/emer/leabra/blob/main/examples/ra25/README.md" ) @@ -251,9 +251,13 @@ def __init__(self): self.RunLog = etable.Table() self.SetTags("RunLog", 'display:"no-inline" desc:"summary log of each run"') self.RunStats = etable.Table() - self.SetTags("RunStats", 'display:"no-inline" desc:"aggregate stats on all runs"') + self.SetTags( + "RunStats", 'display:"no-inline" desc:"aggregate stats on all runs"' + ) self.Params = params.Sets() - self.SetTags("Params", 'display:"no-inline" desc:"full collection of param sets"') + self.SetTags( + "Params", 'display:"no-inline" desc:"full collection of param sets"' + ) self.ParamSet = str() self.SetTags( "ParamSet", @@ -1062,7 +1066,9 @@ def ConfigTrnEpcPlot(ss, plt, dt): plt.SetColumnOptions("PctErr", eplot.On, eplot.FixMin, 0, eplot.FixMax, 1) plt.SetColumnOptions("PctCor", eplot.On, eplot.FixMin, 0, eplot.FixMax, 1) plt.SetColumnOptions("CosDiff", eplot.Off, eplot.FixMin, 0, eplot.FixMax, 1) - plt.SetColumnOptions("PerTrlMSec", eplot.Off, eplot.FixMin, 0, eplot.FloatMax, 0) + plt.SetColumnOptions( + "PerTrlMSec", eplot.Off, eplot.FixMin, 0, eplot.FloatMax, 0 + ) for lnm in ss.LayStatNms: plt.SetColumnOptions( @@ -1561,7 +1567,7 @@ def ConfigGUI(ss): tbar.AddAction( core.ActOpts( Label="README", - Icon="file-markdown", + Icon=icons.FileMarkdown, Tooltip="Opens your browser on the README file that contains instructions for how to run this model.", ), recv, diff --git a/examples/ra25x/ra25x.go b/examples/ra25x/ra25x.go index 77952ff2f..f92d7c575 100644 --- a/examples/ra25x/ra25x.go +++ b/examples/ra25x/ra25x.go @@ -665,11 +665,11 @@ func (ss *Sim) ConfigGUI() { }, }) ss.GUI.AddToolbarItem(p, egui.ToolbarItem{Label: "README", - Icon: "file-markdown", + Icon: icons.FileMarkdown, Tooltip: "Opens your browser on the README file that contains instructions for how to run this model.", Active: egui.ActiveAlways, Func: func() { - core.TheApp.OpenURL("https://github.com/emer/axon/blob/master/examples/ra25x/README.md") + core.TheApp.OpenURL("https://github.com/emer/axon/blob/main/examples/ra25x/README.md") }, }) }) diff --git a/examples/rl/rl.go b/examples/rl/rl.go index a89ef5a24..03f9086db 100644 --- a/examples/rl/rl.go +++ b/examples/rl/rl.go @@ -439,11 +439,11 @@ func (ss *Sim) ConfigGUI() { }) ss.GUI.AddToolbarItem(p, egui.ToolbarItem{Label: "README", - Icon: "file-markdown", + Icon: icons.FileMarkdown, Tooltip: "Opens your browser on the README file that contains instructions for how to run this model.", Active: egui.ActiveAlways, Func: func() { - core.TheApp.OpenURL("https://github.com/emer/axon/blob/master/examples/rl/README.md") + core.TheApp.OpenURL("https://github.com/emer/axon/blob/main/examples/rl/README.md") }, }) }) diff --git a/examples/vspatch/vspatch.go b/examples/vspatch/vspatch.go index be7a32f89..1eb5f3033 100644 --- a/examples/vspatch/vspatch.go +++ b/examples/vspatch/vspatch.go @@ -703,11 +703,11 @@ func (ss *Sim) ConfigGUI() { }, }) ss.GUI.AddToolbarItem(p, egui.ToolbarItem{Label: "README", - Icon: "file-markdown", + Icon: icons.FileMarkdown, Tooltip: "Opens your browser on the README file that contains instructions for how to run this model.", Active: egui.ActiveAlways, Func: func() { - core.TheApp.OpenURL("https://github.com/emer/axon/blob/master/examples/pcore/README.md") + core.TheApp.OpenURL("https://github.com/emer/axon/blob/main/examples/pcore/README.md") }, }) }) diff --git a/fsfffb/README.md b/fsfffb/README.md index df0a5e966..9d25aba55 100644 --- a/fsfffb/README.md +++ b/fsfffb/README.md @@ -1,6 +1,6 @@ # FS (Fast & Slow) FFFB Inhibition -[FFFB](https://github.com/emer/axon/tree/master/fffb) is the feedforward (FF) and feedback (FB) inhibition mechanism, originally developed for the Leabra model. It applies inhibition as a function of the average `Ge` (excitatory conductance) of units in the layer (this is FF = reflecting all the excitatory input to a layer) and average `Act` rate-code-like activation within the layer (which is FB = reflecting the activity level within the layer itself). Act is slowly integrated over time as a function of the ISI (inter-spike-interval). +[FFFB](https://github.com/emer/axon/tree/main/fffb) is the feedforward (FF) and feedback (FB) inhibition mechanism, originally developed for the Leabra model. It applies inhibition as a function of the average `Ge` (excitatory conductance) of units in the layer (this is FF = reflecting all the excitatory input to a layer) and average `Act` rate-code-like activation within the layer (which is FB = reflecting the activity level within the layer itself). Act is slowly integrated over time as a function of the ISI (inter-spike-interval). FS-FFFB is a *fast and slow* (FS) version of FFFB that works directly with spike input signals instead of using "internal" variables like Ge and Act, and uses time dynamics based on an emerging consensus about the differences between three major classes of inhibitory interneurons, and their functional properties, e.g., [Cardin, 2018](#references). diff --git a/kinase/README.md b/kinase/README.md index 81c582bd6..6910718ca 100644 --- a/kinase/README.md +++ b/kinase/README.md @@ -2,7 +2,7 @@ This implements central elements of the Kinase learning rule, including variables with associated time constants used for integrating calcium signals through the cascade of progressively longer time-integrals, from `Ca` -> `CaM` calmodulin (at `MTau`) -> CaMKII (`CaP` at `PTau` for LTP role) -> DAPK1 (`CaD` at `DTau` for LTD role). -See [kinaseq example](https://github.com/emer/axon/tree/master/examples/kinaseq) for an exploration of the implemented equations, and [kinase repository](https://github.com/ccnlab/kinase/tree/main/sims/kinase) for documentation and simulations about the biophysical basis of the equations. +See [kinaseq example](https://github.com/emer/axon/tree/main/examples/kinaseq) for an exploration of the implemented equations, and [kinase repository](https://github.com/ccnlab/kinase/tree/main/sims/kinase) for documentation and simulations about the biophysical basis of the equations. # Time constants and Variables