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

Tensorflow 如何在TensorBoard中显示每个节点的内存?,tensorflow,tensorboard,Tensorflow,Tensorboard,在另一个问题中,有人展示了他的TensorBoard的屏幕截图,显示了每个节点的内存使用情况: 在我用张力板做的实验中,我从来没有见过这些。我所做的就是打电话 writer = tf.summary.FileWriter('/tmp/tensorboard', sess.graph) 在sess.run()之后。是否需要添加一些“摘要”来记录内存使用情况?您需要向会话添加一些运行选项,如本节(运行时统计部分)所述 下面是允许执行此操作的代码: merged = tf.summary.merg

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

在我用张力板做的实验中,我从来没有见过这些。我所做的就是打电话

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

在sess.run()之后
。是否需要添加一些“摘要”来记录内存使用情况?

您需要向
会话添加一些
运行选项
,如本节(运行时统计部分)所述

下面是允许执行此操作的代码:

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)
run\u options=tf.RunOptions(跟踪级别=tf.RunOptions.FULL\u跟踪)
run_metadata=tf.RunMetadata()
将tf.Session(config=tf.ConfigProto(log\u device\u placement=True))作为sess:
file_writer=tf.summary.FileWriter(“”,sess.graph)
对于(运行迭代…)
... = sess.run(。。。。,
选项=运行选项,
运行\元数据=运行\元数据
)
文件\u writer.add\u run\u元数据(
运行\u元数据,“运行%d”%(运行\u迭代,),运行\u迭代)
按照说明,您可能已经编写了显示内存和时间所需的所有行,但您还需要将tensorboard GUI中的“会话运行”下拉列表从默认的“无”更改为任何选项。否则它们就会被隐藏起来。见图:


至少,我需要这样做才能显示它们——前面的答案对我很有用,但我需要更改下拉列表。

。。。但这其中有多少是必要的呢?也许options=tf.RunOptions(…)就足够了?等等。当我尝试上面的代码时,
merged==None
,这会导致sess中出现问题。run
可能意味着您没有在代码中定义任何摘要。您确实可以删除合并/摘要部分,只保留:
\sess.run(train\u step,feed\u dict=…,options=run\u options,run\u metadata=run\u metadata)writer.add\u run\u metadata(run\u metadata,'step%d'%i)
Nope(同样,在TF中也遇到了其他明显的bug)我将接受,以将来可能的核查为准。