Version 2.5.0
This release contains many new features and fixes. It is the first release with a mature solution for Brain Dynamics Operator Customization on both CPU and GPU platforms.
New Features
- Add synapse projection with Delta synapse models through
brainpy.dyn.HalfProjDelta
andbrainpy.dyn.FullProjDelta
. - Add
brainpy.math.exprel
, and change the code in the corresponding HH neuron models to improve numerical computation accuracy. These changes can significantly improve the numerical integration accuracy of HH-like models under x32 computation. - Add
brainpy.reset_level()
decorator so that the state resetting order can be customized by users. - Add
brainpy.math.ein_rearrange
,brainpy.math.ein_reduce
, andbrainpy.math.ein_repeat
functions - Add
brainpy.math.scan
transformation. - Rebase all customized operators using Taichi JIT compiler. On the CPU platform, the speed performance can be boosted ten to hundred times. On the GPU platforms, the flexibility can be greatly improved.
- Many bug fixes.
- A new version of
brainpylib>=0.2.4
has been released, supporting operator customization through the Taichi compiler. The supported backends include Linux, Windows, MacOS Intel, and MacOS M1 platforms. Tutorials please see https://brainpy.readthedocs.io/en/latest/tutorial_advanced/operator_custom_with_taichi.html
What's Changed
- [docs] Add taichi customized operators tutorial by @Routhleck in #545
- [docs] Optimize tutorial code in
operator_custom_with_taichi.ipynb
of documentations by @Routhleck in #546 - [running] fix multiprocessing bugs by @chaoming0625 in #547
- [docs] Fix typo in docs by @Routhleck in #549
- ⬆️ Bump conda-incubator/setup-miniconda from 2 to 3 by @dependabot in #551
- updates by @chaoming0625 in #550
brainpy.math.defjvp
andbrainpy.math.XLACustomOp.defjvp
by @chaoming0625 in #554- ⬆️ Bump actions/setup-python from 4 to 5 by @dependabot in #555
- Fix
brainpy.math.ifelse
bugs by @chaoming0625 in #556 - [math & dyn] add
brainpy.math.exprel
, and change the code in the corresponding HH neuron models to improve numerical computation accuracy by @chaoming0625 in #557 - Update README by @chaoming0625 in #558
- [doc] add conductance neuron model tutorial by @chaoming0625 in #559
- Doc by @chaoming0625 in #560
- add
brainpy.math.functional_vector_grad
andbrainpy.reset_level()
decorator by @chaoming0625 in #561 - [math] change the internal implementation of surrogate function by @chaoming0625 in #562
- Math by @chaoming0625 in #563
- [doc] update citations by @chaoming0625 in #564
- add support for multi-class margin loss by @charlielam0615 in #566
- Support for Delta synapse projections by @chaoming0625 in #568
- [math] Add taichi customized operators(event csrmv, csrmv, jitconn event mv, jitconn mv) by @Routhleck in #553
- fix doc by @chaoming0625 in #571
- Fix default math parameter setting bug by @chaoming0625 in #572
- fix bugs in
brainpy.math.random.truncated_normal
by @chaoming0625 in #574 - [doc] fix doc by @chaoming0625 in #576
- fix bugs in truncated_normal; add TruncatedNormal init. by @charlielam0615 in #575
- [Dyn] Fix alpha synapse bugs by @ztqakita in #578
- fix
brainpy.math.softplus
andbrainpy.dnn.SoftPlus
by @chaoming0625 in #581 - add
TruncatedNormal
toinitialize.py
by @charlielam0615 in #583 - Fix
_format_shape
inrandom_inits.py
by @charlielam0615 in #584 - fix bugs in
truncated_normal
by @charlielam0615 in #585 - [dyn] fix warning of reset_state by @chaoming0625 in #587
- [math] upgrade variable retrival by @chaoming0625 in #589
- [math & dnn] add
brainpy.math.unflatten
andbrainpy.dnn.Unflatten
by @chaoming0625 in #588 - [math] add
ein_rearrange
,ein_reduce
, andein_repeat
functions by @chaoming0625 in #590 - [math] Support taichi customized op with metal cpu backend by @Routhleck in #579
- Doc fix and standardize Dual Exponential model again by @chaoming0625 in #591
- update doc, upgrade reset_state, update projection models by @chaoming0625 in #592
- [taichi] Make taichi caches more transparent and Add clean caches function by @Routhleck in #596
- [test] remove test skip on macos, since brainpylib supports taichi interface on macos by @chaoming0625 in #597
- [dyn] add
clear_input
in thestep_run
function. by @chaoming0625 in #601 - [math] Refactor taichi operators by @Routhleck in #598
- [math] fix
brainpy.math.scan
by @chaoming0625 in #604 disable_ jit
support inbrainpy.math.scan
by @chaoming0625 in #606- [math] Remove the logs that
taichi.init()
print by @Routhleck in #609 - Version control in Publish.yml CI by @chaoming0625 in #610
New Contributors
- @charlielam0615 made their first contribution in #566
Full Changelog: V2.4.6...V2.5.0