Git Product home page Git Product logo

brainpy's Introduction

Logo

LICENSE Documentation PyPI version Build Status

Why to use BrainPy

BrainPy is an integrative framework for computational neuroscience and brain-inspired computation based on Just-In-Time (JIT) compilation (built on the top of JAX and Numba). Core functions provided in BrainPy includes

  • JIT compilation for class objects.
  • Numerical solvers for ODEs, SDEs, DDEs, FDEs, and others.
  • Dynamics simulation tools for various brain objects, like neurons, synapses, networks, soma, dendrites, channels, and even more.
  • Dynamics analysis tools for differential equations, including phase plane analysis and bifurcation analysis, continuation analysis and sensitive analysis.
  • Seamless integration with deep learning models, and has the speed benefit on JIT compilation.
  • And more ......

BrainPy is designed to effectively satisfy your basic requirements:

  • Easy to learn and use: BrainPy is only based on Python language and has little dependency requirements.
  • Flexible and transparent: BrainPy endows the users with the fully data/logic flow control. Users can code any logic they want with BrainPy.
  • Extensible: BrainPy allow users to extend new functionality just based on Python coding. For example, we extend the numerical integration with the ability to do numerical analysis. In such a way, the same code in BrainPy can not only be used for simulation, but also for dynamics analysis.
  • Efficient: All codes in BrainPy can be just-in-time compiled (based on JAX and Numba) to run on CPU or GPU devices, thus guaranteeing its running efficiency.

How to use BrainPy

Step 1: installation

BrainPy is based on Python (>=3.6), and the following packages are required to be installed to use BrainPy:

  • NumPy >= 1.15
  • Matplotlib >= 3.4

The installation details please see documentation: Quickstart/Installation

Method 1: install BrainPy by using pip:

To install the stable release of BrainPy (V1.0.3), please use

> pip install -U brain-py

To install the latest pre-release version of BrainPy (V1.1.0), please use

> pip install -U brain-py --pre

If you have installed the previous version of BrainPy, please uninstall the older one first

> pip uninstall brainpy-simulator

# Then install the latest version of BrainPy
> pip install -U brain-py --pre

Method 2: install BrainPy from source:

> pip install git+https://github.com/PKU-NIP-Lab/BrainPy
>
> # or
> pip install git+https://git.openi.org.cn/OpenI/BrainPy
>
> # or
> pip install -e git://github.com/PKU-NIP-Lab/[email protected]

Other dependencies: you want to get the full supports by BrainPy, please install the following packages:

  • JAX >= 0.2.10, needed for "jax" backend and "dnn" module
  • Numba >= 0.52, needed for JIT compilation on "numpy" backend
  • SymPy >= 1.4, needed for dynamics "analysis" module and Exponential Euler method

Step 2: useful links

Step 3: inspirational examples

Here list several examples of BrainPy. More detailed examples and tutorials please see BrainModels.

Neuron models

See brainmodels.neurons to find more.

Synapse models

See brainmodels.synapses to find more.

Network models

Low-dimension dynamics analysis

Learning through back-propagation

brainpy's People

Contributors

chaoming0625 avatar yqianjiang avatar adaliubc avatar charlielam0615 avatar terrypang 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.