Tensor
Tensor 是 TensorFlow 中基础的计算单元,它包括以下四个主要组成部分:
-
name -- Tensor 的名字,在一个 Computation Graph 中作为 Tensor 的一个标识
-
type -- Tensor 中数据的类型, 例如 tf.float32, tf.int64, tf.string
-
rank --- Tensor 中数据的维度, 类似矩阵中的rank (秩) 的概念
-
shape --- rank 定义好维度以后, shape 来定义每个维度的长度。比如 (6) 代表包含6个成员的向量, (2, 3) 代表一个 2 x 3 的矩阵。
当不知道某个维度的大小时, 可以用 None 代替, 表示 Unknown
Shape of Tensor
实际使可能遇到的几种Shape 的情况
-
Fully-known shape:
知道 Rank 和 每个维度的大小, 比如 (28, 28, 3) -
Partially-known shape
知道部分维度大小,比如 (None, 28, 28, 3) -
Unknown shape and known rank:
只知道Rank,所有维度的大小都不知道, 比如 (None, None, None) -
Unknown shape and rank
这是比较特殊的情况, Rank, Shape 都不知道
因为TensorFlow 是先定义, 后执行, 有些信息在运行 Computation Graph 的时候再运算, 所以会出现上述在定义时, 未知的情况。
参考文档:
[1] Understanding Tensorflow's tensors shape: static and dynamic, Paolo Galeone, 01/28/2018
网友评论