# tf.compat.v1.layers.Flatten

<br />

|---|
| [![](https://www.tensorflow.org/images/GitHub-Mark-32px.png) View source on GitHub](https://github.com/keras-team/keras/tree/v2.13.1/keras/legacy_tf_layers/core.py#L425-L478) |

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

Inherits From: [`Flatten`](https://www.tensorflow.org/versions/r2.13/api_docs/python/tf/keras/layers/Flatten), [`Layer`](https://www.tensorflow.org/versions/r2.13/api_docs/python/tf/compat/v1/layers/Layer), [`Layer`](https://www.tensorflow.org/versions/r2.13/api_docs/python/tf/keras/layers/Layer), [`Module`](https://www.tensorflow.org/versions/r2.13/api_docs/python/tf/Module)

    tf.compat.v1.layers.Flatten(
        data_format=None, **kwargs
    )

<br />

## Migrate to TF2

<br />

> [!CAUTION]
> **Caution:** This API was designed for TensorFlow v1. Continue reading for details on how to migrate from this API to a native TensorFlow v2 equivalent. See the [TensorFlow v1 to TensorFlow v2 migration guide](https://www.tensorflow.org/guide/migrate) for instructions on how to migrate the rest of your code.

This API is a legacy api that is only compatible with eager execution and
[`tf.function`](https://www.tensorflow.org/versions/r2.13/api_docs/python/tf/function) if you combine it with
[`tf.compat.v1.keras.utils.track_tf1_style_variables`](https://www.tensorflow.org/versions/r2.13/api_docs/python/tf/compat/v1/keras/utils/track_tf1_style_variables)

Please refer to [tf.layers model mapping section of the migration guide](https://www.tensorflow.org/guide/migrate/model_mapping)
to learn how to use your TensorFlow v1 model in TF2 with Keras.

The corresponding TensorFlow v2 layer is [`tf.keras.layers.Flatten`](https://www.tensorflow.org/versions/r2.13/api_docs/python/tf/keras/layers/Flatten).

#### Structural Mapping to Native TF2

None of the supported arguments have changed name.

Before:

     flatten = tf.compat.v1.layers.Flatten()

After:

     flatten = tf.keras.layers.Flatten()

<br />

<br />

## Description

<br />

<br />

<br />

| ## Args ||
|---|---|
| `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, ..., channels)` while `channels_first` corresponds to inputs with shape `(batch, channels, ...)`. |

<br />

#### Examples:

      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)`

<br />

<br />

<br />

| ## Attributes ||
|---|---|
| `graph` | <br /> <br /> |
| `scope_name` | <br /> <br /> |

<br />

## Methods

### `apply`

[View source](https://github.com/keras-team/keras/tree/v2.13.1/keras/legacy_tf_layers/base.py#L239-L240)

    apply(
        *args, **kwargs
    )

### `get_losses_for`

[View source](https://github.com/keras-team/keras/tree/v2.13.1/keras/engine/base_layer_v1.py#L1467-L1484)

    get_losses_for(
        inputs
    )

Retrieves losses relevant to a specific set of inputs.

<br />

<br />

<br />

| Args ||
|---|---|
| `inputs` | Input tensor or list/tuple of input tensors. |

<br />

<br />

<br />

<br />

| Returns ||
|---|---|
| List of loss tensors of the layer that depend on `inputs`. ||

<br />

### `get_updates_for`

[View source](https://github.com/keras-team/keras/tree/v2.13.1/keras/engine/base_layer_v1.py#L1448-L1465)

    get_updates_for(
        inputs
    )

Retrieves updates relevant to a specific set of inputs.

<br />

<br />

<br />

| Args ||
|---|---|
| `inputs` | Input tensor or list/tuple of input tensors. |

<br />

<br />

<br />

<br />

| Returns ||
|---|---|
| List of update ops of the layer that depend on `inputs`. ||

<br />