Pytorch中關(guān)于BatchNorm2d的參數(shù)解釋
BatchNorm2d中的track_running_stats參數(shù)
如果BatchNorm2d的參數(shù)val,track_running_stats設(shè)置False,那么加載預(yù)訓(xùn)練后每次模型測(cè)試測(cè)試集的結(jié)果時(shí)都不一樣;
track_running_stats設(shè)置為True時(shí),每次得到的結(jié)果都一樣。
running_mean和running_var參數(shù)
running_mean和running_var參數(shù)是根據(jù)輸入的batch的統(tǒng)計(jì)特性計(jì)算的,嚴(yán)格來說不算是“學(xué)習(xí)”到的參數(shù),不過對(duì)于整個(gè)計(jì)算是很重要的。
torch.nn.BatchNorm1d(num_features, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
BatchNorm2d參數(shù)講解
一般來說pytorch中的模型都是繼承nn.Module類的,都有一個(gè)屬性trainning指定是否是訓(xùn)練狀態(tài),訓(xùn)練狀態(tài)與否將會(huì)影響到某些層的參數(shù)是否是固定的,比如BN層或者Dropout層。通常用model.train()指定當(dāng)前模型model為訓(xùn)練狀態(tài),model.eval()指定當(dāng)前模型為測(cè)試狀態(tài)。
同時(shí),BN的API中有幾個(gè)參數(shù)需要比較關(guān)心的,一個(gè)是affine指定是否需要仿射,還有個(gè)是track_running_stats指定是否跟蹤當(dāng)前batch的統(tǒng)計(jì)特性。容易出現(xiàn)問題也正好是這三個(gè)參數(shù):trainning,affine,track_running_stats。
其中的affine指定是否需要仿射,也就是是否需要上面算式的第四個(gè),如果affine=False則γ=1,β=0 \gamma=1,\beta=0γ=1,β=0,并且不能學(xué)習(xí)被更新。一般都會(huì)設(shè)置成affine=True。
trainning和track_running_stats,track_running_stats=True表示跟蹤整個(gè)訓(xùn)練過程中的batch的統(tǒng)計(jì)特性,得到方差和均值,而不只是僅僅依賴與當(dāng)前輸入的batch的統(tǒng)計(jì)特性。相反的,如果track_running_stats=False那么就只是計(jì)算當(dāng)前輸入的batch的統(tǒng)計(jì)特性中的均值和方差了。當(dāng)在推理階段的時(shí)候,如果track_running_stats=False,此時(shí)如果batch_size比較小,那么其統(tǒng)計(jì)特性就會(huì)和全局統(tǒng)計(jì)特性有著較大偏差,可能導(dǎo)致糟糕的效果。


總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python爬蟲開發(fā)之Request模塊從安裝到詳細(xì)使用方法與實(shí)例全解
這篇文章主要介紹了python爬蟲開發(fā)之Request模塊從安裝到詳細(xì)使用方法與實(shí)例全解,需要的朋友可以參考下2020-03-03
python基于moviepy實(shí)現(xiàn)音視頻剪輯
為了方便學(xué)習(xí)和復(fù)習(xí),需要把一些長(zhǎng)音視頻剪成一些小片段。本文介紹如何用Python實(shí)現(xiàn),把音視頻中的某一些片段剪出來。2021-06-06
Python如何爬取微信公眾號(hào)文章和評(píng)論(基于 Fiddler 抓包分析)
這篇文章主要介紹了Python如何爬取微信公眾號(hào)文章和評(píng)論(基于 Fiddler 抓包分析),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-06-06
Python實(shí)現(xiàn)注冊(cè)、登錄小程序功能
本文通過實(shí)例代碼給大家介紹了Python實(shí)現(xiàn)登錄、注冊(cè)小程序功能,代碼簡(jiǎn)單易懂非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2018-09-09
Python趣味挑戰(zhàn)之用pygame實(shí)現(xiàn)簡(jiǎn)單的金幣旋轉(zhuǎn)效果
今天教大家怎么用pygame實(shí)現(xiàn)簡(jiǎn)單的金幣旋轉(zhuǎn)效果,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們很有幫助,需要的朋友可以參考下2021-05-05
對(duì)PyQt5中樹結(jié)構(gòu)的實(shí)現(xiàn)方法詳解
今天小編就為大家分享一篇對(duì)PyQt5中樹結(jié)構(gòu)的實(shí)現(xiàn)方法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-06-06
Python圖像處理模塊ndimage用法實(shí)例分析
這篇文章主要介紹了Python圖像處理模塊ndimage用法,結(jié)合實(shí)例形式分析了Python圖像處理模塊ndimage基本功能及常見的圖形運(yùn)算操作實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-09-09
python加密解密庫(kù)cryptography使用openSSL生成的密匙加密解密
這篇文章主要介紹了python加密解密庫(kù)cryptography使用openSSL生成的密匙加密解密,需要的朋友可以參考下2020-02-02

