Tensorboard 中未知的设备放置

Device placement unknown in 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)

这适用于显示图形和图形中定义的摘要。但是在tensorboard中选择'device placement'时,所有的节点都被赋值为'unknown device'。我是否需要以其他方式转储设备布置?

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

这是因为 TensorFlow 图中的节点是分多个阶段分配给设备的。第一阶段,在客户端(例如你的 Python 程序)允许你明确地——并且可选地——将设备分配给每个节点,并且这是写入 TensorBoard 日志的这个阶段的输出。稍后的放置阶段在 TensorFlow 后端运行,并将每个节点分配给一个设备。

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

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

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