當前所有機器學習系統都使用張量作為基本資料結構。張量對這個領域非常重要,重要到 google 的 tensorflow 都是以它來命名的。那麼什麼是張量?
標量(英語:scalar),又稱純量,是只有大小、沒有方向、可用實數表示的乙個量。實際上標量就是實數,「標量」這個稱法只是為了區別於向量。標量可以是負數,例如溫度低於冰點。與之相對,向量(又稱向量)既有大小,又有方向。與此相對的向量,其分量在不同的座標系中有不同的值,例如速度。標量可被用作定義向量空間。僅包含乙個數字的張量叫作標量(scalar,也叫標量張量、零維張量、0d張量)。在numpy中,乙個 float32 或 float64 的數字就是乙個標量張量(或標量陣列)。標量張量有0個軸(ndim == 0)。張量軸的個數也叫作階(rank)。——維基百科
下面是乙個 numpy 標量:
>>
>
import numpy as np
>>
> x = np.array(9)
>>
> x
array(9)
>>
> x.ndim
0
向量(英語:euclidean vector,物理、工程等也稱作向量、歐幾里得向量)是數學、物理學和工程科學等多個自然科學中的基本概念。指乙個同時具有大小和方向,且滿足平行四邊形法則的幾何物件。理論數學中向量的定義為任何在向量空間中的元素。數字組成的陣列叫作向量(vector)或一維張量(1d張量)。一維張量只有乙個軸。
下面是乙個numpy向量:
>>
> y = np.array([12
,5,4
,11,9
])>>
> y
array([12
,5,4
,11,9
])>>
> y.ndim
1
上面**中所寫向量有5個元素,所以被稱為5d向量。不要把 5d向量 和 5d張量 弄混!
5d向量只有乙個軸,沿著軸有5個維度;而5d張量有5個軸(沿著每個軸可能有任意個維度)。
維度(dimensionality)可以表示沿著某個軸上的元素個數(比如5d向量);
階數(order)可以表示張量軸的個數。
向量組成的陣列叫作矩陣(matrix)或二維張量(2d張量),矩陣有2個軸(通常叫作行和列)。
我們可以將矩陣直觀地理解為數字組成的矩形網格。
下面是乙個numpy矩陣:
>>
> z = np.array([[
1,2,
3],[
4,5,
6],[
7,8,
9]])
>>
> z
array([[
1,2,
3],[
4,5,
6],[
7,8,
9]])
>>
> z.ndim
2
矩陣上第乙個軸上的元素叫作行(row),第二個軸上的元素叫作列(column)。
在上面的例子中,[1, 2, 3] 是x的第一行,[1, 4, 7]是第一列。
將多個矩陣組合成乙個新的陣列,就可以得到乙個3d張量,我們可以理解為由數字組成的立方體。
下面是乙個numpy的3d張量:
>>
> s = np.array([[
[1,2
,3],
[4,5
,6],
[7,8
,9]]
,[[1
,2,3
],[4
,5,6
],[7
,8,9
]],[
[1,2
,3],
[4,5
,6],
[7,8
,9]]
])>>
> s
array([[
[1,2
,3],
[4,5
,6],
[7,8
,9]]
,[[1
,2,3
],[4
,5,6
],[7
,8,9
]],[
[1,2
,3],
[4,5
,6],
[7,8
,9]]
])>>
> s.ndim
3
以此類推,4d張量便由3d張量堆疊而成,5d張量由4d張量堆疊而成…
張量是由以下三個關鍵屬性來定義的。
神經網路的資料表示
深度學習中的資料儲存在多維numpy陣列中,也叫張量 tensor 一般來說,當前所有機器學習系統都使用張量作為基本的資料結構。張量對這個領域非常重要,重要到google 的tensorflow 都以它來命名。那麼什麼是張量?張量這一概念的核心在於,它是乙個資料容器。它包含的資料幾乎總是數值資料,因...
神經網路的資料表示 張量 Tensor
張量 tensor 是乙個資料容器,它所包含的一般是數值資料。下面是張量中的一些名詞 import numpy as np x np.array 12 x array 12 x.ndim 0 x np.array 12 3,6 14,7 x array 12 3,6 14,7 x.ndim 1這個向...
keras入門 神經網路的資料表示
資料儲存在多維 numpy 陣列中,也叫張量 tensor 一般來說,當前所 有機器學習系統都使用張量作為基本資料結構。張量這一概念的核心在於,它是乙個資料容器。它包含的資料幾乎總是數值資料,因此它 是數字的容器。你可能對矩陣很熟悉,它是二維張量。張量是矩陣向任意維度的推廣 注意,張量的維度 dim...