tf.train.CheckpointManager
| Просмотреть исходный код на GitHub |
Управляет несколькими контрольными точками, сохраняя некоторые и удаляя ненужные.
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 | Список управляемых контрольных точек. Обратите внимание, что контрольные точки, сохранённые из-за |
directory | |
latest_checkpoint | Префикс последней контрольной точки в directory. Эквивалентно Подходит для передачи в |
Методы
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
)
Создаёт новую контрольную точку и управляет ею.
| Аргументы | |
|---|---|
checkpoint_number | Необязательное целое число или целое число с типом данных Variable или Tensor, используемое для нумерации контрольной точки. Если None (по умолчанию), контрольные точки нумеруются с использованием checkpoint.save_counter. Даже если checkpoint_number предоставлено, save_counter всё равно увеличивается. Пользовательское значение checkpoint_number не увеличивается, даже если оно имеет тип Variable. |
check_interval | Необязательный булев параметр. Аргумент эффективен только когда checkpoint_interval передаётся в менеджер. Если True, менеджер сохранит контрольную точку только если интервал между контрольными точками больше checkpoint_interval. В противном случае он всегда будет сохранять контрольную точку, если контрольная точка для текущего шага ещё не сохранена. |
| Возвращаемое значение | |
|---|---|
Путь к новой контрольной точке. Он также записывается в свойства checkpoints и latest_checkpoint. None если контрольная точка не сохранена. |
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.4/api_docs/python/tf/train/CheckpointManager