Version 2.4.3
This release has standardized the modeling of DNN and SNN models by two intercorrelated packages: brainpy.dnn
and brainpy.dyn
.
Overall, the modeling of brain dynamics in this release has the following advantages:
- the automatic merging of the duplicate synapses, keeping the minimal device memory
- easy model and data parallelization across multiple devices
- easy integration with artificial neural networks
- a new abstraction that decouples dynamics from communication
- the unified
DynamicalSystem
interface
New Features
- Support to define ion channel models which rely on multiple ions. For example,
class HH(bp.dyn.CondNeuGroup):
def __init__(self, size):
super().__init__(size)
self.k = bp.dyn.PotassiumFixed(size)
self.ca = bp.dyn.CalciumFirstOrder(size)
self.kca = bp.dyn.mix_ions(self.k, self.ca) # Ion that mixing Potassium and Calcium
self.kca.add_elem(ahp=bp.dyn.IAHP_De1994v2(size)) # channel that relies on both Potassium and Calcium
- New style
.update()
function inbrainpy.DynamicalSystem
which resolves all compatible issues. Starting from this version, allupdate()
no longer needs to receive a global shared argument such astdi
.
class YourDynSys(bp.DynamicalSystem):
def update(self, x):
t = bp.share['t']
dt = bp.share['dt']
i = bp.share['i']
...
-
Optimize the connection-building process when using
brainpy.conn.ScaleFreeBA
,brainpy.conn.ScaleFreeBADual
,brainpy.conn.PowerLaw
-
New dual exponential model
brainpy.dyn.DualExponV2
can be aligned with post dimension. -
More synaptic projection abstractions, including
brainpy.dyn.VanillaProj
brainpy.dyn.ProjAlignPostMg1
brainpy.dyn.ProjAlignPostMg2
brainpy.dyn.ProjAlignPost1
brainpy.dyn.ProjAlignPost2
brainpy.dyn.ProjAlignPreMg1
brainpy.dyn.ProjAlignPreMg2
-
Fix compatible issues, fix unexpected bugs, and improve the model tests.
What's Changed
- [connect] Optimize the connector about ScaleFreeBA, ScaleFreeBADual, PowerLaw by @Routhleck in #412
- [fix] bug of
connect.base.py
'srequire
function by @Routhleck in #413 - Many Updates by @chaoming0625 in #414
- Update docs by @chaoming0625 in #415
- fix conflict by @yygf123 in #416
- add a new implementation of Dual Exponential Synapse model which can be aligned post. by @chaoming0625 in #417
- Enable test when pull requests by @chaoming0625 in #418
- Add random.seed() by @yygf123 in #419
- Remove windows CI because it always generates strange errors by @chaoming0625 in #420
- Recent updates by @chaoming0625 in #421
- upgrade Runner and Trainer for new style of
DynamicalSystem.update()
function by @chaoming0625 in #422 - update docs by @chaoming0625 in #424
- fix
lif
model bugs and support two kinds of spike reset:soft
andhard
by @chaoming0625 in #423 - rewrite old synapses with decomposed components by @chaoming0625 in #425
- fix autograd bugs by @chaoming0625 in #426
New Contributors
Full Changelog: V2.4.2...V2.4.3