import tensorflow as tf
with tf.device('/gpu:0'):
foo = tf.Variable(1, name='foo')
assert foo.name == "foo:0"
with tf.device('/gpu:1'):
bar = tf.Variable(1, name='bar')
assert bar.name == "bar:0"
上面的代码返回true。我这里用with tf.device
来说明“:0”并不代表变量位于特定的设备上。那么“”是什么意思:0"在变量名中(本例中为 foo 和 bar)?
最佳答案
这与底层 API 中张量的表示有关。张量是与某个操作的输出相关联的值。如果是变量,则有 Variable
具有一个输出的操作。一个运算可以有多个输出,因此这些张量被引用为 <op>:0
, <op>:1
等等。例如,如果您使用 tf.nn.top_k
,这个操作创建了两个值,所以你可能会看到 TopKV2:0
和 TopKV2:1
a,b=tf.nn.top_k([1], 1)
print a.name # => 'TopKV2:0'
print b.name # => 'TopKV2:1'
关于python - 在TensorFlow中,变量名称中的 ":0"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40925652/