如何在 TensorBoard 中显示每个节点的内存?

How to display per-node memory in TensorBoard?

在另一个问题中,有人展示了他的 TensorBoard 的屏幕截图,显示了每个节点的内存使用情况:

我在 Tensorboard 的实验中从未见过这些。我所做的就是打电话

writer = tf.summary.FileWriter('/tmp/tensorboard', sess.graph)

sess.run() 之后。是否可能需要添加一些 "summaries" 来记录内存使用情况?

您需要添加一些 RunOptions 到您的 session 运行 您的摘要中,如document(运行时统计部分)中所述。

这是允许执行此操作的代码片段:

merged = tf.summary.merge_all()
run_options = tf.RunOptions(trace_level=tf.RunOptions.FULL_TRACE)
run_metadata = tf.RunMetadata()
summary, _ = sess.run([merged, train_step],
                              feed_dict=...,
                              options=run_options,
                              run_metadata=run_metadata)
writer.add_run_metadata(run_metadata, 'step%d' % i)
writer.add_summary(summary, i)

为了在 tensorboard 中获取计时和内存信息,我这样做了

run_options = tf.RunOptions(trace_level=tf.RunOptions.FULL_TRACE)
run_metadata = tf.RunMetadata()


with tf.Session(config=tf.ConfigProto(log_device_placement=True)) as sess:
    file_writer = tf.summary.FileWriter('<path>', sess.graph)

    for (run_iteration...)
       ... = sess.run(....,
                options=run_options, 
                run_metadata=run_metadata
        )

        file_writer.add_run_metadata(
          run_metadata,"run%d" %(run_iteration,),run_iteration)

按照指令 here,您实际上可能已经编写了显示内存和时间所需的所有行,但您还需要更改 tensorboard GUI 中的 "Sessions runs" 下拉菜单默认 "None" 任何选项。否则它们是隐藏的。见图:

至少,这是我需要做的来显示它们 - 以前的答案对我有用,但我需要更改下拉菜单。