模型訓練:資料預處理和預載入

hzcya911發表於2020-10-27

相對於模型的訓練而言,有時候資料的預處理和載入反而是一件更為耗時的工作。

為了優化模型的訓練流程,有必要對訓練的全流程做一個時間上的評測(Profiling),以弄清每一步所耗費的時間,並發現效能上的瓶頸。這一步可以使用 TensorBoard 的評測工具(參考 檢視 Graph 和 Profile 資訊 ),也可以簡單地使用 Python 的 time 庫在終端輸出每一步所需時間。評測完成後,如果發現瓶頸在資料端(例如每一步訓練只花費 1 秒,而處理資料就花了 5 秒),我們即需要思考資料端的優化方式。

  • 檢視 Graph 和 Profile 資訊

一般而言,可以通過事先預處理好需要傳入模型訓練的資料來提高效能,也可以在模型訓練的時候並行進行資料的讀取和處理。可以參考前文的 使用 tf.data 的並行化策略提高訓練流程效率 以瞭解詳情。

相關文章