无法使用tf.train.import_meta_graph导入元图,名称''表示图中未包含的操作

问题描述 投票:1回答:1
OS Platform and Distribution: Ubuntu 18.04

tf.VERSION = 1.13.1                                                            
tf.GIT_VERSION = b'v1.13.1-0-g6612da8951'                                      
tf.COMPILER_VERSION = b'v1.13.1-0-g6612da8951'
Python version: 3.6.10
GCC/Compiler version (if compiling from source): 4.8.5
CUDA/cuDNN version: 10.2
GPU model and memory: Nvidia Tesla V100, 16gb

我无法导入元图。即使我定义了tf.placeholder(name =“ data”,shape =(None,64),dtype = tf.float32),下一层也会出现错误。我也尝试使用tf2.0。但是那里同样的问题。

重现该问题的代码

import tensorflow as tf

model_dir="./model"   # change this line to the directory where checkpoint and models are saved
checkpoint = tf.train.get_checkpoint_state(model_dir)
input_checkpoint = checkpoint.model_checkpoint_path
clear_devices = True

with tf.Session(graph=tf.Graph()) as sess:
    saver = tf.train.import_meta_graph(input_checkpoint + '.meta', clear_devices=clear_devices)

检查点文件附加在model.zip中。

StackTrace

Traceback (most recent call last):
  File "import_meta_graph.py", line 11, in <module>
    saver = tf.train.import_meta_graph(input_checkpoint + '.meta', clear_devices=clear_devices)
  File "/home/ubuntu/tf1.13/lib/python3.6/site-packages/tensorflow/python/training/saver.py", line 1435, in import_meta_graph
    meta_graph_or_file, clear_devices, import_scope, **kwargs)[0]
  File "/home/ubuntu/tf1.13/lib/python3.6/site-packages/tensorflow/python/training/saver.py", line 1457, in _import_meta_graph_with_return_elements
    **kwargs))
  File "/home/ubuntu/tf1.13/lib/python3.6/site-packages/tensorflow/python/framework/meta_graph.py", line 852, in import_scoped_meta_graph_with_return_elements
    ops.prepend_name_scope(value, scope_to_prepend_to_names))
  File "/home/ubuntu/tf1.13/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 3478, in as_graph_element
    return self._as_graph_element_locked(obj, allow_tensor, allow_operation)
  File "/home/ubuntu/tf1.13/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 3538, in _as_graph_element_locked
    "graph." % repr(name))
KeyError: "The name 'data' refers to an Operation not in the graph."
tensorflow tensorflow-serving returnn
1个回答
0
投票

您应删除graph=tf.Graph(),否则import_meta_graph会将其导入到错误的图形中。

© www.soinside.com 2019 - 2024. All rights reserved.