python - TensorFlow:张量形状与 Numpy 数组形状
问题描述
在 tf.shape() 中,张量的形状与 numpy 数组的形状有何不同?
示例 1:
t = tf.constant([[[1, 1, 1], [2, 2, 2]], [[3, 3, 3], [4, 4, 4]]])
tf.shape(t)
<tf.Tensor: shape=(3,), dtype=int32, numpy=array([2, 2, 3], dtype=int32)>
注意张量的形状是(3,)
,而数组的形状是[2, 2, 3]
:2 行,2 列,每行有 3 层深。来自哪里(3,)
?为什么第二个维度None
在 3 之后?
示例 2:
c = tf.constant([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]])
tf.shape(c)
<tf.Tensor: shape=(2,), dtype=int32, numpy=array([2, 3], dtype=int32)>
请注意,张量的形状(2,)
与数组中的 2 匹配[2, 3]
。为什么它在这里匹配,但在示例 1 中不匹配?
谢谢。
解决方案
张量的形状由 numpy 数组形状的长度定义。例如 -
t = tf.constant([[[[1, 1, 1], [2, 2, 2]], [[3, 3, 3], [4, 4, 4]]],[[[1, 1, 1], [2, 2, 2]], [[3, 3, 3], [4, 4, 4]]]])
tf.shape(t)
将输出
<tf.Tensor: shape=(4,), dtype=int32, numpy=array([2, 2, 2, 3], dtype=int32)>
要获得张量的大小,请使用
t.shape
反而。
推荐阅读
- javascript - 为什么成功授权后使用 Express 的节点 js 中间件不调用给定的 API?
- javascript - JavaScript Fetch & Push 数组返回“未定义”
- sql - 如何根据条件选择输出列
- bootstrap-4 - Bootstrap 下拉链接在移动设备上立即跟随链接
- ruby-on-rails - 如何在生产 ruby on rails 上生成 puma.sock 文件
- typescript - 什么是破坏元组的正确惯用方法,其中只有一些值会在 Typescript 中创建新变量?
- javascript - 为什么我不能通过使用导入的包实例访问函数?
- ionic4 - jhipster ionic4 生成的应用程序无法通过 keycloak 验证以下文章“如何使用 Ionic 4 for JHipster 6 构建移动应用程序”
- java - 编写一个名为 Tail 的应用程序,打印在标准输入中找到的最后 k 个字符串(假设标准输入有 k 个或更多字符串)
- ubuntu - 将远程视频桥安装到现有的 jitsi-meet 安装。SSL 错误