购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.1 张量、矩阵和向量的区别

标量只有大小的概念,没有方向的概念,通过一个具体的数值就能表达完整,比如重量、温度、长度、体积、时间、热量等数据就是标量。

只有一行或者一列的数组被称作向量。向量主要有两个维度:大小和方向。因此,我们把向量定义为一个一维数组。向量有行向量和列向量之分,分别表示为:

矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合,元素是实数的矩阵称为实矩阵,元素是复数的矩阵称为复矩阵。而行数与列数都等于n的矩阵称为n阶矩阵或n阶方阵。

由m×n个数a ij 排成的m行n列的数表称为m行n列的矩阵,简称m×n矩阵,表示如下:

标量、向量、矩阵、张量这4个概念是维度不断上升的,我们用点、线、面、体的概念来解释更加容易理解:

● 点——标量(Scalar)。

● 线——向量(Vector)。

● 面——矩阵(Matrix)。

● 体——张量(Tensor)。

零维的张量就是标量;一维的张量就是向量;二维的张量就是矩阵;大于或等于三维的张量没有名称,统一叫作张量。

举例说明如下:

● 标量:很简单,就是一个数,如1、2、5、108等。

● 向量:如[1,2]、[1,2,3]、[1,2,3,4]、[3,5,67,…,n]都是向量。

● 矩阵:如[[1,3]、[3,5]]、[[1,2,3]、[2,3,4]、[3,4,5]]、[[4,5,6,7,8]、[3,4,7,8,9]、[2,11,34,56,18]]都是矩阵。

● 张量:[[[1,2],[3,4]],[[1,2],[3,4]]]。

TensorFlow内部的计算都是基于张量的,因此我们有必要先对张量有个认识。张量是在我们熟悉的标量、向量之上定义的,详细的定义比较复杂,我们可以先简单地将它理解为一个多维数组:

可能混淆的地方来了,就是数学里面有三维向量,n维向量的说法,这其实指的是二维张量(即向量)的形状,即它所含分量的个数,比如[1,3]这个向量的维数为2,它有1和3这两个分量;[1,2,3,…,4096]这个向量的维数为4096,它有1,2,…,4096这4096个分量,都是说的向量的形状。你不能说[1,3]这个“张量”的维数是2,只能说[1,3]这个“一维张量”的维数是2。矩阵也是类似的,常说的n×m阶矩阵,这里的阶也是指的矩阵的形状。

那么,张量的维数和张量的形状怎么看呢?维数要看张量的最左边有多少个左方括号,若有n个,则这个张量是n维张量。

比如[[1,3],[3,5]]最左边有两个左方括号,它就是二维张量;[[[1,2],[3,4]],[[1,2],[3,4]]]最左边有三个左方括号,它就是三维张量。[[1,3],[3,5]]的最左边的方括号有[1,3]和[3,5]这两个元素,最左边的第二个方括号里有1和3这两个元素,所以形状为[2,2];[[[1,2],[3,4]],[[1,2],[3,4]]]的最左边方括号里有[[1,2],[3,4]]和[[1,2],[3,4]]这两个元素,最左边的第二个方括号里有[1,2]和[3,4]这两个元素,最左边的第三个方括号里有1和2这两个元素,所以形状为[2,2,2]。在形状的方括号中有多少个数字,就代表这个张量是多少维的张量。 wNDV08dbKvYo47ece4B35TeNQfFkjoHZSODo2zuHFpJhSA+EvIcgQr/knf4xCy6n

点击中间区域
呼出菜单
上一章
目录
下一章
×