Атрибут latest_checkpoint
Атрибут latest_checkpoint класса CheckpointManager
возвращает полный путь к последнему сохранённому чекпоинту.
Если ни один чекпоинт ещё не был сохранён, атрибут возвращает
None. Атрибут доступен только для чтения и обновляется
автоматически после каждого вызова метода save.
Этот атрибут удобно использовать для восстановления модели из последней сохранённой точки, а также для проверки, существуют ли уже сохранённые чекпоинты.
Синтаксис
manager.latest_checkpoint
Пример
Давайте создадим менеджер чекпоинтов и проверим значение
атрибута latest_checkpoint до сохранения:
import tensorflow as tf
model = tf.keras.Sequential([
tf.keras.layers.Dense(3, input_shape=(2,))
])
manager = tf.train.CheckpointManager(
tf.train.Checkpoint(model=model),
directory='./ckpt',
max_to_keep=3
)
print(manager.latest_checkpoint)
Результат выполнения кода:
None
Пример
Теперь сохраним чекпоинт и посмотрим, как изменится значение атрибута:
Результат выполнения кода:
./ckpt/ckpt-1
./ckpt/ckpt-1
Как видно, после сохранения атрибут latest_checkpoint
содержит путь к последнему чекпоинту, совпадающий со значением,
возвращённым методом save.
Пример
Давайте сохраним несколько чекпоинтов и убедимся, что атрибут всегда указывает на самый последний из них:
import tensorflow as tf
model = tf.keras.Sequential([
tf.keras.layers.Dense(3, input_shape=(2,))
])
manager = tf.train.CheckpointManager(
tf.train.Checkpoint(model=model),
directory='./ckpt',
max_to_keep=3
)
manager.save()
manager.save()
manager.save()
print(manager.latest_checkpoint)
Результат выполнения кода:
./ckpt/ckpt-3
Пример
Атрибут latest_checkpoint удобно использовать для
восстановления модели из последней сохранённой точки:
import tensorflow as tf
model = tf.keras.Sequential([
tf.keras.layers.Dense(3, input_shape=(2,))
])
checkpoint = tf.train.Checkpoint(model=model)
manager = tf.train.CheckpointManager(
checkpoint,
directory='./ckpt',
max_to_keep=3
)
manager.save()
if manager.latest_checkpoint:
checkpoint.restore(manager.latest_checkpoint)
print("Restored from:", manager.latest_checkpoint)
else:
print("No checkpoint found")
Результат выполнения кода:
"Restored from: ./ckpt/ckpt-1"
Смотрите также
-
класс
CheckpointManager,
который управляет сохранением и восстановлением чекпоинтов -
метод
save,
который сохраняет новый чекпоинт и возвращает его путь -
метод
restore_or_initialize,
который восстанавливает последний чекпоинт или инициализирует модель -
атрибут
checkpoints,
который хранит список всех сохранённых путей к чекпоинтам