GeNN
3.3.0
GPU enhanced Neuronal Networks (GeNN)
|
A network model is defined by the user by providing the function
in a separate file, such as MyModel.cc
. In this function, the following tasks must be completed:
Neuron populations are added using the function
where the arguments are:
NeuronModel
: Template argument specifying the type of neuron model These should be derived off NeuronModels::Base and can either be one of the standard models or user-defined (see Neuron models). const string &name
: Unique name of the neuron population unsigned int size
: number of neurons in the population NeuronModel::ParamValues paramValues
: Parameters of this neuron type NeuronModel::VarValues varInitialisers
: Initial values or initialisation snippets for variables of this neuron typeThe user may add as many neuron populations as the model necessitates. They must all have unique names. The possible values for the arguments, predefined models and their parameters and initial values are detailed Neuron models below.
Synapse populations are added with the function
where the arguments are
WeightUpdateModel
: Template parameter specifying the type of weight update model. These should be derived off WeightUpdateModels::Base and can either be one of the standard models or user-defined (see Weight update models). PostsynapticModel
: Template parameter specifying the type of postsynaptic integration model. These should be derived off PostsynapticModels::Base and can either be one of the standard models or user-defined (see Postsynaptic integration methods). const string &name
: The name of the synapse population unsigned int mType
: How the synaptic matrix is stored. See Synaptic matrix types for available options. unsigned int delay
: Homogeneous (axonal) delay for synapse population (in terms of the simulation time step DT
). const string preName
: Name of the (existing!) pre-synaptic neuron population. const string postName
: Name of the (existing!) post-synaptic neuron population. WeightUpdateModel::ParamValues weightParamValues
: The parameter values (common to all synapses of the population) for the weight update model. WeightUpdateModel::VarValues weightVarInitialisers
: Initial values or initialisation snippets for the weight update model's state variables WeightUpdateModel::PreVarValues weightPreVarInitialisers
: Initial values or initialisation snippets for the weight update model's presynaptic state variables WeightUpdateModel::PostVarValues weightPostVarInitialisers
: Initial values or initialisation snippets for the weight update model's postsynaptic state variables PostsynapticModel::ParamValues postsynapticParamValues
: The parameter values (common to all postsynaptic neurons) for the postsynaptic model. PostsynapticModel::VarValues postsynapticVarInitialisers
: Initial values or initialisation snippets for variables for the postsynaptic model's state variables InitSparseConnectivitySnippet::Init connectivityInitialiser
: Optional argument, specifying the initialisation snippet for synapse population's sparse connectivity (see Sparse connectivity initialisation).The NNmodel::addSynapsePopulation() function returns a pointer to the newly created SynapseGroup object which can be further configured, namely with:
DT
) allowed for synapses in this population. No values larger than this should be passed to the delay parameter of the addToDenDelay
function in user code (see Defining a new weight update model).weightVarInitialisers
therefore these must be constant rather than sampled from a distribution etc.