有人可以向我解释这个输出。我不明白为什么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()。为什么会这样?