2

作为 TensorFlow 的初学者,我不明白为什么 tensorflow.rank 总是返回空值的形状?

这就是我正在做的事情:

import tensorflow as tf
%tensorflow_version 2.x

list_2d = [[1,2,3,4],
             [5,6,7,8],
             [9,10,11,12]
]
tensor_2d = tf.Variable(list_2d)

print(tensor_2d.shape)
print(tf.rank(tensor_2d))

输出是

(3, 4)
tf.Tensor(2, shape=(), dtype=int32)

所以我的问题是shape=()输出tf.rank什么?

我不能从这里得到太多 - https://www.tensorflow.org/api_docs/python/tf/rank

4

2 回答 2

1

返回的值表示唯一寻址每个元素所需的索引数(在您的情况下为 2)。2 是一个 0-dim 张量,它解释了为什么 shape 为空。有关更多信息,请参阅文档。

于 2020-05-24T16:20:54.727 回答
1

这是因为 的输出tf.rank()本身就是一个张量。输出不是以整数形式返回等级,而是具有单个 int32 值的张量,该值表示给定输入张量的等级。shape()是输出值的形状,而不是输入张量的形状(单值张量有 shape ())。

于 2020-05-24T16:14:37.797 回答