如何在Tensorboard中显示10个以上的图像?

时间:2019-08-27 07:00:12

标签: python-3.x pytorch tensorboard tensorboardx

我注意到我保存到张量板日志文件中的图像数量无关紧要,张量板将只显示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上方的图像。

1 个答案:

答案 0 :(得分:0)

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

  

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

关于随机样本:这也是事实,它来自FAQ

  

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

     

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