為什么需要激活函數 為什么需要歸一化 pytorch BatchNorm2d python內置函數:enumerate用法總結
待辦
激活函數的用途(為什么需要激活函數)?
如果不用激勵函數(其實相當於激勵函數是f(x) = x),在這種情況下你每一層節點的輸入都是上層輸出的線性函數,很容易驗證,無論你神經網絡有多少層,輸出都是輸入的線性組合,與沒有隱藏層效果相當,這種情況就是最原始的感知機(Perceptron)了,那么網絡的逼近能力就相當有限。正因為上面的原因,我們決定引入非線性函數作為激勵函數,這樣深層神經網絡表達能力就更加強大(不再是輸入的線性組合,而是幾乎可以逼近任意函數)。
激活函數實際就是讓整個網絡仿真出來的模型逼近任何函數,
使用sigmod激活函數,誤差會通過激活函數傳遞,所以要對激活函數求導,如果對於x值的激活函數導數恆為0,那么誤差就不能傳遞。
所以需要歸一化把x值的范圍穩定在激活函數導數不為0的范圍內才行,才能更好的進行誤差傳遞權值更新。
torch.nn.init.kaiming_normal_(w2)
python內置函數:enumerate用法總結
https://blog.csdn.net/IAMoldpan/article/details/78487809
**歸一化batch normalization操作講解pytorch **
https://www.cnblogs.com/yongjieShi/p/9332655.html
m = nn.BatchNorm2d(3) # bn設置的參數實際上是channel的參數
對於所有batch中的同一個channel的元素進行求均值與方差