Spec-Zone.ru › TensorFlow

tf.keras.backend.clear_session

Сбрасывает всё состояние, созданное Keras.

Просмотреть псевдонимы

Основные псевдонимы

tf.keras.utils.clear_session

tf.keras.backend.clear_session(
    free_memory=True
)

Используется в блокнотах

Используется в руководстве Используется в учебных материалах
  • Оценщики
  • Перенос обучения для классификации видео с помощью MoViNet
  • Классификация CIFAR-10 с помощью XLA
  • Регуляризация графов для классификации тональности с использованием синтезированных графов
  • Регуляризация графов для классификации документов с использованием естественных графов

Keras управляет глобальным состоянием, которое используется для реализации API функционального построения моделей и создания уникальных автоматически генерируемых имён слоёв.

Если вы создаёте множество моделей в цикле, это глобальное состояние со временем будет потреблять всё больше памяти, и может потребоваться его очистить. Вызов clear_session() освобождает глобальное состояние: это помогает избежать накопления старых моделей и слоёв, особенно при ограниченном объёме памяти.

Аргументы
free_memory Вызывать ли сборку мусора Python. Обычно рекомендуется вызывать её, чтобы память, занимаемая удалёнными объектами, освобождалась немедленно. Однако выполнение может занять несколько секунд, поэтому при использовании 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 = 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)])

Пример 2: сброс счётчика генерации имён слоёв

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

© 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/api_docs/python/tf/keras/backend/clear_session

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API