agate

package
v1.5.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 5, 2022 License: BSD-3-Clause Imports: 7 Imported by: 0

README

AGate: Attentional & adaptive Gating of Action and Thought for Executive function

Documentation

Index

Constants

This section is empty.

Variables

View Source
var KiT_MaintLayer = kit.Types.AddType(&MaintLayer{}, axon.LayerProps)
View Source
var KiT_OutLayer = kit.Types.AddType(&OutLayer{}, axon.LayerProps)

Functions

func AddPFC

func AddPFC(nt *axon.Network, name string, nPoolsY, nPoolsX, nNeurY, nNeurX int, pulvLay bool) (super, ct, maint, out, pulv emer.Layer)

AddPFC adds a PFC system including SuperLayer, CT with CTCtxtPrjn, MaintLayer, and OutLayer which is gated by BG. Name is set to "PFC" if empty. Other layers have appropriate suffixes. Optionally creates a TRC Pulvinar for Super. Standard Deep CTCtxtPrjn PoolOneToOne Super -> CT projection, and 1to1 projections Super -> Maint and Maint -> Out class PFCFixed are created by default. CT is placed Behind Super, then Out and Maint, and Pulvinar behind CT if created.

func AddPFCPy

func AddPFCPy(nt *axon.Network, name string, nPoolsY, nPoolsX, nNeurY, nNeurX int, pulvLay bool) []emer.Layer

AddPFCPy adds a PFC system including SuperLayer, CT with CTCtxtPrjn, MaintLayer, and OutLayer which is gated by BG. Name is set to "PFC" if empty. Other layers have appropriate suffixes. Optionally creates a TRC Pulvinar for Super. Standard Deep CTCtxtPrjn PoolOneToOne Super -> CT projection, and 1to1 projections Super -> Maint and Maint -> Out class PFCFixed are created by default. CT is placed Behind Super, then Out and Maint, and Pulvinar behind CT if created. Py is Python version, returns layers as a slice

Types

type MaintLayer

type MaintLayer struct {
	axon.Layer
	PulseClear PulseClearParams `desc:"parameters for the synchronous pulse of activation / inhibition that clears NMDA maintenance."`
}

MaintLayer is a standard axon layer with stronger NMDA and GABAB to drive more robust active maintenance, simulating the special PFC layer 3 cells with extensive excitatory collaterals.

func AddMaintLayer

func AddMaintLayer(nt *axon.Network, name string, nPoolsY, nPoolsX, nNeurY, nNeurX int) *MaintLayer

AddMaintLayer adds a MaintLayer using 4D shape with pools, and lateral NMDAMaint PoolOneToOne connectivity.

func (*MaintLayer) Defaults

func (ly *MaintLayer) Defaults()

func (*MaintLayer) PulseClearNMDA

func (ly *MaintLayer) PulseClearNMDA()

PulseClearNMDA simulates a synchronous pulse of activation that clears the NMDA and puts the layer into a refractory state by activating the GABAB currents.

type OutLayer

type OutLayer struct {
	MaintLayer
	Out OutParams `desc:"Parameters for output layer function"`
}

OutLayer is a frontal cortex output layer (L5 PM), which typically is interconnected with Ventral Thalamus (VM / VA etc) for output gating, and also NMDAPrjn maintenance.

func AddOutLayer

func AddOutLayer(nt *axon.Network, name string, nPoolsY, nPoolsX, nNeurY, nNeurX int) *OutLayer

AddOutLayer adds a OutLayer using 4D shape with pools, and lateral PoolOneToOne connectivity.

func (*OutLayer) ClearLays

func (ly *OutLayer) ClearLays() ([]PulseClearer, error)

ClearLays returns the Layers by name

func (*OutLayer) CyclePost

func (ly *OutLayer) CyclePost(ltime *axon.Time)

CyclePost calls ResetMaint

func (*OutLayer) Defaults

func (ly *OutLayer) Defaults()

func (*OutLayer) PulseClear

func (ly *OutLayer) PulseClear(ltime *axon.Time)

PulseClear sends a simulated synchronous pulse of activation / inhibition to clear ClearLays

type OutParams

type OutParams struct {
	ResetThr  float32       `desc:"threshold on activation, above which the ClearLays will be reset"`
	ClearLays emer.LayNames `desc:"name of corresponding layers that are reset when this layer gets activated"`
}

OutParams determine the behavior of OutLayer

func (*OutParams) Defaults

func (np *OutParams) Defaults()

type PulseClearParams

type PulseClearParams struct {
	GABAB float32 `desc:"GABAB value activated by the inhibitory pulse"`
}

PulseClearParams are parameters for the synchronous pulse of activation / inhibition that clears NMDA maintenance.

func (*PulseClearParams) Defaults

func (pc *PulseClearParams) Defaults()

type PulseClearer

type PulseClearer interface {
	axon.AxonLayer

	// PulseClearNMDA simulates a synchronous pulse of activation that
	// clears the NMDA and puts the layer into a refractory state by
	// activating the GABAB currents.
	PulseClearNMDA()
}

PulseClearer is an interface for Layers that have the PulseClearNMDA method for clearing NMDA and activating GABAB refractory inhibition

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL