![]() |
GeNN
3.3.0
GPU enhanced Neuronal Networks (GeNN)
|
This is a simple STDP rule including a time delay for the finite transmission speed of the synapse. More...
#include <newWeightUpdateModels.h>
Public Member Functions | |
| DECLARE_WEIGHT_UPDATE_MODEL (PiecewiseSTDP, 10, 2, 0, 0) | |
| virtual StringVec | getParamNames () const override |
| Gets names of of (independent) model parameters. More... | |
| virtual StringPairVec | getVars () const override |
| Gets names and types (as strings) of model variables. More... | |
| virtual std::string | getSimCode () const override |
| Gets simulation code run when 'true' spikes are received. More... | |
| virtual std::string | getLearnPostCode () const override |
| Gets code to include in the learnSynapsesPost kernel/function. More... | |
| virtual DerivedParamVec | getDerivedParams () const override |
| virtual bool | isPreSpikeTimeRequired () const override |
| Whether presynaptic spike times are needed or not. More... | |
| virtual bool | isPostSpikeTimeRequired () const override |
| Whether postsynaptic spike times are needed or not. More... | |
Public Member Functions inherited from WeightUpdateModels::Base | |
| virtual std::string | getEventCode () const |
| Gets code run when events (all the instances where event threshold condition is met) are received. More... | |
| virtual std::string | getSynapseDynamicsCode () const |
| Gets code for synapse dynamics which are independent of spike detection. More... | |
| virtual std::string | getEventThresholdConditionCode () const |
| Gets codes to test for events. More... | |
| virtual std::string | getSimSupportCode () const |
| Gets support code to be made available within the synapse kernel/function. More... | |
| virtual std::string | getLearnPostSupportCode () const |
| Gets support code to be made available within learnSynapsesPost kernel/function. More... | |
| virtual std::string | getSynapseDynamicsSuppportCode () const |
| Gets support code to be made available within the synapse dynamics kernel/function. More... | |
| virtual std::string | getPreSpikeCode () const |
| virtual std::string | getPostSpikeCode () const |
| virtual StringPairVec | getPreVars () const |
| virtual StringPairVec | getPostVars () const |
| virtual StringPairVec | getExtraGlobalParams () const |
| size_t | getPreVarIndex (const std::string &varName) const |
| Find the index of a named presynaptic variable. More... | |
| size_t | getPostVarIndex (const std::string &varName) const |
| Find the index of a named postsynaptic variable. More... | |
Public Member Functions inherited from NewModels::Base | |
| size_t | getVarIndex (const std::string &varName) const |
| Find the index of a named variable. More... | |
Public Member Functions inherited from Snippet::Base | |
| virtual | ~Base () |
Additional Inherited Members | |
Public Types inherited from Snippet::Base | |
| typedef std::function< double(const std::vector< double > &, double)> | DerivedParamFunc |
| typedef std::vector< std::string > | StringVec |
| typedef std::vector< std::pair< std::string, std::string > > | StringPairVec |
| typedef std::vector< std::pair< std::string, std::pair< std::string, double > > > | NameTypeValVec |
| typedef std::vector< std::pair< std::string, DerivedParamFunc > > | DerivedParamVec |
Static Protected Member Functions inherited from NewModels::Base | |
| static size_t | getVarIndex (const std::string &varName, const StringPairVec &vars) |
This is a simple STDP rule including a time delay for the finite transmission speed of the synapse.
The STDP window is defined as a piecewise function:
The STDP curve is applied to the raw synaptic conductance gRaw, which is then filtered through the sugmoidal filter displayed above to obtain the value of g.
gRaw (and hence in g).gRaw that is subject to the STDP rule. The resulting synaptic conductance is a sigmoid filter of gRaw. This implies that g is initialised but not gRaw, the synapse will revert to the value that corresponds to gRaw.An example how to use this synapse correctly is given in map_classol.cc (MBody1 userproject):
g fully to 0, as this leads to gRaw= -infinity and this is not support. I.e., 'g' needs to be some nominal value > 0 (but can be extremely small so that it acts like it's 0).The model has 2 variables:
g: conductance of scalar typegRaw: raw conductance of scalar typeParameters are (compare to the figure above):
tLrn: Time scale of learning changestChng: Width of learning windowtDecay: Time scale of synaptic strength decaytPunish10: Time window of suppression in response to 1/0tPunish01: Time window of suppression in response to 0/1gMax: Maximal conductance achievablegMid: Midpoint of sigmoid g filter curvegSlope: Slope of sigmoid g filter curvetauShift: Shift of learning curvegSyn0: Value of syn conductance g decays to | WeightUpdateModels::PiecewiseSTDP::DECLARE_WEIGHT_UPDATE_MODEL | ( | PiecewiseSTDP | , |
| 10 | , | ||
| 2 | , | ||
| 0 | , | ||
| 0 | |||
| ) |
|
inlineoverridevirtual |
Gets names of derived model parameters and the function objects to call to Calculate their value from a vector of model parameter values
Reimplemented from Snippet::Base.
|
inlineoverridevirtual |
Gets code to include in the learnSynapsesPost kernel/function.
For examples when modelling STDP, this is where the effect of postsynaptic spikes which occur after presynaptic spikes are applied.
Reimplemented from WeightUpdateModels::Base.
|
inlineoverridevirtual |
Gets names of of (independent) model parameters.
Reimplemented from Snippet::Base.
|
inlineoverridevirtual |
Gets simulation code run when 'true' spikes are received.
Reimplemented from WeightUpdateModels::Base.
|
inlineoverridevirtual |
Gets names and types (as strings) of model variables.
Reimplemented from NewModels::Base.
|
inlineoverridevirtual |
Whether postsynaptic spike times are needed or not.
Reimplemented from WeightUpdateModels::Base.
|
inlineoverridevirtual |
Whether presynaptic spike times are needed or not.
Reimplemented from WeightUpdateModels::Base.