`variable.name` 和 `variable.op.name` 有什么区别?

What's difference between `variable.name` and `variable.op.name`?

假设 xVariable,我在教程中看到像 tf.scalar_summary(x.op.name, x) 一样使用 op.name。我想知道是否可以将 x.op.name 替换为 x.name 一般情况下。

两者有什么区别?它们可以互换吗?

with tf.name_scope('ab'):
    a = tf.Variable(tf.constant(1), name="v1")

a.name
u'ab_1/v1:0'

a.op.name
u'ab_1/v1'

现在存储该变量的 Variable.name property maps to the name of the mutable Tensor(主要是因为 Variable 可以在任何需要 Tensor 的地方使用)。张量名称是根据生成它们的操作的名称(在本例中为 Variable 操作)和该张量对应的输出索引生成的。

您可以随意使用 tf.scalar_summary(x.name, x) 代替 tf.scalar_summary(x.op.name, x),但生成的可视化效果将在标签中包含多余的 ":<N>"