Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

In Tensorflow, how can I rename a certain operation name?

I think this question may sound weird. Let's say, there is a tensor 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")

Is there an efficient way to refer a with a different name, like out? I am thinking a dummy operation like

b = tf.add(a, 0, name="out")

I am asking this because I am trying different network architectures, and regardless of architectures, I would like to access the output tensor with a consistent name like

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

For now, output tensors are depending on architectures like fc1/fc1wb:0 or fc2/fc2wb:0. How can I wrap the final op with a certain name?

like image 577
YW P Kwon Avatar asked Jan 24 '17 03:01

YW P Kwon


1 Answers

This answer suggests that tf.Graph is append only, you cannot modify it.

That being said, a slightly better way to rename a tensor is to use tf.identity like this:

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

EDIT: After figuring out answer to one of my own questions, I can see a slightly better way to do this:

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

the index is usually -1 because final output tensors are in the end of the graph_def

like image 132
Priyatham Avatar answered Nov 01 '22 03:11

Priyatham