Атрибут checkpoints
Атрибут checkpoints класса CheckpointManager возвращает список строк с путями ко всем контрольным точкам, которые были сохранены менеджером. Список упорядочен по времени сохранения: первым идёт самый старый чекпоинт, последним - самый новый. Атрибут доступен только для чтения и обновляется автоматически при каждом вызове метода save.
Атрибут не принимает параметров. Его значение формируется на основе внутреннего состояния менеджера и настроек max_to_keep, заданных при создании объекта CheckpointManager. Если max_to_keep не равен None, то в списке будет храниться не более указанного числа последних чекпоинтов.
Синтаксис
checkpoint_manager.checkpoints
Пример
Давайте создадим менеджер контрольных точек и сохраним две точки, после чего выведем содержимое атрибута checkpoints:
import tensorflow as tf
model = tf.keras.Sequential([
tf.keras.layers.Dense(2, input_shape=(2,))
])
optimizer = tf.keras.optimizers.Adam()
ckpt = tf.train.Checkpoint(model=model, optimizer=optimizer)
manager = tf.train.CheckpointManager(
ckpt,
directory='./checkpoints',
max_to_keep=3
)
save_path_1 = manager.save()
save_path_2 = manager.save()
print(manager.checkpoints)
Результат выполнения кода:
['./checkpoints/ckpt-1', './checkpoints/ckpt-2']
Пример
Давайте проверим, как атрибут checkpoints обновляется при превышении лимита max_to_keep. Сохраним четыре чекпоинта при лимите в два:
import tensorflow as tf
model = tf.keras.Sequential([
tf.keras.layers.Dense(2, input_shape=(2,))
])
ckpt = tf.train.Checkpoint(model=model)
manager = tf.train.CheckpointManager(
ckpt,
directory='./checkpoints_limit',
max_to_keep=2
)
for i in range(4):
manager.save()
print(manager.checkpoints)
Результат выполнения кода:
['./checkpoints_limit/ckpt-3', './checkpoints_limit/ckpt-4']
Как видно из результата, старые чекпоинты были удалены, и в списке остались только два последних.
Смотрите также
-
класс
CheckpointManager,
который управляет сохранением контрольных точек -
метод
save,
который сохраняет новую контрольную точку -
метод
restore_or_initialize,
который восстанавливает последнюю контрольную точку -
атрибут
latest_checkpoint,
который возвращает путь к последней контрольной точке