Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/nengo/nengo-dl

Deep learning integration for Nengo
https://github.com/nengo/nengo-dl

deep-learning nengo neural-networks neuroscience python spiking-neural-networks tensorflow

Last synced: 2 days ago
JSON representation

Deep learning integration for Nengo

Awesome Lists containing this project

README

        

.. image:: https://img.shields.io/pypi/v/nengo-dl.svg
:target: https://pypi.org/project/nengo-dl
:alt: Latest PyPI version

.. image:: https://img.shields.io/pypi/pyversions/nengo-dl.svg
:target: https://pypi.org/project/nengo-dl
:alt: Python versions

|

.. image:: https://www.nengo.ai/design/_images/nengo-dl-full-light.svg
:target: https://www.nengo.ai/nengo-dl
:alt: NengoDL
:width: 400px

***********************************
Deep learning integration for Nengo
***********************************

NengoDL is a simulator for `Nengo `_ models.
That means it takes a Nengo network as input, and allows the user to simulate
that network using some underlying computational framework (in this case,
`TensorFlow `_).

In practice, what that means is that the code for constructing a Nengo model
is exactly the same as it would be for the standard Nengo simulator. All that
changes is that we use a different Simulator class to execute the
model.

For example:

.. code-block:: python

import nengo
import nengo_dl
import numpy as np

with nengo.Network() as net:
inp = nengo.Node(output=np.sin)
ens = nengo.Ensemble(50, 1, neuron_type=nengo.LIF())
nengo.Connection(inp, ens, synapse=0.1)
p = nengo.Probe(ens)

with nengo_dl.Simulator(net) as sim: # this is the only line that changes
sim.run(1.0)

print(sim.data[p])

However, NengoDL is not simply a duplicate of the Nengo simulator. It also
adds a number of unique features, such as:

- optimizing the parameters of a model through deep learning
training methods (using the Keras API)
- faster simulation speed, on both CPU and GPU
- automatic conversion from Keras models to Nengo networks
- inserting TensorFlow code (individual functions or whole
network architectures) directly into a Nengo model

If you are interested in NengoDL you may also be interested in
`KerasSpiking `_, a
companion project to NengoDL that has a more minimal feature set but integrates
even more transparently with the Keras API. See
`this page `_ for a more
detailed comparison between the two projects.

**Documentation**

Check out the `documentation `_ for

- `Installation instructions
`_
- `Details on the unique features of NengoDL
`_
- `Tutorial for new users with a TensorFlow background
`_
- `Tutorial for new users with a Nengo background
`_
- `More in-depth examples `_
- `API reference `_