PyTorch TensorBoard 写入频率

PyTorch TensorBoard write frequency

我正在尝试使用 torch (torch.utils.tensorboard) 将我的训练和验证损失写入 tensorboard,看起来它最多只写入 1000 个数据点,无论实际迭代次数是多少。比如运行下面的代码,

writer1 = SummaryWriter('runs/1')
writer2 = SummaryWriter('runs/2')

for i in range(2000):
    writer1.add_scalar('tag', 1, i)

for i in range(20000):
    writer2.add_scalar('tag', 1, i)

两者在检查和下载 csv 时都准确地产生 1000 个点,甚至在 tensorboard 仪表板上,第一个点从第 5 步和第 18 步开始递增,使得总步数为 1000,而不是 2,000 和 20,000。

我不知道这是 tensorboard 的默认行为还是 PyTorch 的决定,但不管怎样,有没有办法写出每一个步骤?

其实我找到了答案here。所以 SummaryWriter 在每个 epoch 都保存,但要加载所有内容,tensorboard 必须以标志 --samples_per_plugin scalars=0 启动。 0 告诉 tensorboard 加载所有点,而 100 表示总共 100 个点,例如

综上所述,我用命令 tensorboard --logdir=logs --samples_per_plugin scalars=0

启动了 tensorboard