fusionlab.nn.components.DynamicTimeWindow

class fusionlab.nn.components.DynamicTimeWindow[source]

Bases: Layer, NNLearner

DynamicTimeWindow layer that slices the last max_window_size steps from the input sequence.

This helps in focusing on the most recent time steps if the sequence is longer than max_window_size.

\[\mathbf{Z} = \mathbf{X}[:, -W:, :]\]

where W = max_window_size.

Parameters:

max_window_size (int) – Number of time steps to keep from the end of the sequence.

Notes

This can be used for models that only need the last few time steps instead of the entire sequence.

call(`inputs`, training=False)[source]

Slice the last max_window_size steps.

get_config()[source]

Returns configuration dictionary.

from_config(`config`)[source]

Recreates the layer from config.

Examples

>>> from fusionlab.nn.components import DynamicTimeWindow
>>> import tensorflow as tf
>>> x = tf.random.normal((32, 50, 64))
>>> # Keep last 10 time steps
>>> dtw = DynamicTimeWindow(max_window_size=10)
>>> y = dtw(x)
>>> y.shape
TensorShape([32, 10, 64])

See also

MultiResolutionAttentionFusion

Another layer that can be used after slicing to fuse temporal features.

References

__init__(max_window_size)[source]

Initialize the DynamicTimeWindow layer.

Parameters:

max_window_size (int) – Number of steps to slice from the end of the sequence.

Methods

__init__(max_window_size)

Initialize the DynamicTimeWindow layer.

add_loss(losses, **kwargs)

Add loss tensor(s), potentially dependent on layer inputs.

add_metric(value[, name])

Adds metric tensor to the layer.

add_update(updates)

Add update op(s), potentially dependent on layer inputs.

add_variable(*args, **kwargs)

Deprecated, do NOT use! Alias for add_weight.

add_weight([name, shape, dtype, ...])

Adds a new variable to the layer.

build(input_shape)

Creates the variables of the layer (for subclass implementers).

build_from_config(config)

Builds the layer's states with the supplied config dict.

call(inputs[, training])

Forward pass that slices the last max_window_size steps.

compute_mask(inputs[, mask])

Computes an output mask tensor.

compute_output_shape(input_shape)

Computes the output shape of the layer.

compute_output_signature(input_signature)

Compute the output tensor signature of the layer based on the inputs.

count_params()

Count the total number of scalars composing the weights.

finalize_state()

Finalizes the layers state after updating layer weights.

from_config(config)

Creates a new DynamicTimeWindow layer from config.

get_build_config()

Returns a dictionary with the layer's input shape.

get_config()

Returns configuration dictionary.

get_input_at(node_index)

Retrieves the input tensor(s) of a layer at a given node.

get_input_mask_at(node_index)

Retrieves the input mask tensor(s) of a layer at a given node.

get_input_shape_at(node_index)

Retrieves the input shape(s) of a layer at a given node.

get_output_at(node_index)

Retrieves the output tensor(s) of a layer at a given node.

get_output_mask_at(node_index)

Retrieves the output mask tensor(s) of a layer at a given node.

get_output_shape_at(node_index)

Retrieves the output shape(s) of a layer at a given node.

get_params([deep])

Get the parameters for this learner.

get_weights()

Returns the current weights of the layer, as NumPy arrays.

help(**kwargs)

load(file_path[, format])

Load the learner's state from a specified file in the desired format.

load_own_variables(store)

Loads the state of the layer.

save([file_path, format, overwrite, ...])

Save the learner's state to a specified file in the desired format.

save_own_variables(store)

Saves the state of the layer.

set_params(**params)

Set the parameters of this learner.

set_weights(weights)

Sets the weights of the layer, from NumPy arrays.

summary()

Provide a summary of the learner's parameters.

with_name_scope(method)

Decorator to automatically enter the module name scope.

Attributes

activity_regularizer

Optional regularizer function for the output of this layer.

compute_dtype

The dtype of the layer's computations.

dtype

The dtype of the layer weights.

dtype_policy

The dtype policy associated with this layer.

dynamic

Whether the layer is dynamic (eager-only); set in the constructor.

inbound_nodes

Return Functional API nodes upstream of this layer.

input

Retrieves the input tensor(s) of a layer.

input_mask

Retrieves the input mask tensor(s) of a layer.

input_shape

Retrieves the input shape(s) of a layer.

input_spec

InputSpec instance(s) describing the input format for this layer.

losses

List of losses added using the add_loss() API.

metrics

List of metrics attached to the layer.

my_params

name

Name of the layer (string), set in the constructor.

name_scope

Returns a tf.name_scope instance for this class.

non_trainable_variables

Sequence of non-trainable variables owned by this module and its submodules.

non_trainable_weights

List of all non-trainable weights tracked by this layer.

outbound_nodes

Return Functional API nodes downstream of this layer.

output

Retrieves the output tensor(s) of a layer.

output_mask

Retrieves the output mask tensor(s) of a layer.

output_shape

Retrieves the output shape(s) of a layer.

stateful

submodules

Sequence of all sub-modules.

supports_masking

Whether this layer supports computing a mask using compute_mask.

trainable

trainable_variables

Sequence of trainable variables owned by this module and its submodules.

trainable_weights

List of all trainable weights tracked by this layer.

updates

variable_dtype

Alias of Layer.dtype, the dtype of the weights.

variables

Returns the list of all layer variables/weights.

weights

Returns the list of all layer variables/weights.

__init__(max_window_size)[source]

Initialize the DynamicTimeWindow layer.

Parameters:

max_window_size (int) – Number of steps to slice from the end of the sequence.

call(inputs, training=False)[source]

Forward pass that slices the last max_window_size steps.

Parameters:
  • inputs (tf.Tensor) – Tensor of shape \((B, T, D)\).

  • training (bool, optional) – Unused. Defaults to False.

Returns:

A sliced tensor of shape \((B, W, D)\) where W = max_window_size.

Return type:

tf.Tensor

get_config()[source]

Returns configuration dictionary.

Returns:

Contains ‘max_window_size’.

Return type:

dict

classmethod from_config(config)[source]

Creates a new DynamicTimeWindow layer from config.

Parameters:

config (dict) – Must include ‘max_window_size’.

Returns:

A new instance of this layer.

Return type:

DynamicTimeWindow

help(**kwargs)
my_params = DynamicTimeWindow(max_window_size)