測試結果比訓練結果差很多

測試結果比訓練結果差很多

在深度學習中,我們訓練完一個模型,利用起測試的時候,發現效果下降了好多。這裏面有一部分原因可能是模型本身設計不好導致的過擬合。但是當你用的網絡沒問題,那還有可能是哪裏的問題了。

我也是經過了一段時間排查,發現忘記寫net.eval()了,這個非常重要。我們可以看一下其源碼裏面如何描述的:

This has any effect only on certain modules. See documentations of
particular modules for details of their behaviors in training/evaluation
mode, if they are affected, e.g. :class:`Dropout`, :class:`BatchNorm`,
etc.

當你的網絡裏面有dropout或者批歸一化,一定要記着加入.eval(),這樣纔會使得測試的結果是正確的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章