在培訓深度學習網絡時(例如使用TensorFlow或類似方法),通常需要對固定樣本集進行訓練,並希望通過較長時間的訓練可以獲得更好的結果。但是,這假定單調遞增的準確性,如下所示,顯然不是真實的。如下所示,停在「2.0」的時候會有10個百分點更高的準確性。有沒有通用的程序來選擇更好的模型並保存它們。 換句話說,一個峯值檢測程序。也許,在整個訓練過程中跟蹤測試精度,並在精度高於以前的值時節省模型(檢查點?)。
問題:Tensorflow:從培訓課程中選擇最佳模型
- 什麼是挑選最佳模型的最佳做法?
- TF有沒有辦法呢?
- 根據優化器最終會找到更好的解決方案的理論,繼續培訓更長時間(也許更長)是否有優點?
- 檢查點是最佳的保存方法嗎?
編輯:由於從@Wontonimo的建議,改善的準確度的結果如下所示。以下改變:
- 減少在從0.003亞當優化學習率至0.001
- 從完整的數據集添加兩個附加漏失層(概率= 0.5)
- 洗牌選擇訓練幀(而不是序列選擇)
- 將訓練迭代次數增加50%。
有了這些改變,似乎繼續進一步培訓將是有利的。並可能添加更多正則化。
謝謝你的評論。在我們的例子中,我們使用了Adam優化器,我相信它會自動實現學習速率衰減。但顯然這還不夠。關於正規化,我們正在使用一個輟學層,但您的意見表明第二個不會是一件壞事。 – Hephaestus
但是,原始問題似乎仍然有用。我應該推斷一個設計良好的訓練系統是單調的,不需要峯值檢測? – Hephaestus
我會說是的,一個設計良好的系統**趨向於單調行爲。但是,無需在不必要的工作上刻錄CPU,因此檢測到高原的某些內容對退出和排列下一份工作很有用。 – Wontonimo