给定检查点文件,如何生成模型的输出节点名称

时间:2017-09-19 17:37:30

标签: tensorflow

我正在使用检查点文件和一个没有明确命名的输出/张量模型。

我理解命名的工作原理:

Tensorflow: What is the output node name in Cifar-10 model?&& How does TensorFlow name tensors?

但我不确定如何从现有的检查点文件生成名称(没有生成pb'我需要这样才能得到它):

model.ckpt.data-00000-of-00001
model.ckpt.index
model.ckpt.meta

有问题的CNN是fast-neural-style

2 个答案:

答案 0 :(得分:1)

因此,使用当前模型,我发现在evaluate.py中您可以访问已恢复的图形,只需打印即可找到名称。

with g.as_default(), g.device(device_t), \
            tf.Session(config=soft_config) as sess:
        batch_shape = (batch_size,) + img_shape
        img_placeholder = tf.placeholder(tf.float32, shape=batch_shape,
                                         name='img_placeholder')

        preds = transform.net(img_placeholder)
        print(preds)

输出:

Tensor("add_37:0", shape=(1, 720, 884, 3), dtype=float32, device=/device:GPU:0)

在这种情况下,操作是添加的,tensorflow相应地命名它: add_37

答案 1 :(得分:1)

来自KeyError : The tensor variable , Refer to the tensor which does not exists

这会打印出所有张量名称,您可以尝试找出所需的张量名称。

model_path = "my_model.ckpt"

sess = tf.Session()

saver = tf.train.import_meta_graph(model_path + ".meta")
saver.restore(sess, model_path)
graph = tf.get_default_graph()

for op in graph.get_operations():
    print(op.name)