tf.keras.backend.clear_session
| Просмотреть исходный код на GitHub |
Сбрасывает все состояние, созданное Keras.
tf.keras.backend.clear_session()
Keras управляет глобальным состоянием, которое используется для реализации функционального API построения моделей и для уникализации имен автоматически генерируемых слоев.
Если вы создаете много моделей в цикле, это глобальное состояние со временем будет потреблять все больше памяти, и вам может потребоваться его очистить. Вызов clear_session() освобождает глобальное состояние: это помогает избежать мусора от старых моделей и слоев, особенно когда ограничено количество памяти.
Пример 1: вызов clear_session() при создании моделей в цикле
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)])
Пример 2: сброс счетчика генерации имен слоев
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
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.9/api_docs/python/tf/keras/backend/clear_session