1

根据中的代码: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

因此,为什么在张量流中允许这样做?如果出于某种原因,如果我试图说:

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

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

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

任何帮助深表感谢!!

4

1 回答 1

2

对于您的问题:评估最新的“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 变量名称对应于您使用的最新张量。

我希望这有帮助。

于 2017-06-09T20:02:08.920 回答