fla*_*awr 5 python-3.x tensorboard pytorch 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)
Run Code Online (Sandbox Code Playgroud)
这将创建一个runs保存数据的文件夹。从同一文件夹执行tensorboard --logdir runs,打开浏览器并转到localhost:6006(或替换6006为启动后显示的任何端口张量板)。然后转到“图像”选项卡并将滑块移动到灰度图像上方。
就我而言,它仅显示步骤中的图像
k = 3, 20, 24, 32, 37, 49, 52, 53, 67, 78
Run Code Online (Sandbox Code Playgroud)
这甚至不是一个很好的均匀间距,但看起来很随机。我更愿意拥有
我怎样才能实现这个目标?
编辑:我刚刚找到了该选项--samples_per_plugin并尝试了tensorboard --logdir runs --samples_per_plugin "images=100"。这样确实增加了图片数量,但是只显示了步骤中的图片k = 0,1,2,3....,78,而没有显示上面的图片78。
您可能需要等待一段时间才能加载所有数据,但这确实是正确的解决方案,请参阅--help:
--samples_per_plugin:可选的逗号分隔的plugin_name=num_samples对列表,用于明确指定该插件的每个标签保留多少个样本。对于未指定的插件,TensorBoard 会随机将记录的摘要下采样为合理的值,以防止长时间运行的作业出现内存不足错误。该标志允许对下采样进行精细控制。请注意,0 表示保留该类型的所有样本。例如,“scalars=500,images=0”保留 500 个标量和所有图像。大多数用户不需要设置此标志。(默认: '')
关于随机样本:这也是事实,它存在某种随机性,来自常见问题解答:
我的数据是否被缩减采样?我真的看到了所有数据吗?
TensorBoard 使用水库采样对数据进行下采样,以便将其加载到 RAM 中。您可以在tensorboard/backend/application.py中修改每个标签保留的元素数量。