View source on GitHub |
2D Convolutional LSTM.
Inherits From: RNN, Layer, Operation
tf.keras.layers.ConvLSTM2D( filters, kernel_size, strides=1, padding='valid', data_format=None, dilation_rate=1, activation='tanh', recurrent_activation='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, dropout=0.0, recurrent_dropout=0.0, seed=None, return_sequences=False, return_state=False, go_backwards=False, stateful=False, **kwargs ) Similar to an LSTM layer, but the input transformations and recurrent transformations are both convolutional.
Args | |
|---|---|
filters | int, the dimension of the output space (the number of filters in the convolution). |
kernel_size | int or tuple/list of 2 integers, specifying the size of the convolution window. |
strides | int or tuple/list of 2 integers, specifying the stride length of the convolution. strides > 1 is incompatible with dilation_rate > 1. |
padding | string, "valid" or "same" (case-insensitive). "valid" means no padding. "same" results in padding evenly to the left/right or up/down of the input such that output has the same height/width dimension as the input. |
data_format | string, either "channels_last" or "channels_first". The ordering of the dimensions in the inputs. "channels_last" corresponds to inputs with shape (batch, steps, features) while "channels_first" corresponds to inputs with shape (batch, features, steps). It defaults to the image_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 | int or tuple/list of 2 integers, specifying the dilation rate to use for dilated convolution. |
activation | Activation function to use. By default hyperbolic tangent activation function is applied (tanh(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 the kernel weights matrix, used for the linear transformation of the inputs. |
recurrent_initializer | Initializer for the recurrent_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 with bias_initializer="zeros". This is recommended in Jozefowicz et al., 2015 |
kernel_regularizer | Regularizer function applied to the kernel weights matrix. |
recurrent_regularizer | Regularizer function applied to the recurrent_kernel weights matrix. |
bias_regularizer | Regularizer function applied to the bias vector. |
activity_regularizer | Regularizer function applied to. |
kernel_constraint | Constraint function applied to the kernel weights matrix. |
recurrent_constraint | Constraint function applied to the recurrent_kernel weights matrix. |
bias_constraint | Constraint function applied to the bias vector. |
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. |
seed | Random seed for dropout. |
return_sequences | Boolean. Whether to return the last output in the output sequence, or the full sequence. Default: False. |
return_state | Boolean. Whether to return the last state in addition to the output. Default: False. |
go_backwards | Boolean (default: False). If True, process the input sequence backwards and return the reversed sequence. |
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. |
unroll | Boolean (default: False). If True, the network will be unrolled, else a symbolic loop will be used. Unrolling can speed-up a RNN, although it tends to be more memory-intensive. Unrolling is only suitable for short sequences. |
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_state: a list of tensors. The first tensor is the output. The remaining tensors are the last states, each 4D tensor with shape:(samples, filters, new_rows, new_cols)ifdata_format='channels_first'or shape:(samples, new_rows, new_cols, filters)ifdata_format='channels_last'.rowsandcolsvalues might have changed due to padding. - If
return_sequences: 5D tensor with shape:(samples, timesteps, filters, new_rows, new_cols)if data_format='channels_first' or shape:(samples, timesteps, new_rows, new_cols, filters)ifdata_format='channels_last'. - Else, 4D tensor with shape:
(samples, filters, new_rows, new_cols)ifdata_format='channels_first'or shape:(samples, new_rows, new_cols, filters)ifdata_format='channels_last'.
References:
- Shi et al., 2015 (the current implementation does not include the feedback loop on the cells output).
Methods
from_config
@classmethodfrom_config( 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).
| Args | |
|---|---|
config | A Python dictionary, typically the output of get_config. |
| Returns | |
|---|---|
| A layer instance. |
get_initial_state
get_initial_state( batch_size ) inner_loop
inner_loop( sequences, initial_state, mask, training=False ) reset_state
reset_state() reset_states
reset_states() symbolic_call
symbolic_call( *args, **kwargs )
View source on GitHub