1. 程式人生 > >【DL--03】深度學習基本概念—張量

【DL--03】深度學習基本概念—張量

張量

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
關於張量,目前知道這麼多就足夠了。事實上我也就知道這麼多