Apply a layer to every temporal slice of an input.
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)Arguments
| object | Model or layer object | 
| layer | A layer instance. | 
| input_shape | 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. | 
| batch_input_shape | Shapes, including the batch size. For instance,
 | 
| batch_size | Fixed batch size for layer | 
| dtype | The data type expected by the input, as a string ( | 
| name | 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. | 
| trainable | Whether the layer weights will be updated during training. | 
| weights | Initial weights for layer. | 
Details
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
