MultiInputTimeAveraging
Bases: tf.keras.layers.Layer
This layer simulates continuous-temporal dynamics with time-averaged input/output for multiple inputs.
Note
This layer is for multiple inputs, and assuming they had ALREADY been multiplied by weights.
i.e., This layer has no weights matrix, but a bias vector if use_bias is True.
For single input equivalent, see TimeAveragedDense.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
tau |
float
|
Time-averaging parameter, from 0 to 1. |
required |
average_at |
str
|
Select where to average, 'before_activation' or 'after_activation'. |
required |
activation |
str
|
Activation function to use. |
None
|
use_bias |
bool
|
Whether the layer uses a bias vector. |
True
|
bias_initializer |
optional
|
Initializer for the bias vector. |
'zeros'
|
bias_regularizer |
optional
|
Regularizer function applied to the bias vector. |
None
|
bias_constraint |
optional
|
Constraint function applied to the bias vector. |
None
|
Time-averaged input
See Plaut, McClelland, Seidenberg, and Patterson (1996) equation (15).
Defines as:
Warning
"" is element-wise multiplication.
- : activation at time .
- : activation function (provided by this layer if
activationis used). - : state at time .
- : time constant, smaller means slower temporal dynamics.
- : input at time coming from input .
- : number of input layers.
- : bias vector, provided by this layer if
use_biasisTrue(Default). - : state at time , stored in
self.states.
Example
layer = MultiInputTimeAveraging(
tau=0.1, average_at="before_activation", activation="sigmoid"
)
Time-averaged output
Defines as:
Warning
"" is element-wise multiplication.
- : activation at time
- : time constant, smaller means slower temporal dynamics
- : activation function (provided by this layer if
activationis used) - : input at time coming from input
- : bias vector, provided by this layer if
use_biasisTrue(Default) - : activation at time , stored in
self.states
Example
layer = MultiInputTimeAveraging(
tau=0.1, average_at="after_activation", activation="sigmoid"
)
build(input_shape)
Build the underlying layers/weights.
call(inputs)
Forward pass.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
inputs |
List[tf.Tensor]
|
List of input tensors . |
required |
Returns:
| Name | Type | Description |
|---|---|---|
outputs |
tf.Tensor
|
Output tensor . |
reset_states()
Resetting self.states to None.
Note
This is typically called when RNN unrolling is done, so that the next batch of data can start with a clean state.