Skip to content

HNSSpoke

Source code

Bases: tf.keras.layers.Layer

A spoke in the hub-and-spokes model with time-averaging output.

This layer is a thin wrapper around MultiInputTimeAveraging, The differences are:

  1. Catering for None input by explicitly defining units.
  2. For clarity, in call(), separating the original list of inputs into the clamped input: inputs and last states: last_states.

Parameters:

Name Type Description Default
tau float

Time-averaging parameter, from 0 to 1.

required
units int

Number of units in the layer. Explicitly set the input dimension to cater for None input.

required
activation str

Activation function to use.

'sigmoid'
use_bias bool

Whether the layer uses a bias vector.

True
kwargs dict

Additional keyword arguments passed to MultiInputTimeAveraging.

{}

Forward pass:

at=τact(xt+insi,t1+b)+(1τ)at1 a_t = \tau \cdot act(x_t + \sum_i^n s_{i, t-1} + b) + (1-\tau) \cdot a_{t-1}

Warning

"\cdot" is element-wise multiplication.

  • ata_t: activation at time tt.
  • τ\tau: time constant, smaller means slower temporal dynamics.
  • actact: activation function (provided by this layer if activation is used).
  • xtx_{t}: input at time tt coming from input ii.
  • si,t1s_{i, t-1}: last state from ii at time t1t-1.
  • nn: number of cross-tick state layers.
  • bb: bias vector, provided by this layer if use_bias is True (Default).
  • at1a_{t-1}: time-averaging state at time t1t-1, stored in self.time_averaging.states.

call(inputs=None, last_states=None)

Forward pass.

Parameters:

Name Type Description Default
inputs tf.Tensor

clamped inputs to spoke.

None
last_states List[tf.Tensor]

list of states from last ticks projection: si,t1s_{i, t-1}.

None

reset_states()

Reset time-averaging states.