美好的一天,
我正在训练神经网络,并使用许多不同的全局步骤来存储检查点。文件夹中还存储有一个称为检查点的文件。 不幸的是,在一个会话之后,检查点将被覆盖并且不会由新会话更新,因此,例如,如果我第一次拥有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还原由它创建的检查点,直到那时再在会话内部,但是我无法将其他检查点添加到文件中(例如,某些全局步骤,我尚未选择保存以前。)