Graphitti
A toolkit/software architecture to ease creating high-performance neural network simulators
Loading...
Searching...
No Matches
AllSTDPSynapses Class Reference
Inheritance diagram for AllSTDPSynapses:
Collaboration diagram for AllSTDPSynapses:

Public Member Functions

 AllSTDPSynapses (int numVertices, int maxEdges)
 
virtual void setupEdges () override
 Setup the internal structure of the class (allocate memories and initialize them).
 
virtual void resetEdge (BGSIZE iEdg, BGFLOAT deltaT) override
 
virtual bool allowBackPropagation () override
 
virtual void loadParameters () override
 
virtual void printParameters () const override
 
virtual void createEdge (BGSIZE iEdg, int srcVertex, int destVertex, BGFLOAT deltaT, edgeType type) override
 
virtual void printSynapsesProps () const override
 Prints SynapsesProps data.
 
template<class Archive >
void serialize (Archive &archive)
 Cereal serialization method.
 
virtual void advanceEdge (BGSIZE iEdg, AllVertices &neurons) override
 
virtual void postSpikeHit (BGSIZE iEdg) override
 
- Public Member Functions inherited from AllSpikingSynapses
 AllSpikingSynapses (int numVertices, int maxEdges)
 
template<class Archive >
void serialize (Archive &archive)
 Cereal serialization method.
 
virtual void preSpikeHit (BGSIZE iEdg)
 
- Public Member Functions inherited from AllNeuroEdges
int edgSign (const edgeType type)
 
template<class Archive >
void serialize (Archive &archive)
 Cereal serialization method.
 
- Public Member Functions inherited from AllEdges
 AllEdges (int numVertices, int maxEdges)
 
virtual BGSIZE addEdge (edgeType type, int srcVertex, int destVertex, BGFLOAT deltaT)
 
virtual void createEdgeIndexMap (EdgeIndexMap &edgeIndexMap)
 Populate a edge index map.
 
template<class Archive >
void serialize (Archive &archive)
 Cereal serialization method.
 
virtual void advanceEdges (AllVertices &vertices, EdgeIndexMap &edgeIndexMap)
 
virtual void eraseEdge (int neuronIndex, BGSIZE iEdg)
 

Static Public Member Functions

static AllEdgesCreate ()
 
- Static Public Member Functions inherited from AllSpikingSynapses
static AllEdgesCreate ()
 

Public Attributes

vector< int > totalDelayPost_
 
vector< uint32_t > delayQueuePost_
 Pointer to the delayed queue.
 
vector< int > delayIndexPost_
 The index indicating the current time slot in the delayed queue.
 
vector< int > delayQueuePostLength_
 Length of the delayed queue.
 
vector< BGFLOAT > tauspost_
 
vector< BGFLOAT > tauspre_
 sed for extended rule by Froemke and Dan.
 
vector< BGFLOAT > taupos_
 Timeconstant of exponential decay of positive learning window for STDP.
 
vector< BGFLOAT > tauneg_
 Timeconstant of exponential decay of negative learning window for STDP.
 
vector< BGFLOAT > STDPgap_
 No learning is performed if $|Delta| = |t_{post}-t_{pre}| < STDPgap_$.
 
vector< BGFLOAT > Wex_
 The maximal/minimal weight of the synapse [readwrite; units=;].
 
vector< BGFLOAT > Aneg_
 Defines the peak of the negative exponential learning window.
 
vector< BGFLOAT > Apos_
 Defines the peak of the positive exponential learning window.
 
vector< BGFLOAT > mupos_
 
vector< BGFLOAT > muneg_
 
BGFLOAT defaultSTDPgap_
 
BGFLOAT tauspost_I_
 
BGFLOAT tauspre_I_
 
BGFLOAT tauspost_E_
 
BGFLOAT tauspre_E_
 
BGFLOAT taupos_I_
 
BGFLOAT tauneg_I_
 
BGFLOAT taupos_E_
 
BGFLOAT tauneg_E_
 
BGFLOAT Wex_I_
 
BGFLOAT Wex_E_
 
BGFLOAT Aneg_I_
 
BGFLOAT Aneg_E_
 
BGFLOAT Apos_I_
 
BGFLOAT Apos_E_
 
- Public Attributes inherited from AllSpikingSynapses
vector< BGFLOAT > decay_
 The decay for the psr.
 
vector< BGFLOAT > tau_
 The synaptic time constant $\tau$ [units=sec; range=(0,100)].
 
BGFLOAT tau_II_
 
BGFLOAT tau_IE_
 
BGFLOAT tau_EI_
 
BGFLOAT tau_EE_
 
BGFLOAT delay_II_
 
BGFLOAT delay_IE_
 
BGFLOAT delay_EI_
 
BGFLOAT delay_EE_
 
vector< int > totalDelay_
 The synaptic transmission delay, descretized into time steps.
 
vector< uint32_t > delayQueue_
 Pointer to the delayed queue.
 
vector< int > delayIndex_
 
vector< int > delayQueueLength_
 Length of the delayed queue.
 
- Public Attributes inherited from AllNeuroEdges
vector< BGFLOAT > psr_
 
- Public Attributes inherited from AllEdges
vector< int > sourceVertexIndex_
 The location of the edge.
 
vector< int > destVertexIndex_
 The coordinates of the summation point.
 
vector< BGFLOAT > W_
 The weight (scaling factor, strength, maximal amplitude) of the edge.
 
vector< edgeType > type_
 Synapse type.
 
vector< unsigned char > inUse_
 The value indicating the entry in the array is in use.
 
vector< BGSIZE > edgeCounts_
 
BGSIZE totalEdgeCount_
 The total number of active edges.
 
BGSIZE maxEdgesPerVertex_
 The maximum number of edges for each vertex.
 
int countVertices_
 

Protected Member Functions

virtual void setupEdges (int numVertices, int maxEdges) override
 
virtual void readEdge (istream &input, BGSIZE iEdg) override
 
virtual void writeEdge (ostream &output, BGSIZE iEdg) const override
 
virtual void initSpikeQueue (BGSIZE iEdg) override
 
bool isSpikeQueuePost (BGSIZE iEdg)
 
virtual BGFLOAT synapticWeightModification (BGSIZE iEdg, BGFLOAT edgeWeight, double delta)
 
- Protected Member Functions inherited from AllSpikingSynapses
bool updateDecay (BGSIZE iEdg, BGFLOAT deltaT)
 defined(USE_GPU)
 
bool isSpikeQueue (BGSIZE iEdg)
 
virtual void changePSR (BGSIZE iEdg, BGFLOAT deltaT)
 
- Protected Member Functions inherited from AllNeuroEdges
- Protected Member Functions inherited from AllEdges
edgeType edgeOrdinalToType (int typeOrdinal)
 

Additional Inherited Members

- Static Public Attributes inherited from AllNeuroEdges
static constexpr BGFLOAT SYNAPSE_STRENGTH_ADJUSTMENT = 1.0e-8
 The factor to adjust overlapping area to edge weight.
 
- Protected Attributes inherited from AllEdges
log4cplus::Logger fileLogger_
 Loggers used to print to using log4cplus logging macros, prints to Results/Debug/logging.txt.
 
log4cplus::Logger edgeLogger_
 

Detailed Description

Definition at line 77 of file AllSTDPSynapses.h.

Constructor & Destructor Documentation

◆ AllSTDPSynapses() [1/2]

AllSTDPSynapses::AllSTDPSynapses ( )

Definition at line 14 of file AllSTDPSynapses.cpp.

◆ AllSTDPSynapses() [2/2]

AllSTDPSynapses::AllSTDPSynapses ( int numVertices,
int maxEdges )

Definition at line 33 of file AllSTDPSynapses.cpp.

Member Function Documentation

◆ advanceEdge()

void AllSTDPSynapses::advanceEdge ( BGSIZE iEdg,
AllVertices & neurons )
overridevirtual

Advance one specific Synapse. Update the state of synapse for a time step

Parameters
iEdgIndex of the Synapse to connect to.
neuronsThe Neuron list to search from.

Advance one specific Synapse.

Parameters
iEdgIndex of the Synapse to connect to.
neuronsThe Neuron list to search from.

Reimplemented from AllSpikingSynapses.

Definition at line 261 of file AllSTDPSynapses.cpp.

◆ allowBackPropagation()

bool AllSTDPSynapses::allowBackPropagation ( )
overridevirtual

Check if the back propagation (notify a spike event to the pre neuron) is allowed in the synapse class.

Returns
true if the back propagation is allowed.

Check if the back propagation (notify a spike event to the pre neuron) is allowed in the synapse class.

@retrun true if the back propagation is allowed.

Reimplemented from AllSpikingSynapses.

Definition at line 530 of file AllSTDPSynapses.cpp.

◆ Create()

static AllEdges * AllSTDPSynapses::Create ( )
inlinestatic

Definition at line 85 of file AllSTDPSynapses.h.

◆ createEdge()

void AllSTDPSynapses::createEdge ( BGSIZE iEdg,
int srcVertex,
int destVertex,
BGFLOAT deltaT,
edgeType type )
overridevirtual

Create a Synapse and connect it to the model.

Parameters
iEdgIndex of the synapse to set.
srcVertexIndex of the source Neuron.
destVertexIndex of the destination Neuron.
deltaTInner simulation step duration.
typeType of the Synapse to create.

Create a Synapse and connect it to the model.

Parameters
synapsesThe synapse list to reference.
iEdgIndex of the synapse to set.
srcVertexIndex of the source Neuron.
destVertexIndex of the destination Neuron.
deltaTInner simulation step duration.
typeType of the Synapse to create.

Reimplemented from AllSpikingSynapses.

Reimplemented in AllDynamicSTDPSynapses.

Definition at line 230 of file AllSTDPSynapses.cpp.

◆ initSpikeQueue()

void AllSTDPSynapses::initSpikeQueue ( BGSIZE iEdg)
overrideprotectedvirtual

Initializes the queues for the Synapse.

Parameters
iEdgindex of the synapse to set.

Reimplemented from AllSpikingSynapses.

Definition at line 77 of file AllSTDPSynapses.cpp.

◆ isSpikeQueuePost()

bool AllSTDPSynapses::isSpikeQueuePost ( BGSIZE iEdg)
protected

Checks if there is an input spike in the queue (for back propagation).

Parameters
iEdgIndex of the Synapse to connect to.
Returns
true if there is an input spike event.

Definition at line 487 of file AllSTDPSynapses.cpp.

◆ loadParameters()

void AllSTDPSynapses::loadParameters ( )
overridevirtual

Load member variables from configuration file. Registered to OperationManager as Operation::op::loadParameters

Loads out all parameters from the config file. Registered to OperationManager as Operation::loadParameters

Reimplemented from AllSpikingSynapses.

Definition at line 95 of file AllSTDPSynapses.cpp.

◆ postSpikeHit()

void AllSTDPSynapses::postSpikeHit ( BGSIZE iEdg)
overridevirtual

Prepares Synapse for a spike hit (for back propagation).

Parameters
iEdgIndex of the Synapse to connect to.

Reimplemented from AllSpikingSynapses.

Definition at line 504 of file AllSTDPSynapses.cpp.

◆ printParameters()

void AllSTDPSynapses::printParameters ( ) const
overridevirtual

Prints out all parameters to logging file. Registered to OperationManager as Operation::printParameters

Reimplemented from AllSpikingSynapses.

Reimplemented in AllDynamicSTDPSynapses.

Definition at line 117 of file AllSTDPSynapses.cpp.

◆ printSynapsesProps()

void AllSTDPSynapses::printSynapsesProps ( ) const
overridevirtual

Prints SynapsesProps data.

Reimplemented from AllSpikingSynapses.

Reimplemented in AllDynamicSTDPSynapses.

Definition at line 536 of file AllSTDPSynapses.cpp.

◆ readEdge()

void AllSTDPSynapses::readEdge ( istream & input,
BGSIZE iEdg )
overrideprotectedvirtual

Sets the data for Synapse to input's data.

Parameters
inputistream to read from.
iEdgIndex of the synapse to set.

Reimplemented from AllSpikingSynapses.

Reimplemented in AllDynamicSTDPSynapses.

Definition at line 154 of file AllSTDPSynapses.cpp.

◆ resetEdge()

void AllSTDPSynapses::resetEdge ( BGSIZE iEdg,
BGFLOAT deltaT )
overridevirtual

Reset time varying state vars and recompute decay.

Parameters
iEdgIndex of the synapse to set.
deltaTInner simulation step duration

Reimplemented from AllSpikingSynapses.

Reimplemented in AllDynamicSTDPSynapses.

Definition at line 217 of file AllSTDPSynapses.cpp.

◆ serialize()

template<class Archive >
void AllSTDPSynapses::serialize ( Archive & archive)

Cereal serialization method.

Definition at line 424 of file AllSTDPSynapses.h.

◆ setupEdges() [1/2]

void AllSTDPSynapses::setupEdges ( )
overridevirtual

Setup the internal structure of the class (allocate memories and initialize them).

Reimplemented from AllSpikingSynapses.

Reimplemented in AllDynamicSTDPSynapses.

Definition at line 40 of file AllSTDPSynapses.cpp.

◆ setupEdges() [2/2]

void AllSTDPSynapses::setupEdges ( int numVertices,
int maxEdges )
overrideprotectedvirtual

Setup the internal structure of the class (allocate memories and initialize them).

Parameters
numVerticesTotal number of vertices in the network.
maxEdgesMaximum number of synapses per neuron.

Reimplemented from AllSpikingSynapses.

Reimplemented in AllDynamicSTDPSynapses.

Definition at line 50 of file AllSTDPSynapses.cpp.

◆ synapticWeightModification()

BGFLOAT AllSTDPSynapses::synapticWeightModification ( BGSIZE iEdg,
BGFLOAT edgeWeight,
double delta )
protectedvirtual

Definition at line 394 of file AllSTDPSynapses.cpp.

◆ writeEdge()

void AllSTDPSynapses::writeEdge ( ostream & output,
BGSIZE iEdg ) const
overrideprotectedvirtual

Write the synapse data to the stream.

Parameters
outputstream to print out to.
iEdgIndex of the synapse to print out.

Reimplemented from AllSpikingSynapses.

Reimplemented in AllDynamicSTDPSynapses.

Definition at line 193 of file AllSTDPSynapses.cpp.

Member Data Documentation

◆ Aneg_

vector<BGFLOAT> AllSTDPSynapses::Aneg_

Defines the peak of the negative exponential learning window.

Definition at line 323 of file AllSTDPSynapses.h.

◆ Aneg_E_

BGFLOAT AllSTDPSynapses::Aneg_E_

Definition at line 351 of file AllSTDPSynapses.h.

◆ Aneg_I_

BGFLOAT AllSTDPSynapses::Aneg_I_

Definition at line 350 of file AllSTDPSynapses.h.

◆ Apos_

vector<BGFLOAT> AllSTDPSynapses::Apos_

Defines the peak of the positive exponential learning window.

Definition at line 326 of file AllSTDPSynapses.h.

◆ Apos_E_

BGFLOAT AllSTDPSynapses::Apos_E_

Definition at line 353 of file AllSTDPSynapses.h.

◆ Apos_I_

BGFLOAT AllSTDPSynapses::Apos_I_

Definition at line 352 of file AllSTDPSynapses.h.

◆ defaultSTDPgap_

BGFLOAT AllSTDPSynapses::defaultSTDPgap_

Definition at line 339 of file AllSTDPSynapses.h.

◆ delayIndexPost_

vector<int> AllSTDPSynapses::delayIndexPost_

The index indicating the current time slot in the delayed queue.

Definition at line 297 of file AllSTDPSynapses.h.

◆ delayQueuePost_

vector<uint32_t> AllSTDPSynapses::delayQueuePost_

Pointer to the delayed queue.

Definition at line 294 of file AllSTDPSynapses.h.

◆ delayQueuePostLength_

vector<int> AllSTDPSynapses::delayQueuePostLength_

Length of the delayed queue.

Definition at line 300 of file AllSTDPSynapses.h.

◆ muneg_

vector<BGFLOAT> AllSTDPSynapses::muneg_

Extended multiplicative negative update: $dw = W^{mupos_} * Aneg_ * exp(Delta/tauneg_)$. Set to 0 for basic update.

Definition at line 337 of file AllSTDPSynapses.h.

◆ mupos_

vector<BGFLOAT> AllSTDPSynapses::mupos_

Extended multiplicative positive update: $dw = (Wex_-W)^{mupos_} * Apos_ * exp(-Delta/taupos_)$. Set to 0 for basic update. See Guetig, Aharonov, Rotter and Sompolinsky (2003). Learning input correlations through non-linear asymmetric Hebbian plasticity. Journal of Neuroscience 23. pp.3697-3714.

Definition at line 333 of file AllSTDPSynapses.h.

◆ STDPgap_

vector<BGFLOAT> AllSTDPSynapses::STDPgap_

No learning is performed if $|Delta| = |t_{post}-t_{pre}| < STDPgap_$.

Definition at line 317 of file AllSTDPSynapses.h.

◆ tauneg_

vector<BGFLOAT> AllSTDPSynapses::tauneg_

Timeconstant of exponential decay of negative learning window for STDP.

Definition at line 314 of file AllSTDPSynapses.h.

◆ tauneg_E_

BGFLOAT AllSTDPSynapses::tauneg_E_

Definition at line 347 of file AllSTDPSynapses.h.

◆ tauneg_I_

BGFLOAT AllSTDPSynapses::tauneg_I_

Definition at line 345 of file AllSTDPSynapses.h.

◆ taupos_

vector<BGFLOAT> AllSTDPSynapses::taupos_

Timeconstant of exponential decay of positive learning window for STDP.

Definition at line 311 of file AllSTDPSynapses.h.

◆ taupos_E_

BGFLOAT AllSTDPSynapses::taupos_E_

Definition at line 346 of file AllSTDPSynapses.h.

◆ taupos_I_

BGFLOAT AllSTDPSynapses::taupos_I_

Definition at line 344 of file AllSTDPSynapses.h.

◆ tauspost_

vector<BGFLOAT> AllSTDPSynapses::tauspost_

Used for extended rule by Froemke and Dan. See Froemke and Dan (2002). Spike-timing-dependent synaptic modification induced by natural spike trains. Nature 416 (3/2002).

Definition at line 305 of file AllSTDPSynapses.h.

◆ tauspost_E_

BGFLOAT AllSTDPSynapses::tauspost_E_

Definition at line 342 of file AllSTDPSynapses.h.

◆ tauspost_I_

BGFLOAT AllSTDPSynapses::tauspost_I_

Definition at line 340 of file AllSTDPSynapses.h.

◆ tauspre_

vector<BGFLOAT> AllSTDPSynapses::tauspre_

sed for extended rule by Froemke and Dan.

Definition at line 308 of file AllSTDPSynapses.h.

◆ tauspre_E_

BGFLOAT AllSTDPSynapses::tauspre_E_

Definition at line 343 of file AllSTDPSynapses.h.

◆ tauspre_I_

BGFLOAT AllSTDPSynapses::tauspre_I_

Definition at line 341 of file AllSTDPSynapses.h.

◆ totalDelayPost_

vector<int> AllSTDPSynapses::totalDelayPost_

The synaptic transmission delay (delay of dendritic backpropagating spike), descretized into time steps.

Definition at line 291 of file AllSTDPSynapses.h.

◆ Wex_

vector<BGFLOAT> AllSTDPSynapses::Wex_

The maximal/minimal weight of the synapse [readwrite; units=;].

Definition at line 320 of file AllSTDPSynapses.h.

◆ Wex_E_

BGFLOAT AllSTDPSynapses::Wex_E_

Definition at line 349 of file AllSTDPSynapses.h.

◆ Wex_I_

BGFLOAT AllSTDPSynapses::Wex_I_

Definition at line 348 of file AllSTDPSynapses.h.


The documentation for this class was generated from the following files: