我将变量恢复到一个会话中的图形,关闭会话,然后创建一个新会话,我尝试评估图形。这样做时,我收到错误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)
答案 0 :(得分:2)
根据https://www.tensorflow.org/programmers_guide/faq:
变量的生命周期是什么?
首次在会话中为该变量运行tf.Variable.initializer操作时,会创建一个变量。它在tf.Session.close。
时被销毁
所以似乎变量不能在Session.close
。
答案 1 :(得分:0)
您必须在每个会话中恢复变量。