pytorch掉坑記錄:model.eval的作用說明
訓(xùn)練完train_datasets之后,model要來測試樣本了。在model(test_datasets)之前,需要加上model.eval(). 否則的話,有輸入數(shù)據(jù),即使不訓(xùn)練,它也會改變權(quán)值。
這是model中含有batch normalization層所帶來的的性質(zhì)。
在做one classification的時候,訓(xùn)練集和測試集的樣本分布是不一樣的,尤其需要注意這一點(diǎn)。
補(bǔ)充知識:pytorch測試的時候?yàn)楹我由蟤odel.eval()
Do need to use model.eval() when I test?
Sure, Dropout works as a regularization for preventing overfitting during training.
It randomly zeros the elements of inputs in Dropout layer on forward call.
It should be disabled during testing since you may want to use full model (no element is masked)
使用PyTorch進(jìn)行訓(xùn)練和測試時一定注意要把實(shí)例化的model指定train/eval,eval()時,框架會自動把BN和DropOut固定住,不會取平均,而是用訓(xùn)練好的值,不然的話,一旦test的batch_size過小,很容易就會被BN層導(dǎo)致生成圖片顏色失真極大!?。。。?!
以上這篇pytorch掉坑記錄:model.eval的作用說明就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python fire模塊(最簡化命令行生成工具)的使用教程詳解
Python Fire是谷歌開源的一個第三方庫,用于從任何Python對象自動生成命令行接口(CLI),可用于如快速拓展成命令行等形式。本文將通過實(shí)例為大家詳細(xì)說說fire模塊的使用,感興趣的可以了解一下2022-10-10Django?報(bào)錯:Broken?pipe?from?('127.0.0.1',?5892
這篇文章主要介紹了Django?報(bào)錯:Broken?pipe?from?('127.0.0.1',?58924)的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-09-09Python爬蟲實(shí)戰(zhàn)演練之采集糗事百科段子數(shù)據(jù)
讀萬卷書不如行萬里路,只學(xué)書上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用Python采集糗事百科段子的數(shù)據(jù),大家可以在過程中查缺補(bǔ)漏,提升水平2021-10-10