使用 Tensorflow 在每一步可视化矢量值
Visualize vector value at each step with Tensorflow
出于调试目的,我想在训练过程的每一步可视化 NN 的输出向量。
我尝试将 TensorBoard 与 tf.summary.tensor_summary:
一起使用
available_outputs_summary = tf.summary.tensor_summary(name='Probability of move', tensor=available_outputs)
我在每个迭代步骤中用来编写的:
summary_str = available_outputs_summary.eval(feed_dict={X: obs})
file_writer.add_summary(summary_str, iteration)
但是在 TensorBoard 中,当我点击所需的张量时,我将看不到我的数据:
我知道如何使用 tf.Print 在控制台中打印每个值,但它不方便...
还有什么我可以做的吗?
首先,您的图片是图形可视化。我认为图表可视化不应该有任何摘要 - 它只是向您展示图表。
TensorBoard 还有其他用于摘要的选项卡,包括 "scalar"、"histogram"、"distribution"。通常,您会在这些选项卡中查看可视化效果。然而,TensorBoard 的基本版本还没有一个选项卡来可视化张量摘要(虽然可能有 third-party 插件)。
根据您想要的张量可视化类型,您有以下选项:
- 创建您关心的有趣的标量统计数据,例如均值、标准差等
- 使用 "histogram" and/or "distribution" 标签 (https://www.tensorflow.org/programmers_guide/tensorboard_histograms)。
- 如果您的张量不是很大且大小固定,您可以为其每个字段创建标量摘要。见最后一个答案
出于调试目的,我想在训练过程的每一步可视化 NN 的输出向量。
我尝试将 TensorBoard 与 tf.summary.tensor_summary:
一起使用available_outputs_summary = tf.summary.tensor_summary(name='Probability of move', tensor=available_outputs)
我在每个迭代步骤中用来编写的:
summary_str = available_outputs_summary.eval(feed_dict={X: obs})
file_writer.add_summary(summary_str, iteration)
但是在 TensorBoard 中,当我点击所需的张量时,我将看不到我的数据:
我知道如何使用 tf.Print 在控制台中打印每个值,但它不方便...
还有什么我可以做的吗?
首先,您的图片是图形可视化。我认为图表可视化不应该有任何摘要 - 它只是向您展示图表。
TensorBoard 还有其他用于摘要的选项卡,包括 "scalar"、"histogram"、"distribution"。通常,您会在这些选项卡中查看可视化效果。然而,TensorBoard 的基本版本还没有一个选项卡来可视化张量摘要(虽然可能有 third-party 插件)。
根据您想要的张量可视化类型,您有以下选项:
- 创建您关心的有趣的标量统计数据,例如均值、标准差等
- 使用 "histogram" and/or "distribution" 标签 (https://www.tensorflow.org/programmers_guide/tensorboard_histograms)。
- 如果您的张量不是很大且大小固定,您可以为其每个字段创建标量摘要。见最后一个答案