gpt4 book ai didi

tensorflow - Tensorflow 中的 tf.rank 函数

转载 作者:行者123 更新时间:2023-12-04 13:40:41 30 4
gpt4 key购买 nike

我想了解 tensorflow 中的 tf.rank 函数。来自文档 here ,我知道 rank 应该返回张量中不同元素的数量。

这里 x 和权重是 2 个不同的 2*2 张量,每个张量有 4 个不同的元素。但是,rank() 函数的输出是:

Tensor("Rank:0", shape=(), dtype=int32) Tensor("Rank_1:0", shape=(), dtype=int32)

此外,对于张量 x,我使用 tf.constant() 和 dtype = float 将 ndarray 转换为 float32 张量,但 rank() 仍输出为 int32。

g = tf.Graph()
with g.as_default():
weights = tf.Variable(tf.truncated_normal([2,2]))
x = np.asarray([[1 , 2], [3 , 4]])
x = tf.constant(x, dtype = tf.float32)
y = tf.matmul(weights, x)
print (tf.rank(x), tf.rank(weights))


with tf.Session(graph = g) as s:
tf.initialize_all_variables().run()
print (s.run(weights), s.run(x))
print (s.run(y))

我应该如何解释输出。

最佳答案

首先,tf.rank 返回张量的维度,而不是元素的数量。例如,tf.rank 调用 2x2 矩阵的输出将为 2。

要打印张量的等级,请创建一个适当的节点,例如rank = tf.rank(x) 然后使用 Session.run() 评估此节点,就像您对权重和 x 所做的那样。执行 print (tf.rank(x), tf.rank(weights)) 预期打印出张量的描述,如 tf.rank(x), tf.rank(weights) 是图的节点,而不是具有定义值的变量。

关于tensorflow - Tensorflow 中的 tf.rank 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40195549/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com