tensorflow 中 python 代码中的同名张量

Tensors with same name in the python code in tensorflow

根据https://github.com/tensorflow/models/blob/master/tutorials/image/cifar10/cifar10.py中的代码,恰好张量变量使用相同的名称,例如:

conv = tf.nn.conv2d(images, kernel, [1, 1, 1, 1], padding='SAME') # Under conv1, line: 208

并且

conv = tf.nn.conv2d(norm1, kernel, [1, 1, 1, 1], padding='SAME') # Under conv2, line 227

因此,为什么在 tensorflow 中允许这样做?如果出于某种原因,如果我想说:

sess.run([conv], feed_dict{x: some_data})

那么我们将评估哪个conv张量?

其次,如果 conv 层下的 CONV1 张量指的是 tf.nn.conv2d 操作。 CONV2 下的另一个 conv 张量如何引用第二个 tf.nn.conv2d 操作?换句话说,如何分别对待它们?

非常感谢任何帮助!!

针对您的问题:最新的"conv"已被评估

例如:

import tensorflow as tf

a = tf.constant(5)
b = tf.constant(6)

c = tf.multiply(a,b)
print c
c = tf.multiply(c,b)
print c

sess = tf.Session()
c_val = sess.run(c)
print c_val

输出:

Tensor("Mul:0", shape=(), dtype=int32)
Tensor("Mul_1:0", shape=(), dtype=int32)
180

你可以看到 TF 对它们的命名不同。每当您调用 TF 运算符时,它都会创建一个独立于 python 变量名的节点。但是 python 变量名称对应于您使用的最新张量。

希望对您有所帮助。