我将变量还原为一个会话中的图形,关闭会话,然后创建一个新的会话,我尝试评估图形。这样做时,我会收到错误FailedPreconditionError: Attempting to use uninitialized value ...
。
试图在第一个会话中评估图表的工作正常。
在第二个会话上调用sess.run(tf.global_variables_initializer())
"解决"问题,但是重置变量的值。
初始修复是使用:
完成的meta_graph_def = meta_graph.read_meta_graph_file(meta_graph_filename)
saver = tf.train.import_meta_graph(meta_graph_def)
sess = tf.Session(target=target, config=config)
saver.restore(sess, save_path)
根据https://www.tensorflow.org/programmers_guide/faq:
变量的寿命是什么?
首次运行会话中该变量的tf.variable.Initializer操作时,会创建一个变量。当tf.session.close。
时,它被摧毁
因此,似乎不能在Session.close
上使用该变量。
您必须还原每个会话中的变量。