我是tensorflow的新手,对tf.rank方法有疑问。
在文档https://www.tensorflow.org/api_docs/python/tf/rank中有一个关于tf.rank的简单示例:
# shape of tensor 't' is [2, 2, 3]
t = tf.constant([[[1, 1, 1], [2, 2, 2]], [[3, 3, 3], [4, 4, 4]]])
tf.rank(t) # 3
但是当我运行下面的代码时:
t = tf.constant([[[1, 1, 1], [2, 2, 2]], [[3, 3, 3], [4, 4, 4]]])
print(tf.rank(t)) # 3
我输出如下:
Tensor("Rank:0", shape=(), dtype=int32)
为什么我可以得到" 3"?
的输出答案 0 :(得分:0)
正如我在这个问题的评论中所说,tf.rank(t)
创建了一个负责评估张量等级t
的张量。如果使用python print()
函数,它只会打印有关张量本身的信息。
让我们将tf.rank(t)
张量分配给变量rank
(由@Picnix_建议)并在tf.Session()
下评估其值:
import tensorflow as tf
t = tf.constant([[[1, 1, 1], [2, 2, 2]], [[3, 3, 3], [4, 4, 4]]])
rank = tf.rank(t)
with tf.Session() as sess:
rank_value = sess.run(rank)
print(rank_value) # Outputs --> 3
因此,rank_value
是包含张量rank
值的变量,并且文档显示其值为3.希望这能说明张量流的工作原理。