Python 3.x 在会话关闭时启动模型-Tensorflow

Python 3.x 在会话关闭时启动模型-Tensorflow,python-3.x,tensorflow,neural-network,save,Python 3.x,Tensorflow,Neural Network,Save,我建立了一个具有两个隐藏层的神经网络。启动会话时,我通过以下方式保存会话: saver.save(sess, "model.ckpt") 如果我仍在同一会话中并启动此代码: restorer=tf.train.Saver() with tf.Session() as sess: restorer.restore(sess,"./prova") new_graph = tf.train.import_meta_graph('prova.meta')  new_graph.

我建立了一个具有两个隐藏层的神经网络。启动会话时,我通过以下方式保存会话:

saver.save(sess, "model.ckpt")
如果我仍在同一会话中并启动此代码:

restorer=tf.train.Saver()
with tf.Session() as sess:
    restorer.restore(sess,"./prova")
    new_graph = tf.train.import_meta_graph('prova.meta') 
    new_graph.restore(sess, 'prova.ckpt')
    feed={
        pred1.inputs:test_data,
        pred1.is_training:False
    }
    test_predict=sess.run(pred1.predicted,feed_dict=feed)
我可以启动模型进行测试


问题是:有一种方法可以在会话结束时启动模型?特别是,我将训练结果保存在.ckpt中,我可以在另一时刻重新启动模型?

您不能在
tf.Session
之外运行模型。引述自:

会话对象封装了执行操作对象和计算张量对象的环境

但是,您可以轻松地多次打开和关闭会话,使用现有图形或加载以前保存的图形,并在新会话中使用它。这里有一个稍加修改的:


在这两个会话之间,您不能评估
v1
v2
,但您可以在启动新会话后立即进行评估。

您不能在
tf.session
之外运行模型。引述自:

会话对象封装了执行操作对象和计算张量对象的环境

但是,您可以轻松地多次打开和关闭会话,使用现有图形或加载以前保存的图形,并在新会话中使用它。这里有一个稍加修改的:


在这两个会话之间,您不能评估
v1
v2
,但您可以在开始新会话后立即进行评估。

为什么不想在测试时间内开始另一个会话?此时,使用火车或测试集开始新会话也是一样的。我想了解的是,是否有可能在ckpt文件中用salved中的日期启动新会话;如果可能的话,我们如何做到这一点。感谢您提供了代码段,在其中您可以在新会话中恢复模型。那里没有训练。这个代码有什么问题?培训是在之前进行的。我的问题是:如果我启动session.close(),可能会重新启动模型?为什么不想在测试时启动另一个会话?此时,使用train或test set启动新会话也是一样的。我想了解的是,是否有可能在ckpt文件中用salved中的日期启动新会话;如果可能的话,我们如何做到这一点。感谢您提供了代码段,在其中您可以在新会话中恢复模型。那里没有训练。这个代码有什么问题?培训是在之前进行的。我的问题是:如果启动session.close(),是否可以重新启动模型?
import tensorflow as tf

v1 = tf.get_variable("v1", shape=[3], initializer = tf.zeros_initializer)
v2 = tf.get_variable("v2", shape=[5], initializer = tf.zeros_initializer)

inc_v1 = v1.assign(v1+1)
dec_v2 = v2.assign(v2-1)
init_op = tf.global_variables_initializer()
saver = tf.train.Saver()

with tf.Session() as sess:
  sess.run(init_op)
  inc_v1.op.run()
  dec_v2.op.run()
  save_path = saver.save(sess, "/tmp/model.ckpt")
  print("Model saved in file: %s" % save_path)

with tf.Session() as sess:
  saver.restore(sess, "/tmp/model.ckpt")
  print("Model restored.")
  print("v1 : %s" % v1.eval())
  print("v2 : %s" % v2.eval())