训练结束后保存张量流模型

时间:2016-03-25 20:15:57

标签: python tensorflow

我已经在tensorflow python中运行了一个大模型。但我还没把它保存在会话中。现在训练结束了,我想保存变量。我正在做以下事情:

saver=tf.train.Saver()
with tf.Session(graph=graph) as sess:  
    save_path = saver.save(sess, "86_model.ckpt")
    print("Model saved in file: %s" % save_path)

返回:ValueError:没有要保存的变量。根据他们的网站,缺少的是initialize_all_variables()。该文档几乎没有说明究竟是什么。 “初始化”这个词吓到了我,我不想重置我训练过的所有值。有没有办法保存我的模型而不重新运行它?

3 个答案:

答案 0 :(得分:1)

似乎从tensorflow文档中,“会话”是保存来自训练模型的信息的东西。所以大概是你用sess.run()来训练模型的地方 - 你要做的就是使用THAT会话调用sess.save(),而不是用你的这个保护对象创建的新会话。

答案 1 :(得分:1)

我相信它,因为你没有在保护程序中初始化所有变量。这应该工作

with tf.Session() as sess:
      tf.initialize_all_variables().run()
      saver = tf.train.Saver(tf.all_variables())
     -------everything your session does -------------
      checkpoint_path = os.path.join(save_dir, 'model.ckpt')
      saver.save(sess, checkpoint_path, global_step = your_global_step)

答案 2 :(得分:0)

使用skflow怎么样?使用skflow(现在skflow集成在tensorflow中),您可以在构造函数中指定参数model_dir,并在训练时自动保存模型(它将节省检查点,因此如果在训练期间出现问题,您可以从上一个检查点重新启动)。 / p>