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 变量名称对应于您使用的最新张量。
希望对您有所帮助。
根据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 变量名称对应于您使用的最新张量。
希望对您有所帮助。