View source on GitHub |
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
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.4/api_docs/python/tf/keras/backend/clear_session