pytorch1.1 半精度訓練 Adam RMSprop 優化器 Nan 問題

文章轉載於https://blog.csdn.net/one_six_mix/article/details/86367086
因爲遇到了同樣的問題,所以記錄一下
在縮小模型,採用半精度模型,參數,輸入數據時,發現adam算法有問題,而sgd沒有問題。採用方法如下鏈接:
這個老哥有相同問題https://www.cnblogs.com/yanxingang/p/10148712.html

以下爲轉載:

2019/5/5更新
pytorch 1.1 版本相比1.0版本,對 half 訓練優化了許多,nan發生的情況少了很多,現在應該可以日常使用 half 訓練了
使用Adam優化器時,加入參數eps=1e-4

optimizer1 = optim.Adam(model.parameters(), lr=1e-3, eps=1e-4)

pytorch 半精度浮點數表示的範圍比單精度的少很多

1.使網絡輸入 值域縮放到 [-1, 1] 或 [0, 1]
2.定義Adam優化器時,加入參數eps=1e-3
3.定義RMSprop優化器時,加入參數eps=1e-2
4.降低學習率

optimizer1 = optim.Adam(model.parameters(), lr=0.001, eps=1e-3)
optimizer2 = optim.RMSprop(model.parameters(), lr=0.001, eps=1e-2)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章