提问者:小点点

如何解释tf.rank的输出


我是新来的,有一个关于tf.rank方法的问题。

在dochttps://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个答案

匿名用户

正如我在这个问题的评论中所说,tf。秩(t)创建一个张量,负责计算张量的秩t。如果使用pythonprint()函数,它只打印有关张量本身的信息。

让我们分配tf。秩(t)张量到变量(如@Picnix_389;建议的),并在tf下评估其值。会话()

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\u value是包含张量rank值的变量,如文档所示,其值为3。希望这能为tensorflow的工作原理提供一些线索。