braintools.init.Compose

braintools.init.Compose#

class braintools.init.Compose(*inits)#

Compose multiple initialization strategies.

This class allows functional composition of multiple initializations, applying them in sequence.

Parameters:

*inits (Initialization or callable) – Sequence of initializations or functions to compose. Applied from left to right (first init is applied first).

Examples

>>> import numpy as np
>>> import brainunit as u
>>> from braintools.init import Normal, Compose
>>>
>>> init = Compose(
...     Normal(1.0 * u.nS, 0.2 * u.nS),
...     lambda x: u.math.maximum(x, 0 * u.nS),
...     lambda x: x * 0.5
... )
>>>
>>> rng = np.random.default_rng(0)
>>> weights = init(1000, rng=rng)
__init__(*inits)[source]#

Methods

__init__(*inits)

add(value)

Add a constant value.

apply(func)

Apply an arbitrary function to the output.

clip([min_val, max_val])

Clip values to a specified range.

multiply(value)

Multiply by a constant value.