Tensorboard中的设备放置未知

时间:2015-11-27 10:28:48

标签: tensorflow tensorboard

我想使用以下代码调查张量板中的设备放置,以便在摘要中生成图表

# 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)

这适用于显示图表中定义的图表和摘要。但是在选择“设备放置”时在张量板中,所有节点都被分配给未知设备'。我是否需要以其他方式转储设备位置?

1 个答案:

答案 0 :(得分:11)

TensorBoard图形可视化工具只能看到您在程序中进行的显式设备分配(即使用with tf.Device("..."):块进行的设备分配)。

原因是TensorFlow图中的节点分配给多个阶段的设备。客户端中的第一个阶段(例如,您的Python程序)允许您显式地和可选地将设备分配给每个节点,并且此阶段的输出将写入TensorBoard日志。稍后的放置阶段在TensorFlow后端内部运行,并将每个节点分配给设备。

我怀疑你想分析后期放置阶段的结果。目前TensorBoard不支持此功能,但您可以通过创建tf.Session来提取一些信息,如下所示:

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

...然后设备放置决定将记录到stderr。