CFNCell#

class braintrace.nn.CFNCell#

Chaos Free Networks (CFN) cell.

Chaos Free Networks (CFN) cell, implemented as in A recurrent neural network without chaos.

Parameters:
  • in_size (brainstate.typing.Size) – The number of input units.

  • out_size (brainstate.typing.Size) – The number of hidden units.

  • w_init (Callable or ArrayLike, optional) – The input weight initializer. Default is Orthogonal().

  • b_init (Callable or ArrayLike, optional) – The bias weight initializer. Default is ZeroInit().

  • state_init (Callable or ArrayLike, optional) – The state initializer. Default is ZeroInit().

  • activation (str or Callable, optional) – The activation function. It can be a string or a callable function. Default is ‘tanh’.

  • name (str or None, optional) – The name of the module. Default is None.

Examples

>>> import braintrace
>>> import brainstate
>>>
>>> # Create a CFN cell
>>> cfn_cell = braintrace.nn.CFNCell(in_size=64, out_size=128)
>>> cfn_cell.init_state(batch_size=10)
>>>
>>> # Process a sequence of inputs
>>> x = brainstate.random.randn(10, 64)
>>> h = cfn_cell(x)
>>> print(h.shape)
(10, 128)
init_state(batch_size=None, **kwargs)#

State initialization function.

reset_state(batch_size=None, **kwargs)#

State resetting function.

update(x)#

Advance the cell by one time step.

Parameters:

x (ArrayLike) – Input for the current step, of shape (..., in_size).

Returns:

ArrayLike – The updated hidden state, of shape (..., out_size).

CFNCell.__init__(in_size, out_size, w_init=Orthogonal(scale=1.0), b_init=ZeroInit(unit=1), state_init=ZeroInit(unit=1), activation='tanh', name=None)#