Are you sure you want to delete this task? Once this task is deleted, it cannot be recovered.
chaoming 7101b78761 | 2 years ago | |
---|---|---|
.github | 2 years ago | |
brainpy | 2 years ago | |
docs | 2 years ago | |
examples | 2 years ago | |
extensions | 2 years ago | |
images | 2 years ago | |
tests | 2 years ago | |
.gitignore | 2 years ago | |
LICENSE | 3 years ago | |
MANIFEST.in | 3 years ago | |
README.md | 2 years ago | |
README2.md | 2 years ago | |
changelog.rst | 2 years ago | |
requirements-dev.txt | 2 years ago | |
requirements-doc.txt | 2 years ago | |
requirements-win.txt | 2 years ago | |
requirements.txt | 2 years ago | |
setup.py | 2 years ago |
BrainPy is a flexible, efficient, and extensible framework for computational neuroscience and brain-inspired computation based on the Just-In-Time (JIT) compilation (built on top of JAX). It provides an integrative ecosystem for brain dynamics programming, including brain dynamics simulation, training, analysis, etc.
BrainPy is based on Python (>=3.6) and can be installed on Linux (Ubuntu 16.04 or later), macOS (10.12 or later), and Windows platforms. Install the latest version of BrainPy:
$ pip install brain-py -U
The following packages are required for BrainPy
:
numpy >= 1.15
and jax >= 0.2.10
(how to install jax?)
For detailed installation instructions, please refer to the documentation: Quickstart/Installation
import brainpy as bp
1. E-I balance network
class EINet(bp.dyn.Network):
def __init__(self):
E = bp.dyn.LIF(3200, V_rest=-60., V_th=-50., V_reset=-60., tau=20., tau_ref=5.)
I = bp.dyn.LIF(800, V_rest=-60., V_th=-50., V_reset=-60., tau=20., tau_ref=5.)
E.V[:] = bp.math.random.randn(3200) * 2 - 60.
I.V[:] = bp.math.random.randn(800) * 2 - 60.
E2E = bp.dyn.ExpCOBA(E, E, bp.conn.FixedProb(prob=0.02), E=0., g_max=0.6, tau=5.)
E2I = bp.dyn.ExpCOBA(E, I, bp.conn.FixedProb(prob=0.02), E=0., g_max=0.6, tau=5.)
I2E = bp.dyn.ExpCOBA(I, E, bp.conn.FixedProb(prob=0.02), E=-80., g_max=6.7, tau=10.)
I2I = bp.dyn.ExpCOBA(I, I, bp.conn.FixedProb(prob=0.02), E=-80., g_max=6.7, tau=10.)
super(EINet, self).__init__(E2E, E2I, I2E, I2I, E=E, I=I)
net = EINet()
runner = bp.dyn.DSRunner(net)
runner(100.)
2. Echo state network
i = bp.nn.Input(3)
r = bp.nn.Reservoir(100)
o = bp.nn.LinearReadout(3)
net = i >> r >> o
# Ridge Regression
trainer = bp.nn.RidgeTrainer(net, beta=1e-5)
# FORCE Learning
trainer = bp.nn.FORCELearning(net, alpha=1.)
3. Next generation reservoir computing
i = bp.nn.Input(3)
r = bp.nn.NVAR(delay=2, order=2)
o = bp.nn.LinearReadout(3)
net = i >> r >> o
trainer = bp.nn.RidgeTrainer(net, beta=1e-5)
4. Recurrent neural network
i = bp.nn.Input(3)
l1 = bp.nn.VanillaRNN(100)
l2 = bp.nn.VanillaRNN(200)
o = bp.nn.Dense(10)
net = i >> l1 >> l2 >> o
trainer = bp.nn.BPTT(net,
loss='cross_entropy_loss',
optimizer=bp.optim.Adam(0.01))
5. Analyzing a low-dimensional FitzHugh–Nagumo neuron model
bp.math.enable_x64()
model = bp.dyn.FHN(1)
analyzer = bp.analysis.PhasePlane2D(model,
target_vars={'V': [-3, 3], 'w': [-3., 3.]},
pars_update={'I_ext': 0.8},
resolutions=0.01)
analyzer.plot_nullcline()
analyzer.plot_vector_field()
analyzer.plot_fixed_point()
analyzer.plot_trajectory({'V': [-2.8], 'w': [-1.8]}, duration=100.)
analyzer.show_figure()
For more functions and examples, please refer to the documentation and examples.
Brain Dynamics Programming in Python
https://brainpy.readthedocs.io/
Python reStructuredText Markdown
Dear OpenI User
Thank you for your continuous support to the Openl Qizhi Community AI Collaboration Platform. In order to protect your usage rights and ensure network security, we updated the Openl Qizhi Community AI Collaboration Platform Usage Agreement in January 2024. The updated agreement specifies that users are prohibited from using intranet penetration tools. After you click "Agree and continue", you can continue to use our services. Thank you for your cooperation and understanding.
For more agreement content, please refer to the《Openl Qizhi Community AI Collaboration Platform Usage Agreement》