input_参数对tf.Print很重要吗?

时间:2018-06-02 09:00:45

标签: python tensorflow

我在this link中阅读了input_的参数tf.Print的说明。我尝试了几个实验,结果让我很困惑。

我使用以下代码进行实验

A = tf.constant([[1, 2, 3], [4, 5, 6]])
a1, a2 = tf.split(A, 2, axis=0)
p = tf.Print(A, [a1, a2])
with tf.Session() as sess:
    sess.run([p])

输出

[[1 2 3]][[4 5 6]]

我已将代码行p = tf.Print(A, [a1, a2])替换为p = tf.Print(a1, [a1, a2])p = tf.Print(a2, [a1, a2]),并获得完全相同的输出:[[1 2 3]][[4 5 6]]。这让我觉得“无关紧要input_是什么,你可以传递任何你想要的东西

我的问题是

  1. input_参数对tf.Print有影响吗?
  2. 如果确实如此,你们可以给我一个例子吗?
  3. 我发现了一个类似的问题here,但IMO没有涵盖我在这个问题中所想的方面。

1 个答案:

答案 0 :(得分:2)

是的,这很重要。在您的示例中,在运行print op之后,p的值将为input_。

A = tf.constant([[1, 2, 3], [4, 5, 6]])
a1, a2 = tf.split(A, 2, axis=0)
p = tf.Print(A, [a1, a2])
with tf.Session() as sess:
    p_val = sess.run([p])

print(p_val)

这将说明不同之处。

同样重要的是,如果p不是实际图形计算的一部分,它将不会打印该值。因此,_input应该是您实际需要计算的内容的一部分。

实际上只需致电

_input = tf.Print(_input,[...])

所以这是一个直通。