我想從檢查點文件中加載以前訓練過的張量訓練模型,現在這些檢查點文件在它們中有可變參數,因此要加載圖形,我必須先從中加載graph_def ** ckpt.meta文件:錯誤:張量的圖形與會話的圖形不一樣
graph = tf.Graph()
sess = tf.InteractiveSession(graph=graph)
saver = tf.train.import_meta_graph('/data/model_cache/model.ckpt-39.meta')
ckpt = tf.train.get_checkpoint_state(FLAGS.checkpoint_dir)
if ckpt and ckpt.model_checkpoint_path:
if os.path.isabs(ckpt.model_checkpoint_path):
saver.restore(sess, ckpt.model_checkpoint_path)
後,我已經加載的模型我有一個使用這個模型的推理來實現deep-dream算法中的方法。問題是,當我打電話EVAL用默認的會議上,我得到以下錯誤:
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 555, in eval
return _eval_using_default_session(self, feed_dict, self.graph, session)File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework /ops.py", line 3495, in _eval_using_default_session
raise ValueError("Cannot use the given session to evaluate tensor: "
ValueError: Cannot use the given session to evaluate tensor: the tensor's graph is different from the session's graph.
我已經證實,tf.get_default_graph()和sess.graph都指向相同的內存地址。必須有一些非常基本的東西我缺少。
我是tensorflow的新手,所以在這方面的任何幫助將非常感激。由於
嘗試使用普通'Session'而不是'InteractiveSession' – fabrizioM
從錯誤消息中,我猜你正在調用'tensor.eval()'或'op.run()'對象它與'sess.graph'有不同的圖形 - 您可以打印出'tensor.graph'或'op.graph'(視情況而定)。很難確切地說出可能會出現這種情況,不知道如何構建該對象以及調用它的上下文。你能分享更多的代碼嗎? – mrry