Class ConvLSTM2D
Defined in tensorflow/python/keras/layers/convolutional_recurrent.py
.
Convolutional LSTM.
It is similar to an LSTM layer, but the input transformations and recurrent transformations are both convolutional.
Arguments:
filters
: Integer, the dimensionality of the output space (i.e. the number of output filters in the convolution).kernel_size
: An integer or tuple/list of n integers, specifying the dimensions of the convolution window.strides
: An integer or tuple/list of n integers, specifying the strides of the convolution. Specifying any stride value != 1 is incompatible with specifying anydilation_rate
value != 1.padding
: One of"valid"
or"same"
(case-insensitive).data_format
: A string, one ofchannels_last
(default) orchannels_first
. The ordering of the dimensions in the inputs.channels_last
corresponds to inputs with shape(batch, time, ..., channels)
whilechannels_first
corresponds to inputs with shape(batch, time, channels, ...)
. It defaults to theimage_data_format
value found in your Keras config file at~/.keras/keras.json
. If you never set it, then it will be "channels_last".dilation_rate
: An integer or tuple/list of n integers, specifying the dilation rate to use for dilated convolution. Currently, specifying anydilation_rate
value != 1 is incompatible with specifying anystrides
value != 1.activation
: Activation function to use. If you don't specify anything, no activation is applied (ie. "linear" activation:a(x) = x
).recurrent_activation
: Activation function to use for the recurrent step.use_bias
: Boolean, whether the layer uses a bias vector.kernel_initializer
: Initializer for thekernel
weights matrix, used for the linear transformation of the inputs.recurrent_initializer
: Initializer for therecurrent_kernel
weights matrix, used for the linear transformation of the recurrent state.bias_initializer
: Initializer for the bias vector.unit_forget_bias
: Boolean. If True, add 1 to the bias of the forget gate at initialization. Use in combination withbias_initializer="zeros"
. This is recommended in Jozefowicz et al.kernel_regularizer
: Regularizer function applied to thekernel
weights matrix.recurrent_regularizer
: Regularizer function applied to therecurrent_kernel
weights matrix.bias_regularizer
: Regularizer function applied to the bias vector.activity_regularizer
: Regularizer function applied to.kernel_constraint
: Constraint function applied to thekernel
weights matrix.recurrent_constraint
: Constraint function applied to therecurrent_kernel
weights matrix.bias_constraint
: Constraint function applied to the bias vector.return_sequences
: Boolean. Whether to return the last output in the output sequence, or the full sequence.go_backwards
: Boolean (default False). If True, process the input sequence backwards.stateful
: Boolean (default False). If True, the last state for each sample at index i in a batch will be used as initial state for the sample of index i in the following batch.dropout
: Float between 0 and 1. Fraction of the units to drop for the linear transformation of the inputs.recurrent_dropout
: Float between 0 and 1. Fraction of the units to drop for the linear transformation of the recurrent state.
Input shape:
- if data_format='channels_first'
5D tensor with shape:
(samples, time, channels, rows, cols)
- if data_format='channels_last'
5D tensor with shape:
(samples, time, rows, cols, channels)
Output shape:
- if return_sequences
- if data_format='channels_first'
5D tensor with shape:
(samples, time, filters, output_row, output_col)
- if data_format='channels_last'
5D tensor with shape:
(samples, time, output_row, output_col, filters)
- else
- if data_format ='channels_first'
4D tensor with shape:
(samples, filters, output_row, output_col)
- if data_format='channels_last'
4D tensor with shape:
(samples, output_row, output_col, filters)
where o_row and o_col depend on the shape of the filter and
the padding
Raises:
ValueError
: in case of invalid constructor arguments.
References: - Convolutional LSTM Network: A Machine Learning Approach for Precipitation Nowcasting The current implementation does not include the feedback loop on the cells output.
__init__
__init__(
filters,
kernel_size,
strides=(1, 1),
padding='valid',
data_format=None,
dilation_rate=(1, 1),
activation='tanh',
recurrent_activation='hard_sigmoid',
use_bias=True,
kernel_initializer='glorot_uniform',
recurrent_initializer='orthogonal',
bias_initializer='zeros',
unit_forget_bias=True,
kernel_regularizer=None,
recurrent_regularizer=None,
bias_regularizer=None,
activity_regularizer=None,
kernel_constraint=None,
recurrent_constraint=None,
bias_constraint=None,
return_sequences=False,
go_backwards=False,
stateful=False,
dropout=0.0,
recurrent_dropout=0.0,
**kwargs
)
Properties
activation
activity_regularizer
Optional regularizer function for the output of this layer.
bias_constraint
bias_initializer
bias_regularizer
data_format
dilation_rate
dropout
dtype
filters
input
Retrieves the input tensor(s) of a layer.
Only applicable if the layer has exactly one input, i.e. if it is connected to one incoming layer.
Returns:
Input tensor or list of input tensors.
Raises:
AttributeError
: if the layer is connected to more than one incoming layers.
Raises:
RuntimeError
: If called in Eager mode.AttributeError
: If no inbound nodes are found.
input_mask
Retrieves the input mask tensor(s) of a layer.
Only applicable if the layer has exactly one inbound node, i.e. if it is connected to one incoming layer.
Returns:
Input mask tensor (potentially None) or list of input mask tensors.
Raises:
AttributeError
: if the layer is connected to more than one incoming layers.
input_shape
Retrieves the input shape(s) of a layer.
Only applicable if the layer has exactly one input, i.e. if it is connected to one incoming layer, or if all inputs have the same shape.
Returns:
Input shape, as an integer shape tuple (or list of shape tuples, one tuple per input tensor).
Raises:
AttributeError
: if the layer has no defined input_shape.RuntimeError
: if called in Eager mode.
kernel_constraint
kernel_initializer
kernel_regularizer
kernel_size
losses
Losses which are associated with this Layer
.
Variable regularization tensors are created when this property is accessed,
so it is eager safe: accessing losses
under a tf.GradientTape
will
propagate gradients back to the corresponding variables.
Returns:
A list of tensors.
name
non_trainable_variables
non_trainable_weights
output
Retrieves the output tensor(s) of a layer.
Only applicable if the layer has exactly one output, i.e. if it is connected to one incoming layer.
Returns:
Output tensor or list of output tensors.
Raises:
AttributeError
: if the layer is connected to more than one incoming layers.RuntimeError
: if called in Eager mode.
output_mask
Retrieves the output mask tensor(s) of a layer.
Only applicable if the layer has exactly one inbound node, i.e. if it is connected to one incoming layer.
Returns:
Output mask tensor (potentially None) or list of output mask tensors.
Raises:
AttributeError
: if the layer is connected to more than one incoming layers.
output_shape
Retrieves the output shape(s) of a layer.
Only applicable if the layer has one output, or if all outputs have the same shape.
Returns:
Output shape, as an integer shape tuple (or list of shape tuples, one tuple per output tensor).
Raises:
AttributeError
: if the layer has no defined output shape.RuntimeError
: if called in Eager mode.
padding
recurrent_activation
recurrent_constraint
recurrent_dropout
recurrent_initializer
recurrent_regularizer
states
strides
trainable_variables
trainable_weights
unit_forget_bias
updates
use_bias
variables
Returns the list of all layer variables/weights.
Alias of self.weights
.
Returns:
A list of variables.
weights
Returns the list of all layer variables/weights.
Returns:
A list of variables.
Methods
tf.keras.layers.ConvLSTM2D.__call__
__call__(
inputs,
initial_state=None,
constants=None,
**kwargs
)
Wraps call
, applying pre- and post-processing steps.
Arguments:
inputs
: input tensor(s).*args
: additional positional arguments to be passed toself.call
.**kwargs
: additional keyword arguments to be passed toself.call
.
Returns:
Output tensor(s).
Raises:
ValueError
: if the layer'scall
method returns None (an invalid value).
tf.keras.layers.ConvLSTM2D.__setattr__
__setattr__(
name,
value
)
Implement setattr(self, name, value).
tf.keras.layers.ConvLSTM2D.apply
apply(
inputs,
*args,
**kwargs
)
Apply the layer on a input.
This is an alias of self.__call__
.
Arguments:
inputs
: Input tensor(s).*args
: additional positional arguments to be passed toself.call
.**kwargs
: additional keyword arguments to be passed toself.call
.
Returns:
Output tensor(s).
tf.keras.layers.ConvLSTM2D.build
build(
instance,
input_shape
)
tf.keras.layers.ConvLSTM2D.compute_mask
compute_mask(
inputs,
mask
)
Computes an output mask tensor.
Arguments:
inputs
: Tensor or list of tensors.mask
: Tensor or list of tensors.
Returns:
None or a tensor (or list of tensors, one per output tensor of the layer).
tf.keras.layers.ConvLSTM2D.compute_output_shape
compute_output_shape(
instance,
input_shape
)
tf.keras.layers.ConvLSTM2D.count_params
count_params()
Count the total number of scalars composing the weights.
Returns:
An integer count.
Raises:
ValueError
: if the layer isn't yet built (in which case its weights aren't yet defined).
tf.keras.layers.ConvLSTM2D.from_config
@classmethod
from_config(
cls,
config
)
Creates a layer from its config.
This method is the reverse of get_config
,
capable of instantiating the same layer from the config
dictionary. It does not handle layer connectivity
(handled by Network), nor weights (handled by set_weights
).
Arguments:
config
: A Python dictionary, typically the output of get_config.
Returns:
A layer instance.
tf.keras.layers.ConvLSTM2D.get_config
get_config()
Returns the config of the layer.
A layer config is a Python dictionary (serializable) containing the configuration of a layer. The same layer can be reinstantiated later (without its trained weights) from this configuration.
The config of a layer does not include connectivity
information, nor the layer class name. These are handled
by Network
(one layer of abstraction above).
Returns:
Python dictionary.
tf.keras.layers.ConvLSTM2D.get_initial_state
get_initial_state(inputs)
tf.keras.layers.ConvLSTM2D.get_input_at
get_input_at(node_index)
Retrieves the input tensor(s) of a layer at a given node.
Arguments:
node_index
: Integer, index of the node from which to retrieve the attribute. E.g.node_index=0
will correspond to the first time the layer was called.
Returns:
A tensor (or list of tensors if the layer has multiple inputs).
Raises:
RuntimeError
: If called in Eager mode.
tf.keras.layers.ConvLSTM2D.get_input_mask_at
get_input_mask_at(node_index)
Retrieves the input mask tensor(s) of a layer at a given node.
Arguments:
node_index
: Integer, index of the node from which to retrieve the attribute. E.g.node_index=0
will correspond to the first time the layer was called.
Returns:
A mask tensor (or list of tensors if the layer has multiple inputs).
tf.keras.layers.ConvLSTM2D.get_input_shape_at
get_input_shape_at(node_index)
Retrieves the input shape(s) of a layer at a given node.
Arguments:
node_index
: Integer, index of the node from which to retrieve the attribute. E.g.node_index=0
will correspond to the first time the layer was called.
Returns:
A shape tuple (or list of shape tuples if the layer has multiple inputs).
Raises:
RuntimeError
: If called in Eager mode.
tf.keras.layers.ConvLSTM2D.get_losses_for
get_losses_for(inputs)
Retrieves losses relevant to a specific set of inputs.
Arguments:
inputs
: Input tensor or list/tuple of input tensors.
Returns:
List of loss tensors of the layer that depend on inputs
.
Raises:
RuntimeError
: If called in Eager mode.
tf.keras.layers.ConvLSTM2D.get_output_at
get_output_at(node_index)
Retrieves the output tensor(s) of a layer at a given node.
Arguments:
node_index
: Integer, index of the node from which to retrieve the attribute. E.g.node_index=0
will correspond to the first time the layer was called.
Returns:
A tensor (or list of tensors if the layer has multiple outputs).
Raises:
RuntimeError
: If called in Eager mode.
tf.keras.layers.ConvLSTM2D.get_output_mask_at
get_output_mask_at(node_index)
Retrieves the output mask tensor(s) of a layer at a given node.
Arguments:
node_index
: Integer, index of the node from which to retrieve the attribute. E.g.node_index=0
will correspond to the first time the layer was called.
Returns:
A mask tensor (or list of tensors if the layer has multiple outputs).
tf.keras.layers.ConvLSTM2D.get_output_shape_at
get_output_shape_at(node_index)
Retrieves the output shape(s) of a layer at a given node.
Arguments:
node_index
: Integer, index of the node from which to retrieve the attribute. E.g.node_index=0
will correspond to the first time the layer was called.
Returns:
A shape tuple (or list of shape tuples if the layer has multiple outputs).
Raises:
RuntimeError
: If called in Eager mode.
tf.keras.layers.ConvLSTM2D.get_updates_for
get_updates_for(inputs)
Retrieves updates relevant to a specific set of inputs.
Arguments:
inputs
: Input tensor or list/tuple of input tensors.
Returns:
List of update ops of the layer that depend on inputs
.
Raises:
RuntimeError
: If called in Eager mode.
tf.keras.layers.ConvLSTM2D.get_weights
get_weights()
Returns the current weights of the layer.
Returns:
Weights values as a list of numpy arrays.
tf.keras.layers.ConvLSTM2D.reset_states
reset_states(states=None)
tf.keras.layers.ConvLSTM2D.set_weights
set_weights(weights)
Sets the weights of the layer, from Numpy arrays.
Arguments:
weights
: a list of Numpy arrays. The number of arrays and their shape must match number of the dimensions of the weights of the layer (i.e. it should match the output ofget_weights
).
Raises:
ValueError
: If the provided weights list does not match the layer's specifications.