10

要約でグラフを生成するための次のコードを使用して、テンソルボードでのデバイスの配置を調査したいと思います

# Build the summary operation based on the TF collection of Summaries.
summary_op = tf.merge_all_summaries()
saver = tf.train.Saver(tf.all_variables())
summary_writer = tf.train.SummaryWriter(log_directory, graph_def=sess.graph_def)

これは、グラフとグラフで定義された要約を表示するために機能します。しかし、テンソルボードで「デバイスの配置」を選択すると、すべてのノードが「不明なデバイス」に割り当てられます。他の方法でデバイスの配置をダンプする必要がありますか?

4

1 に答える 1

11

TensorBoard グラフ ビジュアライザは、プログラムで作成した明示的なデバイス割り当て (つまり、with tf.Device("..."):ブロックを使用して作成したもの) のみを確認します。

これは、TensorFlow グラフのノードが複数の段階でデバイスに割り当てられるためです。クライアント (Python プログラムなど) の最初の段階では、デバイスを各ノードに明示的に (オプションで) 割り当てることができます。この段階の出力が TensorBoard ログに書き込まれます。後の配置ステージは TensorFlow バックエンド内で実行され、すべてのノードをデバイスに割り当てます。

後の配置段階の結果を分析したいと思われます。現在、TensorBoard ではこれに対するサポートはありませんが、tf.Session次のように を作成することで、いくつかの情報を抽出できます。

sess = tf.Session(config=tf.ConfigProto(
    log_device_placement=True))

…そして、デバイス配置の決定は stderr に記録されます。

于 2015-11-27T16:58:22.190 に答える