SpiNNakerManchester / sPyNNaker

The SpiNNaker implementation of the PyNN neural networking language
Apache License 2.0
100 stars 42 forks source link

synapse to synapse connection? #904

Open Helloworld-Le opened 3 years ago

Helloworld-Le commented 3 years ago

Hi,

I am new to SpiNNaker hardware and sPyNNaker. I am trying to build a network in which I need synapse to synapse connections.

To explain it: This idea is inspired by axon-axon interactions in neural system. Both neuron A and B are connected to neuron C. A and B also have axon-axon connection. This axon-axon action will not change membrane potential/ neural activity of A or B themselves, but change their excitatory (or inhibitory) signals sending to C.

I have tried in other SNN simulators. Where synapse to synapse connection is impossible, my solution is building an extra layer (A_extra and B_extra) to replicate A and B 's activity. Instead of building AB axon-axon connection, I can build A to B_extra and B to A_extra standard connection. The change on axon signals can be now implemented as change on A_extra and B_extra, which will then send excitatory (or inhibitory) signal to C. The problem of this solution is the extra layer can double the network size and thus consume extra memory.

I am wondering if I can directly build synapse to synapse connections using sPyNNaker, and having this connections being able to carry out STDP learning?

best, Le

rowleya commented 3 years ago

In general, having a bigger network on SpiNNaker as you describe will not be a problem. It may be worth trying out this form on the platform to check that it does what you want it to.

It is certainly possible to add your own code to SpiNNaker which would let you do what you suggest though. One thought would be to have a custom neuron implementation for C, which would decide what happens with the signals of A and B at the reception side. This would then avoid using more cores. There is some information on custom neuron models in this tutorial: http://spinnakermanchester.github.io/spynnaker/5.0.0/NewNeuronModels5.1-LabManual.pdf

I would guess that your own custom "synapse type" implementation would be the thing to aim for here.

Let us know if you need more help with this.