Thank you for the response. 
The second point first. I tried to get your example code to work some time ago and gave up as being too difficult. The question I now have is does saving the node weights fully describe the state of the network, or at least to a first approximation,  or are there internal nest conditions that need to be restored? It seems easier to dump the weights to a pickle file and reinstate them at start-up.

This is a real time system to emulate the motion of C.elegans. and I am attempting to update the parameters dynamically including the neuron weights to be able to see the result of the changes in parameter.
Is normalisation the correct way to update synapse weights?. I tried addressing the neuron weight directly but this failed with pyNN so I changed to doing it with normalisation. It does at least  change the simulation response. but I need a param_value of 470 to achieve a weight of around unity.

The method pm_normalisation_weights is basically the example code and attempts to normalise to param_value which would be a synapse weight of typically 0.45. This is the initial value I have been using to create the neurons and run the simulation until now. The introduction of the normalisation module resulted in needing a param_value of 470 to achieve a similar simulation response to the un-normalised version. Is this the scaling that Barna indicated? The question then is why scaling.



On Mon, Dec 2, 2024 at 11:53 AM Charl Linssen <nest-users@turingbirds.com> wrote:
Hi Peter,

In the page on weight normalisation (https://nest-simulator.readthedocs.io/en/v3.8/synapses/weight_normalization.html), an  example is shown that normalises the L1-norm of the vector. Indeed, it divides by sum(abs(w)). So after the normalisation step, |w| = 1. I don't know where the number 420 comes from, perhaps you can check your code on a more simple example with only one neuron (or send us a minimal reproducing code for the issue).

For your second query, please see: https://nest-simulator.readthedocs.io/en/latest/auto_examples/store_restore_network.html

Hope this helps!

With kind regards,
Charl

On Sun, Dec 1, 2024, at 21:00, Peter Mason wrote:

 I am currently working on a project involving synaptic weight normalization using the guidelines provided in the NEST simulator documentation. I have implemented the normalization process; however, I encountered some questions that I would appreciate your insights on.

  1. Normalization Value: I found that the normalization value for a neuron with approximately 190 synapses is around 420, which I do not fully understand. This looks like the total weight of the neuron synapses. Could you provide clarification on how the normalisation value is determined?

  2. Simulation State Preservation: I would like to save and restore the state of synaptic weights to maintain the simulation's behaviour across sessions. Below is the pseudocode I intend to use:

    Save synaptic weights:
        w = array of current weights of neuron connections
        normalization_factor = sum of absolute weights
        if normalization_factor != 0:
            normalized_weights = w / normalization_factor
        save normalized_weights to file
    
    Load synaptic weights:
        read normalized_weights from file
        assign loaded weights back to connection
    

    I would like to know if you have any suggestions for improving this pseudocode or if there are best practices I should consider.

Thank you for your time and assistance. I look forward to your response.

_______________________________________________
NEST Users mailing list -- users@nest-simulator.org
To unsubscribe send an email to users-leave@nest-simulator.org


_______________________________________________
NEST Users mailing list -- users@nest-simulator.org
To unsubscribe send an email to users-leave@nest-simulator.org