Tensorflow, отсутствующие файлы контрольных точек. Сохраняет ли только сохранение 5 контрольных точек?

Я работаю с тензорным потоком и тренирую некоторые модели и сохраняя их после каждой эпохи с использованием метода tf.saver(). Я могу сохранять и загружать модели просто отлично, и я делаю это обычным способом.

with tf.Graph().as_default(), tf.Session() as session:
    initialiser = tf.random_normal_initializer(config.mean, config.std)

    with tf.variable_scope("model",reuse=None, initializer=initialiser):
        m = a2p(session, config, training=True)

    saver = tf.train.Saver()   
    ckpt = tf.train.get_checkpoint_state(model_dir)
    if ckpt and tf.gfile.Exists(ckpt.model_checkpoint_path)
        saver.restore(session, ckpt.model_checkpoint_path)
    ...
    for i in range(epochs):
       runepoch()
       save_path = saver.save(session, '%s.ckpt'%i)

Мой код настроен для сохранения модели для каждой эпохи, которая должна быть помечена соответствующим образом. Однако я заметил, что после пятнадцати эпох обучения у меня есть только файлы контрольных точек за последние пять эпох (10, 11, 12, 13, 14). В документации ничего не говорится об этом, поэтому я не понимаю, почему это происходит.

Сохраняется ли только сохранение пяти контрольных точек или я сделал что-то неправильно?

Есть ли способ убедиться, что все контрольные точки сохранены?

Ответ 1

Вы можете выбрать, сколько контрольных точек нужно сохранить, когда создайте объект Saver, установив аргумент max_to_keep, который по умолчанию равен 5.

saver = tf.train.Saver(max_to_keep=10000)

Ответ 2

настройка max_to_keep=None фактически заставляет Saver хранить все контрольные точки. Например,

saver = tf.train.Saver(max_to_keep=None)