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