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 回答