Giter VIP home page Giter VIP logo

brian2_loihi's People

Contributors

andrewlehr avatar sagacitysite avatar

Stargazers

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

Watchers

 avatar  avatar  avatar

brian2_loihi's Issues

LoihiStateMonitor returns times with unit "ms"

The LoihiStateMonitor class should strip the units (milliseconds) before returning the times, t. Otherwise one needs to import brian2 to remove the units.

In particular, define:
mon_I = LoihiStateMonitor(neuron, 'I')

After running simulation, the following should return a unitless array:
times = mon_I.t

Add name property to objects

Loihi emulator classes should inherit the name property. This way we can set and get states of other objects via the network object.

Add neuron positions and shifts to neuron model equations

I am implementing the anisotropic network in the emulator and for that one needs to give each neuron an (x,y) coordinate on the torus. The following needs to be added to the neuron equations to enable this:

x : 1
y : 1
x_shift : 1
y_shift : 1

I will open a second issue, because it could be useful to instead just allow the user to pass the LoihiNeuronGroup a string that should be added to the equations.

Allow user to pass strings to neuron groups

While implementing the anisotropic network, I realised we need to allow neurons to have positions/shifts values (see #16).

It would be better to allow more flexibility and let the user pass the neuron group a string or list/dict of variables that will be added to the neuron equations.

Loihi hardware as backend for brian2

Hey guys,
now that you have an Loihi emulator in Brian2, wouldn't it be great to have a software package that translates Loihi-compatible Brian2 code directly to whatever languages Loihi uses? My long term goal would be to be able to chose Loihi simply as a simulation backend in Brian2. Are there any plans for that?
Best,
Tristan

Identifier names

A neuron group can only have a fixed value for each identifier for all its neurons.
This way one need to create a loihi_neuron_group for every identifier combination.

But Brian can do better because one can do the following:

Define model

Equation = 'dv/dt = v/tau : 1'
n = NeuronGroup(4096, Equation)

change specific neuron

With subgroups

n[0].tau = 1
n[3].tau = 100

with indexing, i = internal number of neuron

n.tau = 'i'

This provides great flexibility.

The problem right now is that the emulator does not use internal variables for the neuron model, rather replace tau with a direct float value via string manipulation.

By making it a variable the emulator would provide more flexibility but also (may one can use @variable.setter if subgroups are used) loose the option to check if the input the user gives is correct i.e. fitting in the range of Loihi values.

Add neuron positions to neuron model equations

I am implementing the anisotropic network in the emulator and for that one needs to give each neuron an (x,y) coordinate on the torus. The following needs to be added to the neuron equations to enable this:

x : 1
y : 1
x_shift : 1
y_shift : 1

I will open a second issue, because it could be useful to instead just allow the user to pass the LoihiNeuronGroup a string that should be added to the equations.

Add dependencies

Add dependencies on Brian2 and the needed Python version. E.g. add a setup.py

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.