Git Product home page Git Product logo

gennzoo's Introduction

GeNNZoo: Model Zoo for GeNN

This repository is my project for Google Summer of Code 2020.

Setting up your environment

You can find the environment.yml to recreate my local development environment in conda. Note that you may have to build pygenn from source or from one of the provided wheels, following the instructions here.

Navigating the repository

Below, you can find a description of the different folders and files to help you navigate the code.

  1. The neuron models and weight update models are housed in the models/ directory. It contains all the models you need for running the scripts in this repository.

  2. A good place to start are the two tutorial notebooks: Spike-driven Synaptic Plasticity Tutorial parts I and II. They explain the neuron model and weight update model from the paper: "Learning Real-World Stimuli in a Neural Network with Spike-Driven Synaptic Dynamics" by J. M. Brader, W. Senn and S. Fusi.. They also show how to reproduce some of the simulations described in this paper.

  3. We also include scripts to reproduce simulations from the paper: "SuperSpike: Supervised Learning in Multilayer Spiking Neural Networks" by F. Zenke and S. Ganguli.

    a. timed_spikes_exp1.py corresponds to the simulation from Fig. 2.
    Task description: Teach one output neuron to fire 5 equidistant spikes in a time-window of 500 ms. The output neuron receives input from a population of 100 neurons in the form of a frozen Poisson spike train.

    b. timed_spikes_exp2.py corresponds to the simulation from Fig. 4.
    Task description: This is the same task as in timed_spike_exp1.py but now with the addition of a hidden layer of 4 neurons to the network topology.

    c. xor.py corresponds to the simulation from Fig. 5.
    Task description: Teach a network to solve the XOR task. The input population consists of 100 neurons, divided into three non-overlapping groups: time-reference, input 1, and input 2. The hidden layer consists of 100 neurons. The output layer consists of 2 output neurons, one for each class.

    d. pattern.py corresponds to the simulation from Fig. 6.
    Task description: Teach a network to produce a predefined spike train. The chosen spike train is the pattern given here. The number of input and output neurons can depend on the chosen spike train. The number of hidden neurons can be changed depending on the desired configuration.

For each of these scripts, I have also provided inline comments where necessary to make the code clearer.

Mentors

Dr. Jamie Knight, Prof. Thomas Nowotny

gennzoo's People

Contributors

agarwalmanvi avatar tnowotny avatar

Stargazers

 avatar Ali Kazzazi avatar  avatar

Watchers

James Cloos avatar  avatar  avatar

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.