Tensorflow金丹似乎覆盖现有保存的变量文件
问题描述:
我写的神经网络代码tensorflow。我让它在每1000个纪元中保存变量。所以,我期望为不同的文件保存第1001个时代,第2001个时代,第3001个时代的变量。 下面的代码是我所做的保存功能。Tensorflow金丹似乎覆盖现有保存的变量文件
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)
假设当前时期是29326,我希望所有的目录中保存的文件,从1001,2001,3001 ... 29001不过,也有只有部分文件从26001,27001,28001,29001。我检查了它发生在其他电脑上。这与我所期望的不同。为什么会发生?
答
tf.train.Saver
在其构造一个max_to_keep
论点,即只保留最新型号保存。这个max_to_keep
参数有点令人惊讶,默认值是5.所以默认情况下,你只有最新的5个模型。
要将所有车型,将此变量设置为None
:
saver = tf.train.Saver(max_to_keep=None)
当'max_to_keep'是5如何加载只有最后保存的变量? –