The input should be at least 3D, and the dimension of index one will be considered to be the temporal dimension.

time_distributed(object, layer, input_shape = NULL,
  batch_input_shape = NULL, batch_size = NULL, dtype = NULL,
  name = NULL, trainable = NULL, weights = NULL)



Model or layer object


A layer instance.


Dimensionality of the input (integer) not including the samples axis. This argument is required when using this layer as the first layer in a model.


Shapes, including the batch size. For instance, batch_input_shape=c(10, 32) indicates that the expected input will be batches of 10 32-dimensional vectors. batch_input_shape=list(NULL, 32) indicates batches of an arbitrary number of 32-dimensional vectors.


Fixed batch size for layer


The data type expected by the input, as a string (float32, float64, int32...)


An optional name string for the layer. Should be unique in a model (do not reuse the same name twice). It will be autogenerated if it isn't provided.


Whether the layer weights will be updated during training.


Initial weights for layer.


Consider a batch of 32 samples, where each sample is a sequence of 10 vectors of 16 dimensions. The batch input shape of the layer is then (32, 10, 16), and the input_shape, not including the samples dimension, is (10, 16). You can then use time_distributed to apply a layer_dense to each of the 10 timesteps, independently.

See also

Other layer wrappers: bidirectional