如何在张量流

时间:2018-05-08 05:15:55

标签: python tensorflow

我是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"?

的输出

1 个答案:

答案 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.希望这能说明张量流的工作原理。