Spec-Zone.ru › TensorFlow 2.9

tf.train.CheckpointManager

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

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

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

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

См. Руководство по миграции для получения более подробной информации.

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
)

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

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 если контрольная точка не сохранена.

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

Spec-Zone.ru

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