我正在使用检查点文件和一个没有明确命名的输出/张量模型。
我理解命名的工作原理:
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
答案 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)