[pytorch筆記]net.eval和with torch_no_grad

在使用net.eval( )和with torch_no_grad( )時,發現網上有的例子只使用了一個,有些兩個都用了,我之前也認爲這兩個的作用一樣,後來發現最好是兩個都用。

with torch_no_grad( ):數據不需要梯度計算,即不會進行反相傳播;

net.eval( ):不加的話即使沒有訓練輸入數據也會改變權值,因爲這是禁止forward過程對參數造成的影響;例如禁止dropout或者因爲測試集和訓練集的樣本分佈不一樣,會有batch normalization 所帶來的影響。

 

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