Can we create a spiking Generative adversarial network

Hi @vishwak1002, welcome to the Nengo forum!

Implementing a spiking GANs is definitely possible with Nengo, though it is not as straightforward as models that have been around longer (like CNNs).

Generally, the main thing that you should look into is NengoDL, which is how we have been using Nengo for most machine learning tasks. Depending on your familiarity with various tools, you might implement the spiking GAN by taking a normal GAN written with keras and converting it with NengoDL. You could also implement it directly in the Nengo API. If you do have familiarity with TensorFlow, then this example should be helpful; if not, you can go straight to an example that doesn’t assume any particular background (e.g., spiking MNIST).

The main thing that is missing is a transposed convolution (deconvolution) operator. @Eric has been doing some work with GANs and in order to implement it with Nengo, he needed to write a custom transform, which he’s let me share here: convolution_transpose.py (5.8 KB)

Hopefully that’s enough to get you started. As you run into issues along the way, feel free to post more specific questions here on the forum and we’ll be able to help further!

1 Like