Code Monkey home page Code Monkey logo

nengo.github.io's Introduction

Latest PyPI version Python versions

Nengo: Large-scale brain modelling in Python

An illustration of the three principles of the NEF

Nengo is a Python library for building and simulating large-scale neural models. Nengo can create sophisticated spiking and non-spiking neural simulations with sensible defaults in a few lines of code. Yet, Nengo is highly extensible and flexible. You can define your own neuron types and learning rules, get input directly from hardware, build and run deep neural networks, drive robots, and even simulate your model on a completely different neural simulator or neuromorphic hardware.

Installation

Nengo depends on NumPy, and we recommend that you install NumPy before installing Nengo. If you're not sure how to do this, we recommend using Anaconda.

To install Nengo:

pip install nengo

If you have difficulty installing Nengo or NumPy, please read the more detailed Nengo installation instructions first.

If you'd like to install Nengo from source, please read the developer installation instructions.

Nengo is tested to work on Python 3.6 and above. Python 2.7 and Python 3.4 were supported up to and including Nengo 2.8.0. Python 3.5 was supported up to and including Nengo 3.1.

Examples

Here are six of many examples showing how Nengo enables the creation and simulation of large-scale neural models in few lines of code.

  1. 100 LIF neurons representing a sine wave
  2. Computing the square across a neural connection
  3. Controlled oscillatory dynamics with a recurrent connection
  4. Learning a communication channel with the PES rule
  5. Simple question answering with the Semantic Pointer Architecture
  6. A summary of the principles underlying all of these examples

Documentation

Usage and API documentation can be found at https://www.nengo.ai/nengo/.

To build the documentation yourself, run the following command:

python setup.py build_sphinx

This requires Pandoc to be installed, as well as some additional Python packages. For more details, see the Developer Guide.

Development

Information for current or prospective developers can be found at https://www.nengo.ai/contributing/.

Getting Help

Questions relating to Nengo, whether it's use or it's development, should be asked on the Nengo forum at https://forum.nengo.ai.

nengo.github.io's People

Contributors

abagrahari avatar alexeliasmith avatar allenhw avatar andili99 avatar arvoelke avatar atait avatar austinwang23 avatar averyryoo avatar bjkroeger avatar bmorcos avatar bryanling1 avatar celiasmith avatar clvcooke avatar drasmuss avatar filgusto avatar furlong-cmu avatar girishmm avatar hoomanramezani avatar hunse avatar jgosmann avatar kinjalpatel27 avatar leomrocha avatar michaeljurado42 avatar michaelnasello avatar narsimhachilkuri avatar nickledave avatar olhawloch avatar pblouw avatar seanny123 avatar tbekolay avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nengo.github.io's Issues

getting-started page contains a broken link (single_neuron notebook)

The page https://www.nengo.ai/getting-started/ refers to single_neuron.ipynb (recently renamed to single-neuron.ipynb) and links to the old (missing) notebook on the GitHub repo.

It may also be helpful to link to the corresponding page in the documentation (https://www.nengo.ai/nengo/examples/basic/single-neuron.html) so that a user knows where to look to see the rendered version of that same notebook.

See nengo/nengo#1633 for context and additional details.

Landing Page Formatting

The landing page for nengo.ai (index.rst) looks strange to me (Ubuntu 16.04, Google Chrome 74.0.3729.131) , not sure if it's intentional:

  • Large font for all text, including bullets
  • Double spaced bullet list
  • Because of the large font and bullet spacing, the text doesn't align well with the images on the right.

screenshot79

Put all subprojects' generated static pages here

Aside from the generic info that I've made issues for (and the info I haven't made issues for yet), we should also put all of the HTML files generated by Sphinx here.

There are a few reasons to put it here rather than in each project's gh-pages branch.

  1. It's easy to write a script that clones a repo, checks out a branch, runs sphinx (or typedoc or whatever) and copies the output to a certain location in this repo. Doing it by checking out an orphan branch and pruning away the non-documentation stuff etc etc is not as easy to script.
  2. The generated docs can get pretty big (2.5 MB zipped up for Nengo) so keeping them in a branch in each repo will negatively impact how long it takes to clone each project's repo. By keeping it all in this repo, it means that this one will be a pain to clone, but better for one repo (that many people won't ever clone) to be huge than to have all our repos be large.

Each subproject will be put in a subfolder off the root, and then within that subfolder, there will be a folder for each release. For example, for Nengo there'll be separate copies of the docs at

and so on. Similarly, there will be a https://nengo.ai/nengo_gui/0.2.0, etc.

The action items needed to get this working (once we have this repo set up in general) are to:

  • Add scripts to check out and build docs for each project.
  • Figure out how to link to those docs from the generic documentation in this repo.

Add more obvious link to Nengo core documentation

Finding the Nengo core documentation (which is arguably more important than the documentation of the other subproject) could be easier. The fastest way at the moment seems to be to click on Nengo projects, scroll down and click that small Documetation button under Nengo core.

It also happened to me repeatedly that I clicked User Guide when I was actually looking for the Nengo core user guide (which is different).

Link to model archive

Have we decided what we're going to do for the model archive? I think we talked about this once and discussed how moving away from Drupal was a priority, but we weren't sure if it could be moved to github pages or not.

Document for backend developers

Ported from nengo/nengo#711; the document should take developers through all of the requirements and helper functions for developing a backend.

It should include an explanation of how to run Nengo unit tests, including how the Simulator.unsupported attribute works (which was the subject of nengo/nengo#711).

We should also link to existing backends, and provide a process for new backends to be included on the list.

Neural simulator page - Dispelling common criticisms of Nengo

Example 1: PyRates

Paper: https://www.biorxiv.org/content/biorxiv/early/2019/04/13/608067.full.pdf

Quote:

However, most often it is not possible to add new models or modeling mechanisms to this pool without considerable effort. This holds true especially, if one still wants to benefit from the parallelization and optimization features of the respective software... Unfortunately, the tools that provide such code generation mechanisms are limited with regards to the model parts they allow to be customized in such a way and the families of neural models they can express.

Rebuttal:
https://www.nengo.ai/nengo/examples/usage/rectified_linear.html

Example 2: DracuLab

Paper: https://www.frontiersin.org/articles/10.3389/fninf.2019.00018/full

Quote:

There are excellent simulators for firing rate networks (Aisa et al., 2008; Cofer et al., 2010; Rougier and Fix, 2012; Bekolay et al., 2014; Vitay et al., 2015; Tosi and Yoshimi, 2016), but it is unusual to find rate simulators that take into account connection delays.

Rebuttal:
https://arvoelke.github.io/nengolib-docs/nengolib.synapses.DiscreteDelay.html#nengolib.synapses.DiscreteDelay

Example 3: TODO ...

nengo.ai should have a link to the forum

So far nengo.ai would redirect to the forum, but it now leads to a new main page that has no obvious link to the forum. That may confuse people who used nengo.ai (instead of forum.nengo.ai) so far to get to the forum.

Document Python style

  • Generally, we conform to pep8 and check this through flake8
  • We use numpydoc conventions for docstrings
    • Parameters are ordered as in the call; attributes are alphabetically ordered (see nengo/nengo#959)
  • Class members are ordered in a specific order (see nengo/nengo#959)

Transfer content from nengo.ca

This page is designed to replace nengo.ca, so we should copy over any relevant content to this repo.

Additionally, the notes in nengo/nengo#763 should be implemented here when porting it over.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.