EProp#

class braintrace.EProp(model, feedback='symmetric', kappa_filter_decay=0.0, random_feedback_key=None, name=None, vjp_method='single-step', fast_solve=True, normalize_matrix_spectrum=False, **kwargs)#

Eligibility Propagation.

Parameters:
  • model (Module)

  • feedback (str) – ‘symmetric’ uses reverse-AD’s ∂L/∂h (standard backprop through readout). ‘random’ replaces the readout gradient with a frozen random projection.

  • kappa_filter_decay (float) – If > 0, apply an output-side low-pass to each HiddenGroup’s learning signal each step. 0 disables (paper default for hard tasks).

  • random_feedback_key (Array | None) – Seed for the random-feedback matrices when feedback=’random’.

  • name (str | None)

  • vjp_method (str)

  • fast_solve (bool)

  • normalize_matrix_spectrum (bool)

init_etrace_state(*args, **kwargs)[source]#

Initialize the eligibility trace states of the etrace algorithm.

This method is needed after compiling the etrace graph. See .compile_graph() for the details.

reset_state(batch_size=None, **kwargs)[source]#

Reset the eligibility trace states.