GithubHelp home page GithubHelp logo

markusai / ra9 Goto Github PK

View Code? Open in Web Editor NEW
61.0 7.0 10.0 12.92 MB

JAX-based Spiking Neural Network framework

License: GNU General Public License v3.0

Python 100.00%
spiking-neural-networks deep-spiking-neural-networks biological-neural-networks jax spike-based-backpropagation

ra9's Introduction

rA9


Spiking Neural Network Library Based on JAX and referencing codes from bintorch

The learning algorithm of this library is spike-based backpropagation proposed from Enabling Spike-Based Backpropagation for Training Deep Neural Network Architectures

Compatitable Operating Systems

Only supports Linux and MacOS, because of the dependency of JAX and they try to fix it. But you can run this library in WSL

Installation

MacOS

CPU

Simple, just type

pip install git+https://github.com/MarkusAI/rA9

GPU

MacOS does not support NVIDIA CUDA.

Linux

CPU

Simple, just type

pip install git+https://github.com/MarkusAI/rA9

GPU

You need to setup JAX before installing the rA9 as GPU-dedicated and install rA9 as following:

pip install git+https://github.com/MarkusAI/rA9

Example

Check LeNet.py in example

ra9's People

Contributors

dongyeongkim avatar jepetolee avatar junhoyeo 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  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  avatar  avatar  avatar  avatar

ra9's Issues

Engine is the problem

when you see engine and function code,
output didn't work because of:
gamma is not the element of output function
so @jepetolee made not e/T but e @ e (absent means matrix multiplication)

This part should be resolved.

img2col error

Describe the bug
img2col error when index add

To Reproduce
Steps to reproduce the behavior:

  1. Just run test.py on example

Expected behavior
work really well in test.py

Performance Enhancement

img2col.py in nn/_functions/
dataloader.py in utils/data/

Because some parts of img2col use numpy not jax.numpy, and dataloader is based on python so it is quite slow

The Problem of Loss Function

We might don't think about the basic opponents, Function and Variable and Parameter.

Parameter did well on class but function didn't and actually loss is defined as the function.(or inherited)

Please Check this Issue for fixing it.

Loss function Bug

Describe the bug
Loss function don't work when the batch size under the 10

To Reproduce
Steps to reproduce the behavior:

  1. Go to examples/cnn_mnist.py
  2. Change the batch_size under the 10
  3. Execute the cnn_mnist.py
  4. See error

Expected behavior
Will raise TypeError

@junhoyeo Please check this issue

Dropout Error

Describe the bug
Dropout Error

To Reproduce
Steps to reproduce the behavior:

  1. Run LeNet

Expected behavior
Variable shape

memory leak

memory leak problem occurred

in activation function

Encoding Problem

Describe the bug
When it goes another data batch, then it fails to generate full spike

Convolution layer& Pooling Layer

When you see the paper(Enabling Spike-based Backpropagation for Training Deep Neural Network Architectures), you can see the Convolution & pooling layers are based on LIF Neurons..

So we need to change the convolution and pooling layer into LIF Neurons...

TPU_Cloud_support

Is your feature request related to a problem? Please describe.
TPU Cloud support

Describe the solution you'd like
Need to think

Describe alternatives you've considered
Nothing

Additional context
Nothing

Dropout module

AttributeError: module 'jax.numpy' has no attribute 'random'

CANT FING BUGS!!!!

in rA9/autograd/function.py, the Backward_function()doesn't get grads on output.py

김 선생님

최대한 논문 보고 backward를 따라 해 보았는데, 받아줘야하는 weight 형식이라던지 업데이트는 bintorch 기준으로만 하실 겁니까?

Using grad to backward

Is your feature request related to a problem? Please describe.
Not just a function to solve, but just use grad function
Describe the solution you'd like
Using jax grad

Describe alternatives you've considered
Nah

Additional context
Nah

TPU_Colab version

Is your feature request related to a problem? Please describe.
TPU_Colab_Version

Describe the solution you'd like
Using JAX example

Describe alternatives you've considered
No

Additional context
Nothing

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.