我正在努力做到这一点:
graph = tf.get_default_graph()
with graph.as_default():
with tf.Session() as load_sess:
resSaver = tf.train.import_meta_graph(lastModel)
resSaver.restore(load_sess, checkpoint_file)
x = graph.get_operation_by_name("output/x").outputs[0]
[...]
with tf.Session() as run_sess:
sess_run.run(x, feed_dict={...})
我得到的错误是:
Attempting to use uninitialized value encoder/enc_b_4
并使用:
print(sess_run.run(tf.report_uninitialized_variables()))
我可以看到所有变量都没有初始化。如果我运行tf.global_variables_initializer(),错误就会消失,但看起来所有的训练都已消失。
我尝试在这样的块中创建新会话:
with graph.as_default():
with tf.Session(graph=graph) as sess_run:
[...]
以及其他一些没有运气的变种。
重复使用多个/不同会话的图表的正确方法是什么?
重点是:
现在我使用相同的会话加载和评估变量,它的工作原理。我将此会话存储在一个全局变量中,并将其用于所有请求(一次一个)。我怀疑有更好的解决方案。