當前位置:編程學習大全網 - 編程軟體 - 多線程預處理數據提高神經網絡訓練速度

多線程預處理數據提高神經網絡訓練速度

python3.6.3、tensorflow1.10.0

英特爾@ aidevcloud:英特爾至強金牌6128處理器集群

http://download . tensor flow . org/example _ images/flower _ phtos . tgz

首先,需要處理圖像數據並將其轉換為TFRecord數據。讀取TFRecord數據文件時,先獲取訓練數據的文件列表,然後維護壹個輸入文件隊列,讓不同線程的文件讀取函數都可以享受這個文件隊列。圖像預處理過程可以在多個線程中並行運行,並且可以被安排成批量提供給神經網絡。本文采用slim定義的LeNet5神經網絡進行訓練,訓練輪數為500。這裏我們不關心訓練好的神經網絡的正確性,只關心在訓練過程中增加預處理線程數對提高訓練速度的作用。我們分別使用單線程和三線程進行預處理,並比較訓練時間。

本文分別采用壹個線程和三個線程進行預處理,比較了500次訓練所花費的時間。兩種方法都是通過閱讀器讀取數據,運行結果如下:

從結果可以看出,多線程可以有效減少神經網絡訓練的瓶頸時間,但對復雜神經網絡應該影響不大,因為復雜神經網絡的時間主要消耗在訓練過程而不是數據預處理過程,但對於大數據的問題,多線程是壹種可行的優化方法。

  • 上一篇:0基礎如何學it 小白怎麽學it?
  • 下一篇:Spring有幾種事務管理,Spring事務管理接口是什麽
  • copyright 2024編程學習大全網