Spec-Zone.ru › TensorFlow

tf.train.CheckpointManager

Управляет несколькими контрольными точками, сохраняя некоторые из них и удаляя ненужные.

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

Совместимые псевдонимы для миграции

Подробную информацию см. в руководстве по миграции.

tf.compat.v1.train.CheckpointManager

tf.train.CheckpointManager(
    checkpoint,
    directory,
    max_to_keep,
    keep_checkpoint_every_n_hours=None,
    checkpoint_name='ckpt',
    step_counter=None,
    checkpoint_interval=None,
    init_fn=None
)

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

Используется в руководстве Используется в учебных материалах
  • Контрольные точки обучения
  • tf.data: создание входных конвейеров TensorFlow
  • Миграция механизма отказоустойчивости
  • Распределенное обучение с DTensors
  • Пользовательский цикл обучения с Keras и MultiWorkerMirroredStrategy
  • Обучение на нескольких рабочих узлах с Keras
  • CycleGAN
  • Обучение с Orbit

Пример использования:

import tensorflow as tf
checkpoint = tf.train.Checkpoint(optimizer=optimizer, model=model)
manager = tf.train.CheckpointManager(
    checkpoint, directory="/tmp/model", max_to_keep=5)
status = checkpoint.restore(manager.latest_checkpoint)
while True:
  # train
  manager.save()

CheckpointManager сохраняет свое состояние между экземплярами (подробности см. в документации __init__). В каждый момент времени в конкретном каталоге должен быть активен только один экземпляр.

Аргументы
checkpoint Экземпляр tf.train.Checkpoint, для которого необходимо сохранять контрольные точки и управлять ими.
directory Путь к каталогу, в котором будут записываться контрольные точки. В этот каталог также записывается специальный файл с именем "checkpoint" в текстовом формате, удобном для чтения человеком. Он содержит состояние CheckpointManager.
max_to_keep Целое число, количество сохраняемых контрольных точек. Если контрольные точки не сохранены с помощью keep_checkpoint_every_n_hours, они удаляются из активного набора, начиная с самых старых, пока в нем не останется только max_to_keep контрольных точек. Если None, контрольные точки не удаляются и все остаются в активном наборе. Обратите внимание, что max_to_keep=None будет хранить пути ко всем контрольным точкам в памяти и в буфере протокола состояния контрольной точки на диске.
keep_checkpoint_every_n_hours При удалении из активного набора контрольная точка будет сохранена, если с момента сохранения предыдущей контрольной точки прошло не менее keep_checkpoint_every_n_hours. Значение по умолчанию None не сохраняет таким образом ни одной контрольной точки.
checkpoint_name Пользовательское имя файла контрольной точки.
step_counter Экземпляр tf.Variable для проверки текущего значения счетчика шагов на случай, если пользователь хочет сохранять контрольные точки каждые N шагов.
checkpoint_interval Целое число, задающее минимальный интервал в шагах между двумя контрольными точками.
init_fn Вызываемый объект. Функция для выполнения пользовательской инициализации, если в каталоге нет контрольных точек.
Вызывает исключение
ValueError Если max_to_keep не является положительным целым числом.
Атрибуты
checkpoint Возвращает объект tf.train.Checkpoint.
checkpoint_interval
checkpoints Список управляемых контрольных точек.

Обратите внимание: контрольные точки, сохраненные благодаря keep_checkpoint_every_n_hours, не будут отображаться в этом списке, чтобы избежать его бесконечного роста.

directory
latest_checkpoint Префикс последней контрольной точки в directory.

Эквивалентно tf.train.latest_checkpoint(directory), где directory — аргумент конструктора CheckpointManager.

Можно передать в tf.train.Checkpoint.restore для возобновления обучения.

Методы

restore_or_initialize

Просмотреть исходный код

restore_or_initialize()

Восстанавливает элементы в checkpoint из файла последней контрольной точки.

Сначала этот метод пытается выполнить восстановление из самой последней контрольной точки в directory. Если в directory нет контрольных точек и указано init_fn, этот метод вызывает init_fn для выполнения пользовательской инициализации. Это можно использовать для поддержки инициализации из предварительно обученных моделей.

Обратите внимание: в отличие от tf.train.Checkpoint.restore(), этот метод не возвращает объект статуса загрузки, для которого можно выполнять проверки (например, assert_consumed()). Поэтому для выполнения проверок следует напрямую использовать метод tf.train.Checkpoint.restore().

Возвращает
Путь к восстановленной контрольной точке, если последняя контрольная точка найдена и восстановлена. В противном случае — None.

save

Просмотреть исходный код

save(
    checkpoint_number=None, check_interval=True, options=None
)

Создает контрольную точку и управляет ею.

Аргументы
checkpoint_number Необязательное целое число либо Variable или Tensor целочисленного типа, используемое для нумерации контрольной точки. Если указано None (значение по умолчанию), контрольные точки нумеруются с помощью checkpoint.save_counter. Даже если указано checkpoint_number, значение save_counter все равно увеличивается. Значение checkpoint_number, заданное пользователем, не увеличивается, даже если оно является Variable.
check_interval Необязательное логическое значение. Аргумент действует только в том случае, если менеджеру передан checkpoint_interval. Если указано True, менеджер сохранит контрольную точку, только если интервал между контрольными точками превышает checkpoint_interval. В противном случае контрольная точка будет сохраняться всегда, если для текущего шага еще не была сохранена контрольная точка.
options Необязательный объект tf.train.CheckpointOptions. Этот аргумент работает только с объектами контрольных точек TF2. Например, options = tf.saved_model.SaveOptions(experimental_io_device='/job:localhost')
Возвращает
Путь к новой контрольной точке. Он также записывается в свойства checkpoints и latest_checkpoint. None, если контрольная точка не сохранена.

sync

Просмотреть исходный код

sync()

Ожидает завершения всех выполняющихся операций сохранения или восстановления.

© 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/train/CheckpointManager

Spec-Zone.ru

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