BernoulliEncoder

Contents

BernoulliEncoder#

class braintools.BernoulliEncoder(scale=1.0, normalize=True, min_val=None, max_val=None)#

Encode inputs using independent Bernoulli processes.

Each input value is converted to a probability, and spikes are generated independently at each time step according to this probability.

Example:

>>> encoder = BernoulliEncoder()
>>> data = jnp.array([0.1, 0.5, 0.9])
>>> spikes = encoder(data, n_time=1000)
>>> # Spike rates should be ~[100, 500, 900] Hz
Parameters:
  • scale (float) – float. Scaling factor for input-to-probability conversion.

  • normalize (bool) – bool. Whether to normalize inputs to [0, 1].

  • min_val (float) – float. Minimum value for normalization.

  • max_val (float) – float. Maximum value for normalization.