About Me

My photo

I helped create Google Cardboard and Google Earth VR. Current interests include virtual reality, machine learning, and Bitcoin.


Tensorflow tidbit: What's up with :0 in the names of my variables?

tl;dr replace t.name with t.op.name to get rid of the :0

When getting the names of things in Tensorflow I've sometimes been confused by the difference between "x" and "x:0". It turns out that "x:0" is the name of a Tensor object, while "x" is the name of the op that generates it (such as Add or MatMul).

If you have a Tensor object t and you say t.name, you will get a name with ":0" at the end. If you want the name without ":0", don't just try to use string processing to remove the ":0"! Instead, you can access the op related to the Tensor with the "op" member variable, so you can get the name you want with t.op.name.

If instead you have an operation my_op and you want the name of its output tensor, you can say my_op.outputs[0].name.