有沒有辦法計算TensorFlow網絡中每個節點的時間成本?
我發現很難找到性能瓶頸。如何配置TensorFlow網絡?
編輯:Timeline
分析器真的很棒(https://stackoverflow.com/a/37774470/3632556)。
有沒有辦法計算TensorFlow網絡中每個節點的時間成本?
我發現很難找到性能瓶頸。如何配置TensorFlow網絡?
編輯:Timeline
分析器真的很棒(https://stackoverflow.com/a/37774470/3632556)。
現在最好的外部方法是用CPU/GPU分析器進行編譯,但這必須通過更改BUILD
和tensorflow.bzl
文件中的選項(不知道在哪裏)手動完成。
然後,您可以獲取的個人資料有關哪些功能是花費大部分時間等,這是給你的,你可以自TensorFlow的代碼是通過swig
聯用gperftools和pprof
可視化運行,我m不是100%確定在通過pprof
閱讀個人資料時獲得符號的容易程度。您可以將其指向構建的swig .so
文件。
試一試,讓我們知道它是否適合你!
如果要查找在TF上每次操作花費了多少時間,可以使用runtime statistics在張量板中完成此操作。你需要做這樣的事情(請在上述環節的完整的例子):
run_options = tf.RunOptions(trace_level=tf.RunOptions.FULL_TRACE)
run_metadata = tf.RunMetadata()
sess.run(<values_you_want_to_execute>, options=run_options, run_metadata=run_metadata)
your_writer.add_run_metadata(run_metadata, 'step%d' % i)
不僅僅是打印出來你可以更好的在tensorboard看到它:
另外,單擊一個節點將顯示確切的總內存,計算時間和張量輸出大小。
現在tensorflow有debugger。這裏是如何使用它的教程。
當前(2017年末,TensorFlow 1.4)獲取方式時間軸使用[ProfilerHook](https://www.tensorflow.org/api_docs/python/tf/train/ProfilerHook)。這適用於tf.Estimator中的MonitoredSessions,其中tf.RunOptions不可用。 – Urs
https://github.com/tensorflow/tensorflow/tree/master/tensorflow/core/profiler
主要特點:
測量模型參數,浮點運算,張量的形狀。
剖析操作執行時間,請求的內存大小和設備放置。
檢查檢查點張量的形狀及其值。
選擇性地分組,過濾器,帳戶和訂單操作。
問題說:*「有沒有一種方法可以計算TensorFlow網絡中每個節點的時間成本?」*您可以通過展示如何使用該工具「計算時間成本」來改善答案嗎? – Pang
太糟糕了,找不到鏈接 –
可能的重複:http://stackoverflow.com/questions/34293714/tensorflow-can-i-measure-the-execution-time-of-individual-operations – user3559888