TF文档说运行这两行
t = tf.constant([[[1, 1, 1], [2, 2, 2]], [[3, 3, 3], [4, 4, 4]]])
tf.rank(t)
应返回3,因为张量等级为3.但是,它返回
<tf.Tensor 'Rank_1:0' shape=() dtype=int32>
文档还说rank函数等同于numpy的ndim,所以我在给定的数组上运行它并返回3.
这个问题有什么原因吗? 我在Spyder中使用集成的Ipython控制台; python 3.5
答案 0 :(得分:0)
似乎我还不了解TensorFlow的内部工作原理。 正如我所读到的那样,tf.Tensors没有分配给它们的值。它们仅仅是稍后要计算的图形。我不知道的是它们仅在tf.Session()调用之后计算。运行会话来计算排名确实产生了正确的“3”
答案在以下问题中找到 tf.rank function in Tensorflow