Documentation ¶
Index ¶
- Variables
- func AddPFC(nt *leabra.Network, name string, nPoolsY, nPoolsX, nNeurY, nNeurX int, ...) (super, ct, maint, out, pulv emer.Layer)
- type MaintLayer
- type Network
- func (nt *Network) AddBG(prefix string, nPoolsY, nPoolsX, nNeurY, nNeurX int, space float32) (...)
- func (nt *Network) AddPFC(name string, nPoolsY, nPoolsX, nNeurY, nNeurX int, pulvLay bool) (super, ct, maint, out, pulv emer.Layer)
- func (nt *Network) ConnectToMatrix(send, recv emer.Layer, pat prjn.Pattern) emer.Prjn
- func (nt *Network) Defaults()
- func (nt *Network) SynVarNames() []string
- func (nt *Network) UnitVarNames() []string
- func (nt *Network) UnitVarProps() map[string]string
- func (nt *Network) UpdateParams()
- type OutLayer
- type OutParams
- type PulseClearParams
- type PulseClearer
Constants ¶
This section is empty.
Variables ¶
var KiT_MaintLayer = kit.Types.AddType(&MaintLayer{}, leabra.LayerProps)
var KiT_Network = kit.Types.AddType(&Network{}, NetworkProps)
var KiT_OutLayer = kit.Types.AddType(&OutLayer{}, leabra.LayerProps)
var NetworkProps = deep.NetworkProps
var ( // NeuronVarsAll is the agate collection of all neuron-level vars (deep, glong, pcore) NeuronVarsAll []string )
Functions ¶
func AddPFC ¶
func AddPFC(nt *leabra.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.
Types ¶
type MaintLayer ¶
type MaintLayer struct { glong.Layer PulseClear PulseClearParams `desc:"parameters for the synchronous pulse of activation / inhibition that clears NMDA maintenance."` InterInhib interinhib.InterInhib `desc:"inhibition from output layer"` }
///////////////////////////////////////////////////////////////////////// MaintLayer is a layer with NMDA channels that supports active maintenance in frontal cortex, via NMDA channels (in an NMDAMaintPrjn).
func AddMaintLayer ¶
func AddMaintLayer(nt *leabra.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) InhibFmGeAct ¶
func (ly *MaintLayer) InhibFmGeAct(ltime *leabra.Time)
InhibFmGeAct computes inhibition Gi from Ge and Act averages within relevant Pools
func (*MaintLayer) InterInhibMaxAct ¶
func (ly *MaintLayer) InterInhibMaxAct(ltime *leabra.Time) float32
InterInhibMaxAct returns the AlphaMax activation for source layers
func (*MaintLayer) PulseClearNMDA ¶ added in v1.1.8
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 Network ¶
agate.Network has methods for configuring specialized AGate network components for Attentional & adaptive Gating of Action and Thought for Executive function.
func (*Network) AddBG ¶
func (nt *Network) AddBG(prefix string, nPoolsY, nPoolsX, nNeurY, nNeurX int, space float32) (mtxGo, mtxNo, cin, gpeOut, gpeIn, gpeTA, stnp, stns, gpi, vthal leabra.LeabraLayer)
AddBG adds MtxGo, No, CIN, GPeOut, GPeIn, GPeTA, STNp, STNs, GPi, and VThal layers, with given optional prefix. Assumes that a 4D structure will be used, with Pools representing separable gating domains. Only Matrix has more than 1 unit per Pool by default. Appropriate PoolOneToOne connections are made between layers, using standard styles. space is the spacing between layers (2 typical)
func (*Network) AddPFC ¶
func (nt *Network) AddPFC(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. CT is placed Behind Super, then Out and Maint, and Pulvinar behind CT if created.
func (*Network) ConnectToMatrix ¶
ConnectToMatrix adds a MatrixTracePrjn from given sending layer to a matrix layer
func (*Network) Defaults ¶
func (nt *Network) Defaults()
Defaults sets all the default parameters for all layers and projections
func (*Network) SynVarNames ¶
SynVarNames returns the names of all the variables on the synapses in this network.
func (*Network) UnitVarNames ¶
UnitVarNames returns a list of variable names available on the units in this layer
func (*Network) UnitVarProps ¶ added in v1.1.4
UnitVarProps returns properties for variables
func (*Network) UpdateParams ¶
func (nt *Network) UpdateParams()
UpdateParams updates all the derived parameters if any have changed, for all layers and projections
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 ¶
AddOutLayer adds a OutLayer using 4D shape with pools, and lateral PoolOneToOne connectivity.
func (*OutLayer) ClearLays ¶ added in v1.1.8
func (ly *OutLayer) ClearLays() ([]PulseClearer, error)
ClearLays returns the Layers by name
func (*OutLayer) PulseClear ¶ added in v1.1.8
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
type PulseClearParams ¶ added in v1.1.8
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 ¶ added in v1.1.8
func (pc *PulseClearParams) Defaults()
type PulseClearer ¶ added in v1.1.8
type PulseClearer interface { leabra.LeabraLayer // 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