Hi Russell,
Depending on how your optimization algorithm works, it may still be a sensible idea to set up many independent neurons in a single simulation. If your algorithm requires more than one
new function evaluation per step (the extreme case would be evolutionary algorithms evaluating a whole generation at once), it will be more efficient to create N neurons and N dc_generators at once, connect them one-to-one and simulate than to create one neuron
and one dc_generator N times over.
Best,
Hans Ekkehard
--
Prof. Dr. Hans Ekkehard Plesser
Head, 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
Home http://arken.nmbu.no/~plesser
On 10/11/2021, 09:40, "Russell J. Jarvis" <russelljarvis@protonmail.com> wrote:
I forgot to provide some missing context.
The interface is for optimizing single cells, not networks. I know that NESTs main use case is efficient network simulation, and single cell simulations are not its best use case, but the point of this work is
to optimize single cell behaviors by fitting them to spike trains, and then later comprising a NEST network from these optimized cells.
Russell Jarvis
(he,him)
PhD Neuroscience
I acknowledge the Dja Dja Wurrung and Taungurung Owners and Custodians of the lands on which I live and work and pay my respect to Elders past, present and future.
phone:
61444576301 |
email:
russelljarvis@protonmail.com |
Sent with
ProtonMail Secure Email.
‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On Wednesday, November 10th, 2021 at 19:17, Hans Ekkehard Plesser <hans.ekkehard.plesser@nmbu.no> wrote:
Hi Russell,
If you run experiments with different currents, do you do something like
model = NESTADEXP(nest=nest, attrs=model_params)
model.inject_square_current(inject_param_1)
model.inject_square_current(inject_param_2)
model.inject_square_current(inject_param_3)
with different parameter dictionaries?
Looking at the code for your Izhi adapter, it seems that you create a single neuron instance in the NESTADEXP constructor and then run repeated simulations on that one neuron instance by repeated Simulate() calls. In this case, there is no reset at all: the second simulation continues where the first ended, and so on.
Thus, later runs will be influenced by earlier runs.
Furthermore, you need to be careful about start/stop for the dc generator since these are absolute points in time for the dc_generator, so if you need to move them forward as you go from simulation to simulation.
To get independent results, create a new network for each simulation you want to perform or create many neurons each with its own input and simulate them together. That is probably most efficient if you can work in batches.
Best,
Hans Ekkehard
--
Prof. Dr. Hans Ekkehard Plesser
Head, 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
Home http://arken.nmbu.no/~plesser
On 10/11/2021, 08:43, "Russell J. Jarvis" <russelljarvis@protonmail.com> wrote:
Hi there NEST community,
I am trying to build an interface between NEST reduced cell models (Izhikevich/AdExp) and NeuronUnit.
For example here is one such interface
I find that if I run a single current injection experiment using the interface I get an expected number of spikes, but if I keep re-using the same interface in more and more experiments I get the same or similar number of spikes even with different current injection values. Its as if the initial conditions of the model are not re-setting properly.
I wonder if there are any ideas of things I could check.
This simple file works okay, but it only has one simulation run.
Russell Jarvis (he,him)
PhD Neuroscience
I acknowledge the Dja Dja Wurrung and Taungurung Owners and Custodians of the lands on which I live and work and pay my respect to Elders past, present and future.
phone: 61444576301
email: russelljarvis@protonmail.com
Sent with ProtonMail Secure Email.