首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tensorflow保护程序似乎覆盖了现有保存的变量文件。

Tensorflow保护程序似乎覆盖了现有保存的变量文件。
EN

Stack Overflow用户
提问于 2017-04-13 07:25:04
回答 1查看 3.2K关注 0票数 3

我在用tensorflow编写神经网络代码。我是为了在每1000个时代保存变量。因此,我希望节省1001,2001,3001年代的变量。不同的文件。下面的代码是我创建的保存函数。

代码语言:javascript
复制
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= epoch”来保存每1000个时代的变量历史。并希望将最新的变量保存在文件中,而不需要指定划时代。每当满足如下的时代条件时,我就调用这个函数。

代码语言:javascript
复制
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。我在其他电脑上查过了。这和我预期的不一样。为什么会发生这种事?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-13 08:19:47

tf.train.Saver的构造函数中有一个max_to_keep参数,它只保存最新的模型。这个max_to_keep参数,有点让人吃惊的是,它的默认值是5,所以在默认情况下,您将只拥有最新的5个模型。

若要保留所有模型,请将此变量设置为None

代码语言:javascript
复制
saver = tf.train.Saver(max_to_keep=None)
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43386016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档