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