Automatic conversion from Keras to Nengo with NengoDL
Blog post posted Apr 22, 2020 by Daniel Rasmussen
import nengo_dl converter = nengo_dl.Converter(my_keras_model)
and the Converter will take care of all the rest! The result is a Nengo Network that produces the same behaviour as the original Keras model (both for training and inference). Whenever possible this will be done using native Nengo objects, but the Converter can also use NengoDL’s TensorNodes to build hybrid Nengo/TensorFlow networks.
In addition to producing behaviour equivalent to Keras, the Converter can also be used to enhance a Keras model. In particular, it is designed to assist in the translation from a non-spiking Keras model into a spiking Nengo network. More details on this process can be found in this example , which walks through the entire process of translating a Keras model into spikes and then optimizing the performance of the spiking model to match the original, non-spiking network.
Once a Keras model has been converted to a native Nengo network it enjoys all of the benefits of the Nengo ecosystem. For example, these networks will be able to run on any Nengo-supported hardware platform. This can be seen in action in this example , where a Keras model is converted to a Nengo network using the NengoDL Converter and then deployed onto neuromorphic hardware using Nengo Loihi.