3.3 Tensor 张量
3.3.1 张量的概念
在TensorFlow中,所有的数据都通过张量的形式来表示。
从功能的角度,张量可以简单理解为多维数组,零阶张量表示标量(scalar),也就是一个数;一阶张量为向量(vector),也就是一维数组;n阶张量可以理解为一个n维数组。需要注意的是,张量并没有真正保存数字,它保存的是计算过程。
3.3.2 张量的属性
以张量Tensor("Add:0", shape=(), dtype=float32) 为例:
1. 名字(Name)
属性的第一项就是名字,一般形式为“node:src_output”,node表示节点名称,src_output 来自节点的第几个输出。
2. 形状(Shape)
属性的第二项是维度,张量的维度可以用三个术语来描述:阶(Rank)、形状(Shape)、维数(Dimension Number)。一般表示形式如表1所示。
阶
形状
维数
例子
0
()
0-D
4
1
(D0)
1-D
[2,3,5]
2
(D0,D1)
2-D
[[2,3],[3,4]]
3
(D0,D1,D2)
3-D
[[[7],[3]],[[2],[4]]]
N
(D0,D1,…,Dn-1)
N-D
形为(D0,D1,…,Dn-1)的张量
表3-1 张量的维度表示
3. 类型(Type)
每一个张量会有一个唯一的类型,TensorFlow在进行运算的时候会对参与运算的所有张量进行类型的检查,发现类型不匹配时会报错.
TensorFlow支持14种不同的类型:
实数 tf.float32, tf.float64
整数 tf.int8, tf.int16, tf.int32, tf.int64, tf.uint8
布尔 tf.bool
复数 tf.complex64, tf.complex128
默认类型:不带小数点的数会被默认为int32,带小数点的会被默认为float32。
Last updated
Was this helpful?