Conditional

Contents

Conditional#

class braintools.init.Conditional(condition_fn, true_dist, false_dist)#

Conditional weight distribution based on neuron properties.

Uses different distributions based on a condition function applied to neuron indices.

Parameters:
  • condition_fn (callable) – Function that takes neuron indices and returns boolean array.

  • true_dist (Initialization) – Distribution to use when condition is True.

  • false_dist (Initialization) – Distribution to use when condition is False.

Examples

>>> import numpy as np
>>> import brainunit as u
>>> from braintools.init import Conditional, Constant, Normal
>>>
>>> def is_excitatory(indices):
...     return indices < 800
>>>
>>> init = Conditional(
...     condition_fn=is_excitatory,
...     true_dist=Normal(0.5 * u.siemens, 0.1 * u.siemens),
...     false_dist=Normal(-0.3 * u.siemens, 0.05 * u.siemens)
... )
>>> rng = np.random.default_rng(0)
>>> weights = init(1000, neuron_indices=np.arange(1000), rng=rng)