Search code examples
graphtensorflowtensorboard

What is a "reference edge" in TensorBoard?


The TensorBoard UI shows something called a "Reference edge" as distinct from a data flow (Tensor) edge:

enter image description here

What distinguishes the former from the latter?

The documentation says that "the outgoing operation node can mutate the incoming tensor", but indicates different symbols that don't match the UI, so it's hard to tell what's meant by "incoming" and "outgoing":

enter image description here

For example how does this definition apply to

cs = tf.constant([1,2,3], name='const_share')
vs = tf.Variable([1,2,3], name='var_share')
tf.add(cs, vs, name='opVS1')
tf.add(vs, cs, name='opVS2')

or to

tf.add([4],[3], name='opA')

enter image description here

In both cases it just seems that the reference edge indicates that the value its tail fills the Tensor represented by the edge.


Solution

  • This is a source of confusion, even to DeepMind developers and is being fixed in future releases so that:

    1. All reference edges will be a distinct color (and dataflow edges the same grey as before).
    2. Arrows to all dataflow edges no matter where they point (instead of only appearing in cases where data flowed "downward").

    enter image description here