Hi Hans,
Great news to be able to call GetConnections() just once ... it speedsA LOT my runnings
(from 230-ish seconds to 90-ish) :-)
I tried the Prepare/Run/Cleanup some time ago (nice solution), but since I have to use
SetStatus() to update normalized weights between Prepare() and Cleanup(), I cannot use it
:-(
Best,
Xavier
Hans Ekkehard Plesser wrote:
Hi Xavier,
The result of `GetConnections()` remains valid as long as no new synapses are added or
synapses deleted, so in your case, you only need to call it once.
When you then do a `conn.weight`, you will get the weights at that point in time. But
note
that NEST only updates synaptic weights when a spike actually passes through the
synapse,
so you will get for each synapse the weight as it was at the end of the plasticity
update
when the most recent spike passed through that synapse.
Instead of calling Simulate() repeatedly, you can also use a RunManager context for
higher
efficiency, see
https://nest-simulator.readthedocs.io/en/stable/nest_behavior/running_simul….
In case you should be wondering why global instantaneous normalization is so cumbersome
in
NEST: We have focused on support for biologically plausible networks so far and
instantaneous global normalization is just not biologically plausible (nor physically
feasible with a view to causality).
Best,
Hans Ekkehard
--
Prof. Dr. Hans Ekkehard Plesser
Department of Data Science
Faculty of Science and Technology
Norwegian University of Life Sciences
PO Box 5003, 1432 Aas, Norway
Phone +47 6723 1560
Email hans.ekkehard.plesser@nmbu.no<mailto:hans.ekkehard.plesser@nmbu.no>
Home
http://arken.nmbu.no/~plesser
From: Xavier Otazu <xotazu(a)cvc.uab.cat>
Date: Thursday, 8 February 2024 at 19:46
To:
users(a)nest-simulator.org <users(a)nest-simulator.org>
Subject: [NEST Users] Re: Weights assignment error with mpirun
[Du mottar ikke ofte e-post fra xotazu(a)cvc.uab.cat. Finn ut hvorfor dette er viktig p?
https://aka.ms/LearnAboutSenderIdentification ]
Hi Hans,
Thanks for your information. Fortunately, I do not normalize output connections (only
input), hence, this code works for me.
Another question. Take that I call nest.Simulate() inside a for loop and I want to
normalize weights after every iteration. In order to avoid calling GetConnections() for
every loop iteration, may I get the connections calling GetConnections() just once? May
I
safely suppose that after every Simulate() new weights of my connections (they are
changed
because I use STDP) will be available (for reading) using the same variable? An example
code would be something like:
my_conn = GetConnections(...)
for iter in range(...)
nest.Simulate(...)
normalize_connections(my_conn) # function that normalizes weights and calls
nest.SetStatus(my_conn, ...)
Many thanks in advance!
Xavier
_______________________________________________
NEST Users mailing list --
users(a)nest-simulator.org
To unsubscribe send an email to
users-leave(a)nest-simulator.org