神经网络基本原理简明教程-0-Python-Numpy库的点滴
Python中的Numpy的基本知識
Copyright ? Microsoft Corporation. All rights reserved.
適用于License版權(quán)許可
更多微軟人工智能學(xué)習(xí)資源,請見微軟人工智能教育與學(xué)習(xí)共建社區(qū)
以下列出一些關(guān)于Numpy矩陣運(yùn)算的基本知識和坑點。
首先需要在命令行中安裝Numpy庫和繪圖庫(可選):
pip install numpy pip install matplotlib然后在python文件的第一行,加入對它們的引用:
import numpy as np import matplotlib.pyplot as plt- 基本矩陣運(yùn)算
結(jié)果:
a: [[1 2 3][4 5 6]] b: [[1 1 1][1 1 1]] a*b: [[1 2 3][4 5 6]] np.multiply(a,b): [[1 2 3][4 5 6]] np.dot(a,b.T) [[ 6 6][15 15]]可以看到,a*b和np.multiply(a,b)的作用是一樣的,都是點乘,即兩個矩陣中相對應(yīng)位置的數(shù)值相乘,element wise operation。它的輸出與相乘矩陣的尺寸一致。
而np.dot是標(biāo)準(zhǔn)的矩陣運(yùn)算,。如果輸入是(3x2)x(2x4),則輸出為3x4。要求a的列數(shù)和b的行數(shù)一樣才能相乘,所以我們把b轉(zhuǎn)置了一下,b本身是2行3列,b.T就是3行2列,a是2行3列,結(jié)果是2行2列。所以,一定不要被np.dot這個函數(shù)名字迷惑了,它不是點乘的意思。
a=np.array([1,2,3]) b=np.array([1,1,1]).reshape(1,3) print(a.shape) print(a*b) a=a.reshape(3,1) print(a.shape) print(a*b)結(jié)果:
(3,) [[1 2 3]] (3, 1) [[1 1 1][2 2 2][3 3 3]]第一次定義a時,是一個1維列向量,shape=(3,),用a*b得到的結(jié)果是shape=(1,3)的矩陣[[1 2 3]]。
后來把a(bǔ).reshape(3,1)3行1列的二維矩陣,雖然表面看起來形式?jīng)]變,但是在與b點乘后,得到了一個(3,3)的矩陣。
為了避免一些錯誤,最好在每次矩陣運(yùn)算前,都把兩個矩陣reshape成一個二維矩陣(或多維矩陣)。
神經(jīng)網(wǎng)絡(luò)中的計算過程
- w=(3x2)
w=np.array([1,2,3,4,5,6]).reshape(3,2)
- b=(3x1)
b=np.array([1,2,3]).reshape(3,1)
- x=(2x4)(2個特征值,4個樣本)
x=np.array([2,3,4,5,6,7,8,9]).reshape(2,4)
- c=np.dot(w,x)
- z=c+b = np.dot(w,x) + b
注意:這里加法有對b的列廣播(自動擴(kuò)充b為4x3,通過復(fù)制b的值為3列)
- y=np.array([6,5,4,3]).reshape(1,4)
4個樣本的標(biāo)簽值
- dz = z - y
注意:這里減法有對z的廣播(通過復(fù)制y的值為3行)
- db = dz.sum(axis=1,keepdims=True)/4
4是樣本數(shù)。axis=1, 按列相加,即一行內(nèi)的所有列元素相加。除以4是廣播。
- dw=np.dot(dz,x.T)/4
x.T是x的轉(zhuǎn)置。除以4是廣播。 dz=3x4, x.T=4x2, 結(jié)果是3x2,正好是w的shape。
- w = w - 0.1*dw
- b = b - 0.1*db
點擊這里學(xué)習(xí)更多神經(jīng)網(wǎng)絡(luò)基本課程
點擊這里提交問題與建議
聯(lián)系我們: msraeduhub@microsoft.com
學(xué)習(xí)了這么多,還沒過癮怎么辦?歡迎加入“微軟 AI 應(yīng)用開發(fā)實戰(zhàn)交流群”,跟大家一起暢談AI,答疑解惑。掃描下方二維碼,回復(fù)“申請入群”,即刻邀請你入群。
總結(jié)
以上是生活随笔為你收集整理的神经网络基本原理简明教程-0-Python-Numpy库的点滴的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 两千块钱带来的 quot;希望quot;
- 下一篇: 软件工程教学博客 (备份)