BindsNET / bindsnet

Simulation of spiking neural networks (SNNs) using PyTorch.
GNU Affero General Public License v3.0
1.5k stars 331 forks source link

Global network (formed by 2 Diehl&Cook nets and connected by their excitatory layers) possible to be done? #562

Closed ManjaJRamon closed 2 years ago

ManjaJRamon commented 2 years ago

Hi, i'm trying to implement this paper https://ieeexplore.ieee.org/document/8482490 which was originally done in Brian2, now in Bindsnet, using the MNIST Dataset. For the audio network I already have an implementation that transforms audio samples in images of the number spoken in the original sample, so the entrance for the image subnet would be the MNIST dataset, and for the audio subnet would be a pseudo-MNIST which come out from this transformation but has the same dimensions 28px X 28px.

I'm not quite sure if you can create a network with two diferent Input() declarations and if it maps the entries, for example inputs = {"X" : batch1["image"], "Y" : batch2["image"]} and then only the content in inputs["X"] goes to Input1() and only the content of inputs["Y"] goes to Input2() when you execute the command network.run(inputs=inputs,...).

Also if i'm not wrong, the paper i'm trying to recreate in Bindsnet, requires the ability to manipulate nodes individually within a layer, with the aim of creating connections between specific nodes from one excitatory layer to the other one. As I've seen, when you create a Connection object in Bindsnet, the behaviour you specify to one node extends to the rest of the nodes allocated in the same layer, so the connections expected to appear between excitatory layers would not be possible, as it doesn't follow a global behaviour for all the nodes in the origin layer of the connection.

The article talks about being able to detect that a excitatory neuron from one of the nets predicts a "5" using MNIST dataset, and create a connection with trainable weights (stdp rule) with another excitatory neuron from the other net that also predicts a "5", but only in one direction and a p2p connection.

That is, at the end we would have all the excitatory neurons from both layers connected to excitatory neurons of the opposite network that predicts the same label as them.

My issue here is if i could get some feedback about whether the paper above being able to be reproduced in Bindsnet or not, as I think it can't, but I would like to know if I'm giving it a fair try.

Thanks in advance, i'll leave below the issue the image that can be found in the article and defines the network connections.

multimodal net

Hananel-Hazan commented 2 years ago

Closing the issue. Duplicate with discussion and this post is not an issue with BindsNET