  Configuring deep Spiking Neural Networks (SNNs) is an exciting research
avenue for low power spike event based computation. However, the spike
generation function is non-differentiable and therefore not directly compatible
with the standard error backpropagation algorithm. In this paper, we introduce
a new general backpropagation mechanism for learning synaptic weights and
axonal delays which overcomes the problem of non-differentiability of the spike
function and uses a temporal credit assignment policy for backpropagating error
to preceding layers. We describe and release a GPU accelerated software
implementation of our method which allows training both fully connected and
convolutional neural network (CNN) architectures. Using our software, we
compare our method against existing SNN based learning approaches and standard
ANN to SNN conversion techniques and show that our method achieves state of the
art performance for an SNN on the MNIST, NMNIST, DVS Gesture, and TIDIGITS
datasets.
