gpt4 book ai didi

python - 错误: the tensor's graph is different from the session's graph

转载 作者:行者123 更新时间:2023-11-30 08:32:28 28 4
gpt4 key购买 nike

我正在尝试从检查点文件加载之前训练过的张量训练模型,现在这些检查点文件中包含 op 变量,因此要加载图表,我必须首先从 **ckpt.meta 文件加载 graph_def:

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也。问题是当我使用默认 session 调用 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 指向相同的内存地址。我一定缺少一些非常基本的东西。

最佳答案

您正在导入的元图(即/data/model_cache/model.ckpt-39.meta)很可能与检查点tf.train 的元图不同.get_checkpoint_state(FLAGS.checkpoint_dir) 正在使用。

通常的做法是调用 get_checkpoint_state() (或 tf.train.latest_checkpoint(FLAGS.checkpoint_dir) )并在 import_meta_graph( ) 调用,然后使用相同的检查点名称(和返回的保护程序)恢复 session 中的变量。当然,如果元图保存在每个检查点中,则可以完成此操作。

关于python - 错误: the tensor's graph is different from the session's graph,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38905045/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com