训练完成后保存tensorflow模型
Saving tensorflow model after training is finished
我已经在 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)
这returns:ValueError:没有要保存的变量。根据他们的网站,缺少的是 initialize_all_variables()。该文档很少说明它到底做了什么。 "initialize" 这个词吓到我了,我不想重置我所有的训练值。有什么方法可以在不重新 运行 的情况下保存我的模型?
从 tensorflow 文档看来,"session" 是保存训练模型信息的东西。所以大概在某个地方你调用 sess.run()
来训练你的模型 - 你想要做的是使用那个会话调用 sess.save()
,而不是你用这个保护对象创建的新会话。
使用 skflow 怎么样?使用 skflow(现在 skflow 已集成到 tensorflow 中),您可以在构造函数中指定参数 model_dir,这将在训练时自动保存您的模型(它将保存检查点,因此如果在训练过程中出现问题,您可以从上次重新开始检查点)。
我相信这是因为您没有在保护程序中初始化所有变量。这应该有效
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)
我已经在 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)
这returns:ValueError:没有要保存的变量。根据他们的网站,缺少的是 initialize_all_variables()。该文档很少说明它到底做了什么。 "initialize" 这个词吓到我了,我不想重置我所有的训练值。有什么方法可以在不重新 运行 的情况下保存我的模型?
从 tensorflow 文档看来,"session" 是保存训练模型信息的东西。所以大概在某个地方你调用 sess.run()
来训练你的模型 - 你想要做的是使用那个会话调用 sess.save()
,而不是你用这个保护对象创建的新会话。
使用 skflow 怎么样?使用 skflow(现在 skflow 已集成到 tensorflow 中),您可以在构造函数中指定参数 model_dir,这将在训练时自动保存您的模型(它将保存检查点,因此如果在训练过程中出现问题,您可以从上次重新开始检查点)。
我相信这是因为您没有在保护程序中初始化所有变量。这应该有效
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)