tf.print()。eval()奇怪的输出

时间:2016-11-11 13:02:09

标签: python tensorflow

有人可以向我解释这个输出。我不明白为什么tensorflow只评估其中一行:

输入:

import tensorflow as tf

import numpy as np
a=tf.constant([[0, 0, 0],
                  [0, 1, 0],
                  [1, 0, 1],
                  [1, 1, 1],
                  [2, 1, 1]])

b=tf.reshape(tf.range(3),[3,1])
c=tf.matmul(a,b)
sess = tf.InteractiveSession()
tf.Print(c,[c]).eval()
tf.Print(b,[b]).eval()

输出:

array([[0],
       [1],
       [2]], dtype=int32)

输入:

import tensorflow as tf

import numpy as np
a=tf.constant([[0, 0, 0],
                  [0, 1, 0],
                  [1, 0, 1],
                  [1, 1, 1],
                  [2, 1, 1]])

b=tf.reshape(tf.range(3),[3,1])
c=tf.matmul(a,b)
sess = tf.InteractiveSession()
tf.Print(b,[b]).eval()
tf.Print(c,[c]).eval()

输出:

array([[0],
       [1],
       [2],
       [3],
       [3]], dtype=int32)

因此只调用最后一个eval()。为什么会这样?

0 个答案:

没有答案