[個人總結]pytorch中model.eval()會對哪些函數有影響?


來源於知乎:pytorch中model.eval()會對哪些函數有影響? - 藺笑天的回答 - 知乎
https://www.zhihu.com/question/363144860/answer/951669576
內容
藺笑天
37 人贊同了該回答
model的eval方法主要是針對某些在train和predict兩個階段會有不同參數的層。比如Dropout層和BN層

Dropout在train時隨機選擇神經元而predict要使用全部神經元並且要乘一個補償系數

BN在train時每個batch做了不同的歸一化因此也對應了不同的參數,相應predict時實際用的參數是每個batch下參數的移動平均。

torch為了方便大家,設計這個eval方法就是讓我們可以不用手動去針對這些層做predict階段的處理(也可以叫evaluation階段,所以這個方法名才是eval)

這也就是說,如果模型中用了dropout或bn,那么predict時必須使用eval 否則結果是沒有參考價值的,不存在選擇的余地。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM