pytorch中model.train()和model.eval()用法及說明
model.train()和model.eval()用法
1.1 model.train()
model.train()的作用是啟用 Batch Normalization 和 Dropout。
如果模型中有BN層(Batch Normalization)和Dropout,需要在訓(xùn)練時(shí)添加model.train()。
model.train()是保證BN層能夠用到每一批數(shù)據(jù)的均值和方差。
對(duì)于Dropout,model.train()是隨機(jī)取一部分網(wǎng)絡(luò)連接來訓(xùn)練更新參數(shù)。
1.2 model.eval()
model.eval()的作用是不啟用 Batch Normalization 和 Dropout。
如果模型中有BN層(Batch Normalization)和Dropout,在測(cè)試時(shí)添加model.eval()。
model.eval()是保證BN層能夠用全部訓(xùn)練數(shù)據(jù)的均值和方差,即測(cè)試過程中要保證BN層的均值和方差不變。
對(duì)于Dropout,model.eval()是利用到了所有網(wǎng)絡(luò)連接,即不進(jìn)行隨機(jī)舍棄神經(jīng)元。
訓(xùn)練完train樣本后,生成的模型model要用來測(cè)試樣本。
在model(test)之前,需要加上model.eval(),否則的話,有輸入數(shù)據(jù),即使不訓(xùn)練,它也會(huì)改變權(quán)值。這是model中含有BN層和Dropout所帶來的的性質(zhì)。
在做one classification的時(shí)候,訓(xùn)練集和測(cè)試集的樣本分布是不一樣的,尤其需要注意這一點(diǎn)。
1.3 分析原因
使用PyTorch進(jìn)行訓(xùn)練和測(cè)試時(shí)一定注意要把實(shí)例化的model指定train/eval。
model.eval()時(shí),框架會(huì)自動(dòng)把BN和Dropout固定住,不會(huì)取平均,而是用訓(xùn)練好的值,
不然的話,一旦test的batch_size過小,很容易就會(huì)被BN層導(dǎo)致生成圖片顏色失真極大?。。。。?!
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python實(shí)現(xiàn)簡(jiǎn)單猜單詞游戲
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)簡(jiǎn)單猜單詞游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-12-12
Python 實(shí)現(xiàn)遙感影像波段組合的示例代碼
這篇文章主要介紹了Python 實(shí)現(xiàn)遙感影像波段組合的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
在Python中輸入一個(gè)以空格為間隔的數(shù)組方法
今天小編就為大家分享一篇在Python中輸入一個(gè)以空格為間隔的數(shù)組方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-11-11
Python實(shí)現(xiàn)文件批量改名功能完整實(shí)例代碼
通過Python實(shí)現(xiàn)文件批量重命名,可以在數(shù)據(jù)整理、文件歸檔、項(xiàng)目管理等方面大大提高效率,這篇文章主要給大家介紹了關(guān)于Python實(shí)現(xiàn)文件批量改名功能的相關(guān)資料,需要的朋友可以參考下2025-05-05
Python?庫?PySimpleGUI?制作自動(dòng)化辦公小軟件的方法
Python?在運(yùn)維和辦公自動(dòng)化中扮演著重要的角色,PySimpleGUI?是一款很棒的自動(dòng)化輔助模塊,讓你更輕松的實(shí)現(xiàn)日常任務(wù)的自動(dòng)化,下面通過本文給大家介紹下Python?庫?PySimpleGUI?制作自動(dòng)化辦公小軟件的過程,一起看看吧2021-12-12
Python空間數(shù)據(jù)處理之GDAL讀寫遙感圖像
這篇文章主要介紹了Python空間數(shù)據(jù)處理之GDAL讀寫遙感圖像,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
Python報(bào)錯(cuò):PermissionError:?[Errno?13]?Permission?denied的解
這篇文章主要給大家介紹了關(guān)于Python報(bào)錯(cuò):PermissionError:?[Errno?13]?Permission?denied的解決辦法,文中給出了詳細(xì)的解決辦法,需要的朋友可以參考下2022-02-02
Python私有屬性私有方法應(yīng)用實(shí)例解析
這篇文章主要介紹了Python私有屬性私有方法應(yīng)用場(chǎng)景解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09

