今天學(xué)搭感知機(jī)的時(shí)候有一個(gè)函數(shù)newaxis,是用來給神經(jīng)元層增加一個(gè)啞節(jié)點(diǎn)。
第一層成為輸入層(Input Layer),最后一層稱為輸出層(Output Layer),中間一層成為隱藏層(Hidden Layers)。我們?yōu)檩斎雽雍碗[藏層增加一個(gè)偏倚單位(bias unit),就是啞結(jié)點(diǎn),方便計(jì)算。
numpy.newaxis從字面上是插入新的維度的意思
In [1]: np.linspace(1, 10, 10)
Out[1]: array([ 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.])
In [2]: np.linspace(1, 10, 10)[np.newaxis,:]
Out[2]: array([[ 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.]])
In [3]: np.linspace(1, 10, 10)[:,np.newaxis]
Out[3]:
array([[ 1.],
[ 2.],
[ 3.],
[ 4.],
[ 5.],
[ 6.],
[ 7.],
[ 8.],
[ 9.],
[ 10.]])
In [4]: np.linspace(1, 10, 10).shape
Out[4]: (10,)
In [5]: np.linspace(1, 10, 10)[np.newaxis,:].shape
Out[5]: (1, 10)
In [6]: np.linspace(1, 10, 10)[:,np.newaxis].shape
Out[6]: (10, 1)
可以看出np.newaxis分別是在行或列上增加維度,原來是(10,)的一維數(shù)組,在行上增加維度變成(1, 10)的二維數(shù)組,在列上增加維度變?yōu)?10,1)的二維數(shù)組。
ちょっと待って、這個(gè)二維數(shù)組是什么意思啊,看起來,也不像是二維的矩陣的意思。之前在word2vec里習(xí)慣了一個(gè)向量[1,0,...,0]的長度就是它的維數(shù)啊,那么numpy里的二維數(shù)組究竟是個(gè)啥?
NumPy 數(shù)組的維數(shù)稱為秩(rank),一維數(shù)組的秩為 1,二維數(shù)組的秩為 2,以此類推。
在 NumPy中,每一個(gè)線性的數(shù)組稱為是一個(gè)軸(axis),也就是維度(dimensions)。比如說,二維數(shù)組相當(dāng)于是兩個(gè)一維數(shù)組,其中第一個(gè)一維數(shù)組中每個(gè)元素又是一個(gè)一維數(shù)組。所以一維數(shù)組就是 NumPy 中的軸(axis),第一個(gè)軸相當(dāng)于是底層數(shù)組,第二個(gè)軸是底層數(shù)組里的數(shù)組。而軸的數(shù)量——秩,就是數(shù)組的維數(shù)。
很多時(shí)候可以聲明 axis。axis=0,表示沿著第 0 軸進(jìn)行操作,即對(duì)每一列進(jìn)行操作;axis=1,表示沿著第1軸進(jìn)行操作,即對(duì)每一行進(jìn)行操作。
秩,即軸的數(shù)量或維度的數(shù)量
階
在TensorFlow系統(tǒng)中,張量的維數(shù)來被描述為階.但是張量的階和矩陣的階并不是同一個(gè)概念.
矩陣的階表示矩陣大小,比如n階矩陣就是n*n的矩陣;而張量的階其實(shí)是維數(shù)的意思.
張量的階(有時(shí)是關(guān)于如順序或度數(shù)或者是n維)是張量維數(shù)的一個(gè)數(shù)量描述.比如,下面的張量(使用Python中l(wèi)ist定義的)就是2階.
t = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
你可以認(rèn)為一個(gè)二階張量就是我們平常所說的矩陣,一階張量可以認(rèn)為是一個(gè)向量.對(duì)于一個(gè)二階張量你可以用語句t[i, j]來訪問其中的任何元素.而對(duì)于三階張量你可以用't[i, j, k]'來訪問其中的任何元素.
- 例1:
t = [[1, 2, 3], [4, 5, 6], ]就是維的數(shù)組,是2階張量。
- 例2:
a2 = np.ones((2,3,4), dtype='int16') # 創(chuàng)建2*3*4全1三維數(shù)組 輸出: array([[[1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]], [[1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]]], dtype=int16)
例2是全1三維數(shù)組,也就是三階張量。在NumPy 數(shù)組沒有階的說法,但意思是一樣的。
階就相當(dāng)于ndarray中的秩,即軸的數(shù)量或維度的數(shù)量。
REF:
newaxis
np.newaxis
https://cloud.tencent.com/developer/article/1406407
https://www.cnblogs.com/onemorepoint/p/8110523.htmlNumPy 數(shù)組屬性 和tensor
python中的矩陣、多維數(shù)組----numpy
https://www.runoob.com/numpy/numpy-array-attributes.html
張量的階、形狀、數(shù)據(jù)類型線代小復(fù)習(xí)
在數(shù)學(xué)中,矩陣的維數(shù)就是矩陣的秩
把矩陣的秩弄明白了就明白矩陣的維數(shù)是什么了
矩陣的秩就是矩陣中非零子式的最高階數(shù)
簡單來說,就是把矩陣進(jìn)行初等行變換之后有非零數(shù)的行數(shù)
例如,對(duì)一個(gè)3*5矩陣進(jìn)行初等行變換,
最后變換成形如:
┌ 1 1 1 0 3 ┐
│ 0 0 2 3 0 │
└ 0 0 0 0 0 ┘
這樣的階梯型矩陣后,數(shù)數(shù)其中非零行的行數(shù)就能知道矩陣的秩有多少了
顯然,其中第一、二行為非零行,一共有兩行,所以秩r=2,也就是原矩陣維數(shù)為2