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
によって視覚化することにより実行することができ
、私は」 pprof
でプロフィールを読むときにシンボルを取得するのがどれほど簡単かわかりません。構築されたファイルswake .so
にポイントすることができます。
それを試してみて、それがあなたのために働くかどうかお知らせください!
TFで各作業に費やされた時間を確認したい場合は、runtime statisticsを使用してテンソルボードで行うことができます。さらに
:ちょうどあなたがtensorboardでそれを見ることができ、それを印刷するよりも
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)
よりよい:あなたは、この(上記のリンクで完全な例を確認してください)のような何かをする必要がありますノードをクリックすると、正確な合計メモリ、 計算時間、およびテンソル出力サイズが表示されます。
また、テンソルフローはdebuggerです。ここでそれを使用する方法のチュートリアルです。
現在の(2017年後半、TensorFlow 1.4)の取得方法タイムラインは[ProfilerHook](https://www.tensorflow.org/api_docs/python/tf/train/ProfilerHook)を使用しています。これは、tf.RunOptionsが利用できないtf.EstimatorのMonitoredSessionsで動作します。 – Urs
https://github.com/tensorflow/tensorflow/tree/master/tensorflow/core/profiler
主な特徴:
測定モデルパラメータ、浮動小数点演算、テンソル形。
プロファイル実行時間、要求されたメモリサイズ、デバイス配置。
チェックポイントテンソルの形状とその値を検査します。
opsを選択的にグループ化、フィルタリング、アカウント作成、オーダーします。
質問に「* TensorFlowネットワークの各ノードの時間コストを計算する方法はありますか?」*ツールを使用して時間コストを計算する方法を示すことで答えを改善できますか? – Pang
リンクが見つからない –
可能な複製:http://stackoverflow.com/questions/34293714/tensorflow-can-i-measure-the-execution-time-of-individual-operations – user3559888