changing spiking dynamics

60 views
Skip to first unread message

Alfonso Yamamoto

unread,
Jul 26, 2024, 9:58:36 AM7/26/24
to SpiNNaker Users Group
Hi all,
I was wondering what would be the best way to change the standard synapse dynamics. 
From the code I see that the weights are added up at the post synaptic neuron like so:Screenshot from 2024-07-26 11-45-38.png
But what if I want to change the delta function to a more complex function? I looked into STDP, but I do not want to update the value of my weights. Rather, I want to multiply each weight by some function that depends on the state of the presynaptic neuron, then this would be the value added to the synaptic input buffer.
Best regards, 
Alfonso

Andrew Rowley

unread,
Jul 26, 2024, 10:05:45 AM7/26/24
to Alfonso Yamamoto, SpiNNaker Users Group

Hi,

 

It sounds in that case like you want a “full neuron” implementation, something more like this:

https://github.com/SpiNNakerManchester/sPyNNakerNewModelTemplate/blob/master/c_models/src/my_models/implementations/my_full_neuron_impl.h

 

with matching Python code here:

https://github.com/SpiNNakerManchester/sPyNNakerNewModelTemplate/blob/master/python_models8/neuron/implementations/my_full_neuron_impl.py

https://github.com/SpiNNakerManchester/sPyNNakerNewModelTemplate/blob/master/python_models8/neuron/builds/my_full_neuron.py

 

This lets you consider all parts of the neuron model rather than the components.  You can still make use of components in your code though if you want some but not all of them, see e.g.:

https://github.com/SpiNNakerManchester/sPyNNakerNewModelTemplate/blob/master/c_models/src/my_models/implementations/my_neuron_impl_semd.h

https://github.com/SpiNNakerManchester/sPyNNakerNewModelTemplate/blob/master/python_models8/neuron/builds/my_if_curr_exp_sEMD.py

 

Hopefully that gives you what you want but feel free to ask more if not!

 

Andrew :)

 

From: spinnak...@googlegroups.com <spinnak...@googlegroups.com> On Behalf Of Alfonso Yamamoto
Sent: Friday, July 26, 2024 10:59 AM
To: SpiNNaker Users Group <spinnak...@googlegroups.com>
Subject: [SpiNNaker Mailing List] changing spiking dynamics

 

Hi all,

I was wondering what would be the best way to change the standard synapse dynamics. 

From the code I see that the weights are added up at the post synaptic neuron like so:

But what if I want to change the delta function to a more complex function? I looked into STDP, but I do not want to update the value of my weights. Rather, I want to multiply each weight by some function that depends on the state of the presynaptic neuron, then this would be the value added to the synaptic input buffer.

Best regards, 

Alfonso

--
You received this message because you are subscribed to the Google Groups "SpiNNaker Users Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to spinnakeruser...@googlegroups.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/spinnakerusers/39d079a5-9b45-4de5-864f-56f0d6a80848n%40googlegroups.com [groups.google.com].

Alfonso Yamamoto

unread,
Jul 29, 2024, 9:02:53 AM7/29/24
to SpiNNaker Users Group
Hi Andrew, 
Thank you for the input.
I was wondering how would you go about accessing the current time of the simulation for calculation of either voltage or current.
For example, take the equation on my original question. Instead of having weight_ij * delta(t - t_j) what if delta is some function f(t, t_j, other_parameters...). 
Also the delta(t-t_j) in the original spinnaker code is implicit. But I want to explicitly use the value t, at some points I want to save the value for future calculations.

Alfonso :)

Andrew Rowley

unread,
Jul 29, 2024, 9:09:25 AM7/29/24
to Alfonso Yamamoto, SpiNNaker Users Group

Hi,

 

The SpiNNaker simulation progresses by a fixed duration in general, which is the simulation time step.  You are given the current time step being calculated for in the neuron_impl_do_timestep_update function (the time value).  If you want to calculate over longer durations instead, this is fine; you could simply store somewhere within the state of the neuron (or just as a static variable if it isn’t a per-neuron thing) the last time you did the calculation.  Note though that the spike time cannot be before the current time i.e. if you find that after calculation you should have sent a spike a few time steps prior, you would be too late to do so.

 

Andrew :)

 

From: spinnak...@googlegroups.com <spinnak...@googlegroups.com> On Behalf Of Alfonso Yamamoto
Sent: Monday, July 29, 2024 10:03 AM
To: SpiNNaker Users Group <spinnak...@googlegroups.com>
Subject: Re: [SpiNNaker Mailing List] changing spiking dynamics

 

Hi Andrew, 
Thank you for the input.

I was wondering how would you go about accessing the current time of the simulation for calculation of either voltage or current.

For example, take the equation on my original question. Instead of having weight_ij * delta(t - t_j) what if delta is some function f(t, t_j, other_parameters...). 

Also the delta(t-t_j) in the original spinnaker code is implicit. But I want to explicitly use the value t, at some points I want to save the value for future calculations.

 

Alfonso :)

On Friday, July 26, 2024 at 12:05:45PM UTC+2 Andrew Rowley wrote:

Hi,

 

It sounds in that case like you want a “full neuron” implementation, something more like this:

 

with matching Python code here:

 

This lets you consider all parts of the neuron model rather than the components.  You can still make use of components in your code though if you want some but not all of them, see e.g.:

 

Hopefully that gives you what you want but feel free to ask more if not!

 

Andrew :)

 

From: spinnak...@googlegroups.com <spinnak...@googlegroups.com> On Behalf Of Alfonso Yamamoto
Sent: Friday, July 26, 2024 10:59 AM
To: SpiNNaker Users Group <spinnak...@googlegroups.com>
Subject: [SpiNNaker Mailing List] changing spiking dynamics

 

Hi all,

I was wondering what would be the best way to change the standard synapse dynamics. 

From the code I see that the weights are added up at the post synaptic neuron like so:

But what if I want to change the delta function to a more complex function? I looked into STDP, but I do not want to update the value of my weights. Rather, I want to multiply each weight by some function that depends on the state of the presynaptic neuron, then this would be the value added to the synaptic input buffer.

Best regards, 

Alfonso

--
You received this message because you are subscribed to the Google Groups "SpiNNaker Users Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to spinnakeruser...@googlegroups.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/spinnakerusers/39d079a5-9b45-4de5-864f-56f0d6a80848n%40googlegroups.com [groups.google.com].

--
You received this message because you are subscribed to the Google Groups "SpiNNaker Users Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to spinnakeruser...@googlegroups.com.

Reply all
Reply to author
Forward
0 new messages