Как правильно обновить файл контрольной точки в tenorflow - PullRequest
0 голосов
/ 28 января 2019

Добрый день,

Я обучаю нейронную сеть и храню контрольные точки с множеством различных глобальных шагов.В папке также хранится один файл с именем контрольной точки.К сожалению, после одного сеанса контрольная точка переопределяется и не обновляется новым сеансом, поэтому, если у меня, например, сначала было 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, но я не могу добавить другие контрольные точки вфайл (например, некоторые глобальные шаги, которые я не выбрал для сохранения ранее).

...