我是新来的,有一个关于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”的输出?
正如我在这个问题的评论中所说,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的工作原理提供一些线索。