2017-06-26 137 views
1

https://www.tensorflow.org/performance/performance_guide#use_nchw_image_data_format我是否應該爲設置NCHW進行培訓和NHWC進行測試?

我讀過cuDNN與NCHW更好的性能(在第二軸的特徵圖),但NHWC是CPU(去年軸特徵圖)更好。

從TensorFlow 1.2開始,我想知道是否仍然建議手動支持這兩種格式,或者如果期望tf.train,tf.layers等可以根據需要自動處理尺寸重新排序(我相信它們應該!)。手動支持這兩種數據格式會感覺很難看,而且像一個漏洞抽象的實現細節,我作爲TensorFlow用戶不應該知道,因此我想避免它。

此外,使用NCHW而不是NHWC進行GPU培訓可以獲得多少性能提升?

回答

0

知道在NHWC模式下哪裏發現CPU執行更快會很有趣。默認情況下,DNN的英特爾MKL庫使用NCHW格式,據我所知,還使用另一個opaque, SIMD-friendly format internally。所以你去NCHW,至少你不必保持兩個版本。

我不知道你可以期待什麼樣的收益順序。由於CuDNN本身使用NCHW順序,因此我認爲tensorflow不會在每一層來回轉換格式,而只是在需要時才轉換回NHWC(例如,當您明確要求張量值時)。所以除非你在標準的CuDNN操作之外做了很多奇特的事情,否則我不會感到驚訝。但這只是一個沒有教養的猜測。

+0

感謝您的回答。我發現在我原來的帖子中,作爲NHWC的CPU執行速度更快的信息:https://www.tensorflow.org/performance/performance_guide#use_nchw_image_data_format –

+0

我明白了。聽起來更像是默認存儲器順序的歷史理由,而不是最新的觀察,特別是現在他們越來越依賴英特爾MKL來實現其CPU。 – user1735003

相關問題