Module pypcsim :: Class DynamicStdpSynapse
[hide private]
[frames] | no frames]

Class DynamicStdpSynapse

                                   object --+                                    
                                            |                                    
                                  ??.instance --+                                
                                                |                                
                                 SimObjectFactory --+                            
                                                    |                            
                                            SimObject --+                        
                                                        |                        
                                      FiniteSpikeResponse --+                    
                                                            |                    
                                ExponentialDecaySpikeResponse --+                
                                                                |                
                                         CuBaSyn_ExponentialDecay --+            
                                                                    |            
                                  DynamicSyn_CuBaSyn_ExponentialDecay --+        
                                                                        |        
                  EachPairStdpSynapse_DynamicSyn_CuBaSyn_ExponentialDecay --+    
                                                                            |    
FroemkeDanStdpSynapse_EachPairStdpSynapse_DynamicSyn_CuBaSyn_ExponentialDecay --+
                                                                                |
                                                                               DynamicStdpSynapse

Help on DynamicStdpSynapse [class]:
Dynamic synapse implementing STDP plasticity. 

 STDP is due to Froemke and Dan Nature 416 (32002). 
 Implements the basic weight update for a time difference \f$Delta = 
 t_{post}-t_{pre}\f$ with presynaptic spike at time \f$t_{pre}\f$ and 
 postsynaptic spike at time \f$t_{post}\f$. Then, the weight update is given by 
 \f$dw = Apos  exp(-Deltataupos)\f$ for \f$Delta > 0\f$, and \f$dw = Aneg  
 exp(-Deltatauneg)\f$ for \f$Delta < 0\f$. (set \f$useFroemkeDanSTDP=0\f$ and 
 \f$mupos=muneg=0\f$ for this basic update rule). 
 
 It is also possible to use an 
 extended multiplicative update by changing mupos and muneg. Then \f$dw = 
 (Wex-W)^{mupos}  Apos  exp(-Deltataupos)\f$ for \f$Delta > 0\f$ and \f$dw = 
 W^{mupos}  Aneg  exp(Deltatauneg)\f$ for \f$Delta < 0\f$. (see Guetig, 
 Aharonov, Rotter and Sompolinsky (2003). Learning input correlations through 
 non-linear asymmetric Hebbian plasticity. Journal of Neuroscience 23. 
 pp.3697-3714.) 
 
 Set \f$useFroemkeDanSTDP=1\f$ (this is the default value) and 
 use \f$tauspost\f$ and \f$tauspre\f$ for the rule given in Froemke and Dan 
 (2002). Spike-timing-dependent synaptic modification induced by natural spike 
 trains. Nature 416 (32002).

Nested Classes [hide private]

Inherited from SimObject: ID, PortType

Instance Methods [hide private]
 
__init__(...)
Help on DynamicStdpSynapse::DynamicStdpSynapse(float const Winit=1.00000000000000006228159145777985641889706869279e-9, float const tau=3.00000000000000006245004513516505539882928133011e-3, float const delay=1.0000000000000000208166817117216851329430937767e-3, float const U=2.00000000000000011102230246251565404236316680908e-1, float const D=1.00000000000000005551115123125782702118158340454e-1, float const F=4.00000000000000022204460492503130808472633361816e-1, float const u0=2.00000000000000011102230246251565404236316680908e-1, float const r0=1.0e+0, float const f0=-1.0e+0, bool const useFroemkeDanSTDP=true, float const tauspost=5.00000000000000027755575615628913510590791702271e-2, float const tauspre=5.00000000000000027755575615628913510590791702271e-2, float const taupos=5.00000000000000027755575615628913510590791702271e-2, float const tauneg=5.00000000000000027755575615628913510590791702271e-2, float const STDPgap=2.00000000000000004163336342344337026588618755341e-3, int const activeSTDP=1, float const Wex=1.00000000000000002092256083012847267532663408929e-8, float const Aneg=-2.0000000000000000728643946309954831583310941312e-10, float const Apos=2.0000000000000000728643946309954831583310941312e-10, float const mupos=0.0, float const muneg=0.0, float const back_delay=0.0) [constructor]
 
create(...)

Inherited from FroemkeDanStdpSynapse_EachPairStdpSynapse_DynamicSyn_CuBaSyn_ExponentialDecay: maxRelevantSpikeTimeDiff, stdpLearning

Inherited from EachPairStdpSynapse_DynamicSyn_CuBaSyn_ExponentialDecay: incoming, inputPortType, postSpikeHit, preSpikeHit, reset, spikeHit

Inherited from DynamicSyn_CuBaSyn_ExponentialDecay: getManagedDelay

Inherited from CuBaSyn_ExponentialDecay: advance, outgoing

Inherited from ExponentialDecaySpikeResponse: adjust, psrLength

Inherited from FiniteSpikeResponse: getAnalogOutput, isActive, nAnalogInputPorts, nAnalogOutputPorts, nSpikeInputPorts, nSpikeOutputPorts, outputPortType

Inherited from SimObject: check, deepCopy, getFieldOffset, init, owned_by_net, setAnalogInput, toBeActivated

Inherited from unreachable.instance: __new__

Inherited from object: __delattr__, __getattribute__, __hash__, __reduce__, __reduce_ex__, __repr__, __setattr__, __str__

Static Methods [hide private]
 
registerSimObject(...)
Help on static void DynamicStdpSynapse::registerSimObject() [member function]
Class Variables [hide private]

Inherited from FroemkeDanStdpSynapse_EachPairStdpSynapse_DynamicSyn_CuBaSyn_ExponentialDecay: __instance_size__

Inherited from SimObject: analog, spiking, undefined

Properties [hide private]

Inherited from FroemkeDanStdpSynapse_EachPairStdpSynapse_DynamicSyn_CuBaSyn_ExponentialDecay: Aneg, Apos, STDPgap, Wex, muneg, mupos, tauneg, taupos, tauspost, tauspre, useFroemkeDanSTDP

Inherited from EachPairStdpSynapse_DynamicSyn_CuBaSyn_ExponentialDecay: Winit, activeSTDP, back_delay

Inherited from DynamicSyn_CuBaSyn_ExponentialDecay: D, F, U, W, delay, f0, r0, u0

Inherited from ExponentialDecaySpikeResponse: tau

Inherited from FiniteSpikeResponse: psr

Inherited from object: __class__

Method Details [hide private]

__init__(...)
(Constructor)

 

Help on DynamicStdpSynapse::DynamicStdpSynapse(float const Winit=1.00000000000000006228159145777985641889706869279e-9, float const tau=3.00000000000000006245004513516505539882928133011e-3, float const delay=1.0000000000000000208166817117216851329430937767e-3, float const U=2.00000000000000011102230246251565404236316680908e-1, float const D=1.00000000000000005551115123125782702118158340454e-1, float const F=4.00000000000000022204460492503130808472633361816e-1, float const u0=2.00000000000000011102230246251565404236316680908e-1, float const r0=1.0e+0, float const f0=-1.0e+0, bool const useFroemkeDanSTDP=true, float const tauspost=5.00000000000000027755575615628913510590791702271e-2, float const tauspre=5.00000000000000027755575615628913510590791702271e-2, float const taupos=5.00000000000000027755575615628913510590791702271e-2, float const tauneg=5.00000000000000027755575615628913510590791702271e-2, float const STDPgap=2.00000000000000004163336342344337026588618755341e-3, int const activeSTDP=1, float const Wex=1.00000000000000002092256083012847267532663408929e-8, float const Aneg=-2.0000000000000000728643946309954831583310941312e-10, float const Apos=2.0000000000000000728643946309954831583310941312e-10, float const mupos=0.0, float const muneg=0.0, float const back_delay=0.0) [constructor]

Overrides: object.__init__

create(...)

 
Overrides: SimObjectFactory.create

registerSimObject(...)
Static Method

 

Help on static void DynamicStdpSynapse::registerSimObject() [member function]

Overrides: ExponentialDecaySpikeResponse.registerSimObject