如何在张量板中可视化张量摘要

How to visualize a tensor summary in tensorboard

我正在尝试在 tensorboard 中可视化张量摘要。但是我在板上根本看不到张量摘要。这是我的代码:

        out = tf.strided_slice(logits, begin=[self.args.uttWindowSize-1, 0], end=[-self.args.uttWindowSize+1, self.args.numClasses],
                               strides=[1, 1], name='softmax_truncated')
        tf.summary.tensor_summary('softmax_input', out)

其中out是一个多维张量。我想我的代码一定有问题。可能我错误地使用了 tensor_summary 函数。

您所做的是创建一个摘要操作,但您不调用它也不编写摘要(参见 documentation)。 要实际创建摘要,您需要执行以下操作:

# Create a summary operation
summary_op = tf.summary.tensor_summary('softmax_input', out)

# Create the summary
summary_str = sess.run(summary_op)

# Create a summary writer
writer = tf.train.SummaryWriter(...)

# Write the summary
writer.add_summary(summary_str)

仅当您没有像 Supervisor 这样的更高级别的助手时,才需要明确编写摘要(最后两行)。否则你调用

sv.summary_computed(sess, summary_str)

主管会处理。

更多信息,另请参阅:

不确定这是否有点明显,但您可以使用类似

的东西
def make_tensor_summary(tensor, name='defaultTensorName'):
    for i in range(tensor.get_shape()[0]:
        for j in range(tensor.get_shape()[1]:
            tf.summary.scalar(Name + str(i) + '_' + str(j), tensor[i, j])

如果你事先知道它是一个'matrix-shaped'张量。

希望有一个解决方法可以达到你想要的效果。 ..

如果你想查看张量值,你可以使用as_string转换它们,然后使用summary.text。这些值将显示在张量板文本选项卡中。

未尝试使用 3D 张量,但可以根据需要随意切片。

代码片段,其中包括使用插入打印语句来获取控制台输出。

predictions = tf.argmax(reshaped_logits, 1)
txtPredictions = tf.Print(tf.as_string(predictions),[tf.as_string(predictions)], message='predictions', name='txtPredictions')
txtPredictions_op = tf.summary.text('predictions', txtPredictions)