Hi Charl,
Thanks for your prompt reply. What I mean to say is that I'd like to save
the network parameters, specifically the connections (i.e. weights, delays
etc.) and neuron parameters. There is no plasticity in the network, as I am
simply initialising a network of neurons with probabilistic, random
connections between each other (a liquid state machine, in other words).
My intention is to use the network in a real-time control architecture, so
I don't need to replicate *exactly *the same output for a given input
stimulation but I do need an output that is comparable. Currently, I am
using the states of the network to train a classifier offline, but this
classifier is fitted to the behaviour of the network that it trains on. To
be able to use the classifier again, I will need to recreate that
network, which leads me to the question of "saving the entire network".
Once I can do so, it becomes possible to run simulations episode by episode
rather than queueing all the episodes into a single batch for simulation,
which is critical for my purpose. I hope that clarifies the question.
Cheers,
Sock Ching
On Tue, 4 Aug 2020 at 09:01, Charl Linssen <nest-users(a)turingbirds.com>
wrote:
Dear Sock Ching,
When you say "I would like to save the network", could you elaborate on
what exact part of the state you want to save and recall? For instance, in
case of simulating plasticity, all the weights can be (re)set by calling
SetStatus() on each connection object. The same goes for neuronal state
variables. There are a few things that cannot be reset at the time of
writing, such at the random number generators, but this is only an issue if
you try to reproduce the same run *exactly*, multiple times in a row. The
biggest issue might be that spike buffers (spikes in transit) cannot be
reset. Potentially, you could work around this by allowing a small "startup
transient", i.e. ignoring whatever your network produces in the first few
hundred or so milliseconds after starting simulation. If this startup
transient is causing you trouble, however, please feel invited to submit a
feature request on our GitHub repository for spike buffer reset
functionality. (Please provide as much technical detail as possible.)
There is already some prior discussion on this topic at
https://github.com/nest/nest-simulator/issues/1618, where it was decided
that just having a global "ResetNetwork()" function was not feasible,
because it is not clear for the general case what this function would do.
So in case you open a new GitHub issue, please try to specify as precisely
as possible what parts of your network state need to be (re)set.
Hope this helps, please don't hesitate to share your further experiences.
Best regards,
Charl
On Mon, Aug 3, 2020, at 19:19, LOW, SOCK CHING wrote:
Hi,
I am new to pynest and am using it to implement a liquid state machine. It
works marvelously for generating the network. My workflow is as follows:
- Initialise kernel
- Get stimulation episodes
- Create neurons (including spike generators)
- Connect neurons
- nest.Simulate()
- nest.GetStatus(recording_neurons) for readout at relevant timepoints
I would like to save the network so I can run nest.Simulate() on other
episodes in a real-time application, is there a straight-forward way to do
so?
I have tried pickling
conn = nest.GetConnections()
but to my knowledge that does not include a lot of details about the
connection, like the weight. It also does not return where there is *no* connections,
which means simply using
nest.SetConnections(conn)
prior to nest.Simulate() will not work to reproduce the previously
generated network even if I initialise with all the same variables. I have
found the functions GetNetwork() and GetNodes() but I'm not sure how I can
use them, or if they are even useful for what I need.
Cheers,
Sock Ching
_______________________________________________
NEST Users mailing list -- users(a)nest-simulator.org
To unsubscribe send an email to users-leave(a)nest-simulator.org
_______________________________________________
NEST Users mailing list -- users(a)nest-simulator.org
To unsubscribe send an email to users-leave(a)nest-simulator.org