【DL--03】深度學習基本概念—張量
阿新 • • 發佈:2019-01-11
張量
TensorFlow中的中心資料單位是張量。張量由一組成形為任意數量的陣列的原始值組成。張量的等級是其維數。以下是張量的一些例子:
3 # a rank 0 tensor; this is a scalar with shape []
[1. ,2., 3.] # a rank 1 tensor; this is a vector with shape [3]
[[1., 2., 3.], [4., 5., 6.]] # a rank 2 tensor; a matrix with shape [2, 3]
[[[1., 2., 3.]], [[7., 8., 9.]]] # a rank 3 tensor with shape [2, 1, 3]
張量,或tensor,是本文件會經常出現的一個詞彙,在此稍作解釋。
使用這個詞彙的目的是為了表述統一,張量可以看作是向量、矩陣的自然推廣,我們用張量來表示廣泛的資料型別。
規模最小的張量是0階張量,即標量,也就是一個數。
當我們把一些數有序的排列起來,就形成了1階張量,也就是一個向量
如果我們繼續把一組向量有序的排列起來,就形成了2階張量,也就是一個矩陣
把矩陣摞起來,就是3階張量,我們可以稱為一個立方體,具有3個顏色通道的彩色圖片就是一個這樣的立方體
把立方體摞起來,好吧這次我們真的沒有給它起別名了,就叫4階張量了,不要去試圖想像4階張量是什麼樣子,它就是個數學上的概念。
張量的階數有時候也稱為維度,或者軸,軸這個詞翻譯自英文axis。譬如一個矩陣[[1,2],[3,4]],是一個2階張量,有兩個維度或軸,沿著第0個軸(為了與python的計數方式一致,本文件維度和軸從0算起)你看到的是[1,2],[3,4]兩個向量,沿著第1個軸你看到的是[1,3],[2,4]兩個向量。
要理解“沿著某個軸”是什麼意思,不妨試著執行一下下面的程式碼:
import numpy as np
a = np.array([[1,2],[3,4]])
sum0 = np.sum(a, axis=0)
sum1 = np.sum(a, axis=1)
print a
print sum0
print sum1
關於張量,目前知道這麼多就足夠了。事實上我也就知道這麼多