【问题标题】:How to display more than 10 images in Tensorboard?如何在 Tensorboard 中显示 10 张以上的图像?
【发布时间】:2019-12-31 07:31:41
【问题描述】:

我注意到无论我将多少张图片保存到 tensorboard 日志文件中,tensorboard 只会显示其中的 10 张(每个标签)。

我们如何增加图像的数量或至少选择显示哪些图像?


要重现我的意思,按照 MCVE 运行:

import torch
from torch.utils.tensorboard import SummaryWriter
tb = SummaryWriter(comment="test")

for k in range(100):
    # create an image with some funny pattern
    b = [n for (n, c) in enumerate(bin(k)) if c == '1']
    img = torch.zeros((1,10,10))
    img[0, b, :] = 0.5
    img =img + img.permute([0, 2, 1])

    # add the image to the tensorboard file
    tb.add_image(tag="test", img_tensor=img, global_step=k)

这将创建一个文件夹runs 来保存数据。从同一个文件夹中执行tensorboard --logdir runs,打开浏览器并转到localhost:6006(或将6006 替换为启动后碰巧显示的任何端口张量板)。然后转到名为“图像”的选项卡并将滑块移动到灰度图像上方。

在我的情况下,它只显示步骤中的图像

k = 3, 20, 24, 32, 37, 49, 52, 53, 67, 78

这甚至不是一个很好的均匀间距,但看起来很随机。我宁愿有

  1. 查看我保存的不止 10 张图片,并且
  2. 显示的每个图像之间的步数间距更均匀。

我怎样才能做到这一点?

编辑:我刚刚找到了--samples_per_plugin 选项并尝试了tensorboard --logdir runs --samples_per_plugin "images=100"。这确实增加了图像的数量,但它只显示了来自步骤k = 0,1,2,3....,78 的图像,而没有显示来自以上78 的图像。

【问题讨论】:

  • 可能不相关,但根据文档,您应该传递dataformats="CHW",因为您的数据具有单通道。
  • @SzymonMaszke 实际上不需要像dataformats="CHW" 默认情况下,见docs

标签: python-3.x pytorch tensorboard tensorboardx


【解决方案1】:

您可能需要等待更长的时间才能等待加载所有数据,但这确实是正确的解决方案,请参阅--help

--samples_per_plugin:一个可选的以逗号分隔的 plugin_name=num_samples 对列表,用于明确指定有多少样本 保留该插件的每个标签。对于未指定的插件,TensorBoard 随机下采样记录的摘要到合理的值,以防止 长时间运行的作业的内存不足错误。该标志允许罚款 控制该下采样。请注意,0 表示保留所有样本 那种。例如,“scalars=500,images=0”保留 500 个标量和 所有图像。大多数用户不需要设置此标志。 (默认:'')

关于随机样本:这也是正确的,它有某种随机性,来自FAQ

我的数据是否被下采样?我真的看到了所有数据吗?

TensorBoard 使用 reservoir sampling 对您的数据进行下采样,以便 可以加载到 RAM 中。您可以修改它的元素数量 在 tensorboard/backend/application.py 中保留每个标签。

【讨论】:

    猜你喜欢
    • 2020-11-24
    • 2019-02-27
    • 1970-01-01
    • 2019-04-30
    • 1970-01-01
    • 2016-07-30
    • 2017-12-15
    • 2017-10-02
    • 1970-01-01
    相关资源
    最近更新 更多