一.矩陣是深度學習中一個非常非常重要得概念,下面是關於維的一些理解
張量的階數有時候也稱爲維度,或者軸,軸這個詞翻譯自英文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]],[[5,6],[7,8]]]) sum0 = np.sum(a, axis=0) sum1 = np.sum(a, axis=1) sum2 = np.sum(a ,axis=2) print(sum0) print(sum1) print(sum2)
Axis=0 表示的是所示矩陣中最外層的“軸”,“1 5 ”,“2 6”,“3 7”...
Axis=1 表示的是剔除最外層矩陣後最外層的“”軸“ ”1 3“ “2 4 ”,“5 7”,“6 8”...
Axis=2 依此類推,剔除前面所有的”軸” ”1 2“ “3 4 ”,“5 6”,“7 8”..
因此sum分別爲
[[ 6 8] [10 12]] [[ 4 6][12 14]] [[ 3 7][11 15]]
理解了這個“軸”,再談談這個“軸”的應用 ,運行下列代碼:
import numpy as np
arr2 = np.random.randn(2,3)
print(arr2)
表示從標準正態分佈中返回一個或多個樣本值。 而(2,3)正是返回值的矩陣,由此推測返回形式爲Axis=0 有2個數,Axis=1有3個數的矩陣,即
[[ 1.01679582 0.02093434 -0.48180997] [-0.13738242 0.48746367 0.22310166]]
由此,通過(x,y,z,...)的形式,我們便可以搭建出矩陣