Nengo_dl within the Nengo GUI


Is it possible to run nengo_dl’s tensornodes within the Nengo GUI?

I hadn’t tried it before, but gave it a go. There was a small bug related to Nengo GUI checking an attribute that doesn’t exist on TensorNodes, but I fixed that. You’ll need to perform a developer installation to get the latest updates, but with those you should be able to run TensorNodes in Nengo GUI.

Note that TensorNode support in the GUI is still pretty rudimentary. For example, sliders won’t work (that would require some changes to Nengo GUI to allow it to interact with TensorFlow/NengoDL). But you’ll be able to run a model containing TensorNodes, and plot their output (using the “value” plot option). Adding ways for different backends to extend the GUI (which would allow better support for things like TensorNodes) is definitely on our todo list!

Ah great! I’ll give that a try.

Do you know if there would there be any conflicts using tensornodes and opencl on the same GPU? When running the nengo gui with a different backend, would it be better to run nengo --backend=nengo_ocl over nengo --backend=nengo_dl or does this not really make a difference?


Sorry for the slow response, I missed your reply.

There should be no problem running nengo_dl and nengo_ocl at the same time, however, you may need to add the line nengo_dl.configure_settings(session_config={"gpu_options.allow_growth": True}) inside your nengo Network definition. Basically that tells TensorFlow not to grab all the available GPU memory, so that you can run models with different GPU backends at the same time. Note however that TensorNodes can only run in NengoDL (so you couldn’t run your TensorNode model in NengoOCL).

Starting the gui with the --backend option just sets the initial simulator. You can always change that later by clicking on “Utilities -> Configure settings” (in the top left), and then change the simulator in the dropdown at the bottom. So it doesn’t make too much difference which you use when starting the GUI.

No worries. :slight_smile:
The allow_growth option probably solves the memory issues I’ve been running into.