Skip to main content

brainpy-largescale depends on brainpy

Project description

brainpy-largescale

Run BrainPy in multiple processes.

brainpy-largescale depends on BrainPy and brainpy-lib, use the following instructions to install brainpy package.

Install

Only support Linux

pip install brainpy-largescale

Import

import brainpy as bp
import bpl

Set platform

bpl.set_platform('cpu')

only support cpu.

Create population

Use Leaky Integrate-and-Fire (LIF)

a = bpl.neurons.LIF(300, V_rest=-60., V_th=-50., V_reset=-60., tau=20., tau_ref=5.)
b = bpl.neurons.LIF(100, V_rest=-60., V_th=-50., V_reset=-60., tau=20., tau_ref=5.)

Create synapse

d = bpl.synapses.Exponential(a, b, bp.conn.FixedProb(0.4, seed=123), g_max=10, tau=5., delay_step=1)

Construct network

net = bpl.Network(a, b, d)
net.build()

Add input

add current input

inputs = [bpl.device.Input(a, 20), bpl.device.Input(b, 10)]

Add spike monitor

monitor_spike = bpl.device.Monitor([a, b], bpl.device.MonitorKey.spike)

Add volt monitor

monitor_volt = bpl.device.Monitor([b], bpl.device.MonitorKey.volt)
monitors = [monitor_spike, monitor_volt]

Add spike and volt callback

def spike(a: List[Tuple[int, float]]):
  if a:
    print(a)


def volt(a: List[Tuple[int, float, float]]):
  # print(a)
  pass

Run

runner = bpl.runner.DSRunner(
  net,
  monitors=monitors,
  inputs=inputs,
  jit=False,
  spike_callback=spike,
  volt_callback=volt,
)
runner.run(10.)

Visualization

import matplotlib.pyplot as plt

if 'spike' in runner.mon:
  bp.visualize.raster_plot(runner.mon.ts, runner.mon['spike'], show=True)

License

Apache License, Version 2.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

brainpy-largescale-0.1.2.tar.gz (20.0 kB view hashes)

Uploaded Source

Built Distribution

brainpy_largescale-0.1.2-py3-none-any.whl (23.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page