Python Tensorflow保护程序似乎覆盖了已保存的现有变量文件
我正在用tensorflow编写神经网络代码。我做到了每1000个历元保存一次变量。所以,我希望保存1001个历元、2001个历元、3001个历元的变量。。。对于不同的文件。 下面的代码是我制作的save函数Python Tensorflow保护程序似乎覆盖了已保存的现有变量文件,python,tensorflow,neural-network,Python,Tensorflow,Neural Network,我正在用tensorflow编写神经网络代码。我做到了每1000个历元保存一次变量。所以,我希望保存1001个历元、2001个历元、3001个历元的变量。。。对于不同的文件。 下面的代码是我制作的save函数 def save(self, epoch): model_name = "MODEL_save" checkpoint_dir = os.path.join(model_name) if not os.path.exists(checkpoint_dir):
def save(self, epoch):
model_name = "MODEL_save"
checkpoint_dir = os.path.join(model_name)
if not os.path.exists(checkpoint_dir):
os.makedirs(checkpoint_dir)
self.saver.save(self.sess, checkpoint_dir + '/model', global_step=epoch)
self.saver.save(self.sess, checkpoint_dir + '/model')
print("path for saved %s" % checkpoint_dir)
我编写这段代码是为了在调用函数时保存两次。因为我想通过使用“global_step=epoch”为每1000个历元保存变量的历史记录。并希望在文件中保存最新变量,而不指定历元。
只要满足如下所示的历元条件,我就调用这个函数
for epoch in xrange(self.m_total_epoch):
.... CODE FOR NEURAL NETWORK ....
if epoch%1000 == 1 and epoch != 1:
self.save(epoch)
假设当前epoch是29326,我希望目录中所有保存的文件都是10012001。。。29001但是,只有来自26001、27001、28001、29001的部分文件。我在其他电脑上查过了。这和我预料的不一样。为什么会这样
tf.train.Saver
在其构造函数中有一个max\u to\u keep
参数,它只保存最新的模型。这个max_to_keep
参数的默认值是5,这有点令人惊讶。因此,默认情况下,您将只拥有最新的5个型号
要保留所有型号,请将此变量设置为None
:
saver = tf.train.Saver(max_to_keep=None)
当
max\u to\u keep
为5时,如何仅加载上次保存的变量?