在Tensorflow中,如何重命名某个操作名称?

时间:2017-01-24 03:12:10

标签: python tensorflow

我认为这个问题可能听起来很奇怪。比方说,有一个张量a

x = tf.placeholder(tf.float32, [None, 2400], name="x")
y = tf.placeholder(tf.float32, [None, 2400], name="y")
a = tf.add(x, y, name="a")

是否有一种有效的方式来引用a使用其他名称,例如out? 我正在考虑像

这样的虚拟操作
b = tf.add(a, 0, name="out")

我问这个是因为我正在尝试不同的网络架构,而且无论架构如何,我都希望使用一致的名称来访问输出张量,如

tf.get_default_graph().get_tensor_by_name("out:0")`

目前,输出张量取决于fc1/fc1wb:0fc2/fc2wb:0等架构。如何用特定名称包装最终操作?

1 个答案:

答案 0 :(得分:11)

This回答表明tf.Graph仅附加,您无法修改。

话虽这么说,重新命名张量的一种稍微好一点的方法是使用tf.identity这样:

tf.identity(a, name="out")

编辑:在找到我自己的一个问题的答案后,我可以看到一个更好的方法来做到这一点:

graph_def.node[<index of the op you want to change>].name = "out"

index通常为-1,因为最终输出张量位于graph_def

的末尾