天天看點

Pytorch(1) pytorch中的BN層的注意事項

最近修改一個代碼的時候,當使用網絡進行推理的時候,發現每次更改測試集的batch size大小竟然會導緻推理結果不同,甚至産生錯誤結果,後來發現在網絡中定義了BN層,BN層在訓練過程中,會将一個Batch的中的資料轉變成正太分布,在推理過程中使用訓練過程中的參數對資料進行處理,然而網絡并不知道你是在訓練還是測試階段,是以,需要手動的加上,需要在測試和訓練階段使用如下函數。

model.train() or model.eval()      

BN類的定義見pytorch中文參考文檔

​​https://pytorch-cn.readthedocs.io/zh/latest/package_references/torch-nn/​​

------------------------------------------------------------------------------------------------------

作者:張叫張大衛

Pytorch(1) pytorch中的BN層的注意事項

繼續閱讀