张量及操作张量可以说是TensorFlow的标志,因为整个框架的名称TensorFlow就是张量流的意思。下面来一起全面地认识一下张量。
1.张量介绍TensorFlow程序使用tensor数据结构来代表所有的数据。
计算图中,操作间传递的数据都是Tensor。可以把tensor看为一个n维的数组或列表,每个tensor中包含了类型(type)、阶(rank)和形状(shape)。
(1)tensor类型为了方便理解,这里将tensor的类型与Python的类型放在一起做个比较,如表4-4所示。
2)rank(阶)
rank(阶)指的就是维度。但张量的阶和矩阵的阶并不是同一个概念,主要是看有几层中括号。例如,对于一个传统意义上的3阶矩阵a=[[1,2,3], [4,5,6], [7,8,9]]来讲,在张量中的阶数表示为2阶(因为它有两层中括号)。表4-5列出了标量、向量、矩阵的阶数。
(3)shape(形状)
shape(形状)用于描述张量内部的组织关系。“形状”可以通过Python中的整数列表或元组(int list或tuples)来表示,也可以用TensorFlow中的相关形状函数来表示。举例:一个二阶张量a = [[1, 2, 3], [4, 5, 6]]形状是两行三列,描述为(2,3)。
2.张量相关操作张量的相关操作包括类型转换、数值操作、形状变换操作。
(1)类型转换类型转换的相关函数如表4-6所示。
(2)数值操作数值操作的相关函数如表4-7所示。
(3)形状变换形状变换的相关函数如表4-8所示