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
我正在尝试使用 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