Hi Jochen,
Yesterday night I checked that the problem is that I update the "rate" parameter
of a poisson_generator inside the Prepare()/Update() block. That is, with a simple code
like that, the poisson_generator does not generate any spike. Hence my neurons do not
spike, the speed execution is really fast and STDP synapses do not change their weight:
# Neurons creation
neurons = nest.Create("iaf_psc_alpha", ...)
#Connect neurons uisng STDP synapses
conn_dict = {...}
syn_dict = {"synapse_model":"stdp_synapse"}
nest.Connect(neurons,neurons, conn_dict, syn_dict )
#Connection with a poisson_generator in order to stimulate neurons
pg = nest.Create("poisson_generator",...)
nest.Connect(pg,neurons, ...)
nest.Prepare()
for i in range(10):
nest.SetStatus(pg,'rate',i*1000)
nest.Run(100)
nest.Cleanup()
But using Simulate() (without Prepare() and Cleanup()), the neurons spike and change their
STDP connections:
...
for i in range(10):
nest.SetStatus(pg,'rate',i*1000)
nest.Simulate(100)
Hence, it was my fault!
I tried to use Prepare() / Cleanup() because I do not want spike_recorder to clean the
data in the ascii file after every Simulate() call... hence I took a look at stimulation
backends, but I think it is not going to solve my problem.
Please, could you include some flag in order to append data to spike_recorders after every
Simulate() (i.e. Cleanup()) call? Some of us have post-processing external code (C++ in my
case) to post-process data from all the spike_recorder files generated by NEST 2.0 ...
Now, having to gather this information from much more files (changing spike_recorder
prefix file name after every Simulate() ) increase the complexity of our post-processing
code.
Thanks a lot in advance!
Xavier