<br />

|---|
| [![](https://www.tensorflow.org/images/GitHub-Mark-32px.png) View source on GitHub](https://github.com/keras-team/keras/tree/v2.15.0/keras/backend.py#L226-L297) |

Resets all state generated by Keras.

    tf.keras.backend.clear_session()

Keras manages a global state, which it uses to implement the Functional
model-building API and to uniquify autogenerated layer names.

If you are creating many models in a loop, this global state will consume
an increasing amount of memory over time, and you may want to clear it.
Calling `clear_session()` releases the global state: this helps avoid
clutter from old models and layers, especially when memory is limited.

Example 1: calling `clear_session()` when creating models in a loop

    for _ in range(100):
      # Without `clear_session()`, each iteration of this loop will
      # slightly increase the size of the global state managed by Keras
      model = tf.keras.Sequential([
          tf.keras.layers.Dense(10) for _ in range(10)])

    for _ in range(100):
      # With `clear_session()` called at the beginning,
      # Keras starts with a blank state at each iteration
      # and memory consumption is constant over time.
      tf.keras.backend.clear_session()
      model = tf.keras.Sequential([
          tf.keras.layers.Dense(10) for _ in range(10)])

Example 2: resetting the layer name generation counter

    import tensorflow as tf
    layers = [tf.keras.layers.Dense(10) for _ in range(10)]
    new_layer = tf.keras.layers.Dense(10)
    print(new_layer.name)
    dense_10
    tf.keras.backend.set_learning_phase(1)
    print(tf.keras.backend.learning_phase())
    1
    tf.keras.backend.clear_session()
    new_layer = tf.keras.layers.Dense(10)
    print(new_layer.name)
    dense