View source on GitHub |
Resets all state generated by Keras.
tf.keras.backend.clear_session(
free_memory=True
)
Used in the notebooks
Used in the guide | Used in the tutorials |
---|---|
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 = keras.Sequential([
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.
keras.backend.clear_session()
model = keras.Sequential([
keras.layers.Dense(10) for _ in range(10)])
Example 2: resetting the layer name generation counter
layers = [keras.layers.Dense(10) for _ in range(10)]
new_layer = keras.layers.Dense(10)
print(new_layer.name)
dense_10
keras.backend.clear_session()
new_layer = keras.layers.Dense(10)
print(new_layer.name)
dense