Pytorch中的train和eval用法注意點

1.介紹

    一般情況,model.train()是在訓練的時候用到,model.eval()是在測試的時候用到

 

2.用法

  1. 如果模型中沒有類似於BN這樣的歸一化或者Dropoutmodel.train()model.eval()可以不要(建議寫一下,比較安全),並且model.train()model.eval()得到的效果是一樣
  2. 如果模型中有類似於BN這樣的歸一化或者Dropout並且程序需要邊訓練和邊測試,最好就是用model.eval()測試完之後,後面補一個model.train()其中model.train()是保證BN用每一批數據的均值和方差model.eval()是保證BN全部訓練數據的均值和方差而對於Dropoutmodel.train()是隨機取一部分網絡連接來訓練更新參數,而model.eval()是利用到了所有網絡連接(結果是取了平均)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章