Flattens an input tensor while preserving the batch axis (axis 0).

Migrate to TF2

This API is not compatible with eager execution ortf.function.

Please refer to tf.layers section of the migration guide to migrate a TensorFlow v1 model to Keras. The corresponding TensorFlow v2 layer is tf.keras.layers.Flatten.

Structural Mapping to Native TF2

None of the supported arguments have changed name.


 y = tf.compat.v1.layers.flatten(x)


To migrate code using TF1 functional layers use the Keras Functional API:

 x = tf.keras.Input((28, 28, 1))
 y = tf.keras.layers.Flatten()(x)
 model = tf.keras.Model(x, y)


inputs Tensor input.
name The name of the layer (string).
data_format A string, one of channels_last (default) or channels_first. The ordering of the dimensions in the inputs. channels_last corresponds to inputs with shape (batch, height, width, channels) while channels_first corresponds to inputs with shape (batch, channels, height, width).

Reshaped tensor.


  x = tf.compat.v1.placeholder(shape=(None, 4, 4), dtype='float32')
  y = flatten(x)
  # now `y` has shape `(None, 16)`

  x = tf.compat.v1.placeholder(shape=(None, 3, None), dtype='float32')
  y = flatten(x)
  # now `y` has shape `(None, None)`