python - 如何解释 tensorflow 中 tf.rank 的输出
问题描述
我是 tensorflow 的新手,对 tf.rank 方法有疑问。
在文档https://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.rank(t)
创建一个负责评估张量等级的张量t
。如果您使用 pythonprint()
函数,它只会打印有关张量本身的信息。
让我们将tf.rank(t)
张量分配给一个变量rank
(如@Picnix_ 建议的那样)并在 a 下评估它的值tf.Session()
:
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_value
是包含 tensor 值的变量rank
,并且正如文档所暗示的那样,它的值是 3。希望这对 tensorflow 的工作原理有所了解。
推荐阅读
- vba - VBA打开Excel文件,刷新bloomberg数据,保存,关闭
- matrix - How do you get the mean of a Eigen::MatrixXd column?
- laravel - 如何修复 Laravel 上的 php7.1-fpm.sock 故障
- azure-active-directory - 使用自定义身份提供商注册的用户缺少用户名
- javascript - 如何以最少的代码行一次显示一个 div?
- react-native - 如何在一段时间后更新进度条,并在收到某些数据时重置?
- forms - 如何在 HTML 表单中正确添加文本区域字段
- javascript - 如何使用 JavaScript 从字符串中删除重复的 CSS 样式?
- html - CSS 表格“借用”另一个表格的样式
- ruby-on-rails - 在 Rails (Mac) 中安装 Dashing gem 时出错