Добрый день,
Я обучаю нейронную сеть и храню контрольные точки с множеством различных глобальных шагов.В папке также хранится один файл с именем контрольной точки.К сожалению, после одного сеанса контрольная точка переопределяется и не обновляется новым сеансом, поэтому, если у меня, например, сначала было 10 контрольных точек, а второй раз я тренируюсь до пятой контрольной точки, файл контрольных точек изменяет информацию о предыдущих 10 контрольных точках, исчезает.Как я могу обновить и не перезаписать файл контрольных точек?Я сейчас создаю сеанс, затем делаю следующее
saver = tf.train.Saver(max_to_keep=max_num_checkpoints)
if reco["retrain"]==False:
print("Starting training from the beginning")
train_start = 0
elif tf.train.checkpoint_exists(sessSavePath +"/primDual.ckpt-%s"%(train_start-1)):
print("Starting from the previous training point " + str(train_start-1))
saver.restore(self.sess,
sessSavePath +"/primDual.ckpt-%s"%(train_start-1))
#elif tf.train.checkpoint_exists(sessSavePath + "/" )
Так что я либо переучиваю cnn с самого начала, либо восстанавливаю с другой контрольной точки.Затем я сохраняю все необходимые контрольные точки с помощью
for i in range(train_start, n_train):
tren hard eat clen
if i>0 and ((i%10 == 0 or i==n_train-1) or i<11 ):
saver.save(self.sess,
sessSavePath +"/primDual.ckpt",global_step=global_step)
. В основном, когда запущен очень длинный сеанс, я могу восстановить созданные им контрольные точки до тех пор внутри сеанса с помощью get_checkpoint_state, но я не могу добавить другие контрольные точки вфайл (например, некоторые глобальные шаги, которые я не выбрал для сохранения ранее).