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() освобождает глобальное состояние: это помогает избежать захламления старыми моделями и слоями, особенно при ограниченном объёме памяти.

Args
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