ANNarchy 4.8.2
  • ANNarchy
  • Installation
  • Tutorial
  • Manual
  • Notebooks
  • Reference

  • Reference
  • Core components
    • Population
    • Projection
    • Neuron
    • Synapse
    • Monitor
    • PopulationView
    • Dendrite
    • Network
  • Configuration
    • setup
    • compile
    • clear
    • reset
    • set_seed
    • get_population
    • get_projection
    • populations
    • projections
    • monitors
  • Simulation
    • simulate
    • simulate_until
    • step
    • parallel_run
    • enable_learning
    • disable_learning
    • get_time
    • set_time
    • get_current_step
    • set_current_step
    • dt
  • Neuron models
    • LeakyIntegrator
    • Izhikevich
    • IF_curr_exp
    • IF_cond_exp
    • IF_curr_alpha
    • IF_cond_alpha
    • HH_cond_exp
    • EIF_cond_alpha_isfa_ista
    • EIF_cond_exp_isfa_ista
  • Synapse models
    • STP
    • STDP
    • Hebb
    • Oja
    • IBCM
  • Inputs
    • InputArray
    • TimedArray
    • PoissonPopulation
    • TimedPoissonPopulation
    • SpikeSourceArray
    • HomogeneousCorrelatedSpikeTrains
    • CurrentInjection
    • DecodingProjection
    • ImagePopulation
    • VideoPopulation
  • IO
    • save
    • load
    • save_parameters
    • load_parameters
  • Utilities
    • report
  • Random Distributions
    • Uniform
    • DiscreteUniform
    • Normal
    • LogNormal
    • Exponential
    • Gamma
    • Binomial
  • Functions and Constants
    • add_function
    • functions
    • Constant
    • get_constant
  • Plotting
    • raster_plot
    • histogram
    • inter_spike_interval
    • coefficient_of_variation
    • population_rate
    • smoothed_rate
  • Callbacks
    • every
    • callbacks_enabled
    • disable_callbacks
    • enable_callbacks
    • clear_all_callbacks
  • Convolution
    • Convolution
    • Pooling
    • Transpose
    • Copy
  • BOLD monitoring
    • BoldMonitor
    • BoldModel
    • balloon_RN
    • balloon_RL
    • balloon_CN
    • balloon_CL
    • balloon_maith2021
    • balloon_two_inputs
  • Tensorboard logging
    • Logger
  • ANN-to-SNN conversion
    • ANNtoSNNConverter

On this page

  • STDP

STDP

models.Synapses.STDP(
    self,
    tau_plus=20.0,
    tau_minus=20.0,
    A_plus=0.01,
    A_minus=0.01,
    w_min=0.0,
    w_max=1.0,
)

Spike-timing dependent plasticity, online version.

Song, S., and Abbott, L.F. (2001). Cortical development and remapping through spike timing-dependent plasticity. Neuron 32, 339-350.

Parameters (global):

  • tau_plus = 20.0 : time constant of the pre-synaptic trace (ms)
  • tau_minus = 20.0 : time constant of the pre-synaptic trace (ms)
  • A_plus = 0.01 : increase of the pre-synaptic trace after a spike.
  • A_minus = 0.01 : decrease of the post-synaptic trace after a spike.
  • w_min = 0.0 : minimal value of the weight w.
  • w_max = 1.0 : maximal value of the weight w.

Variables:

  • x : pre-synaptic trace:
tau_plus  * dx/dt = -x
  • y: post-synaptic trace:
tau_minus * dy/dt = -y

Both variables are evaluated event-driven.

Pre-spike events:

g_target += w

x += A_plus * w_max

w = clip(w + y, w_min , w_max)

Post-spike events::

y -= A_minus * w_max

w = clip(w + x, w_min , w_max)

Equivalent code:


STDP = ann.Synapse(
    parameters = """
        tau_plus = 20.0 : projection
        tau_minus = 20.0 : projection
        A_plus = 0.01 : projection
        A_minus = 0.01 : projection
        w_min = 0.0 : projection
        w_max = 1.0 : projection
    """,
    equations = """
        tau_plus  * dx/dt = -x : event-driven
        tau_minus * dy/dt = -y : event-driven
    """,
    pre_spike="""
        g_target += w
        x += A_plus * w_max
        w = clip(w + y, w_min , w_max)
    """,
    post_spike="""
        y -= A_minus * w_max
        w = clip(w + x, w_min , w_max)
    """
)
STP
Hebb
 

Copyright Julien Vitay, Helge Ülo Dinkelbach, Fred Hamker