tqdm 笔记本 - 2 个内部条

tqdm notebook - 2 inner bars

我正在尝试使用 tqdm 打印训练进度条。
我想跟踪时代的进步,对于每个时代,我有 2 个进度条:train_loader 小批量和 validation_loader 小批量。
代码是这样的:

for epoch in tqdm(range(epochs_num)):
    for inputs, labels in tqdm(train_loader, "Train progress", leave=False):
        # train...
    with torch.no_grad():
        for inputs, labels in tqdm(validation_loader, "Validation progress", leave=False):
            # calc validation loss

使用 leave 参数,进度条在每个 epoch 都删除,但我想在验证过程结束后立即删除它们 togather
有什么办法吗?

谢谢

您可以重新使用进度条并像这样手动进行更新:

epochs = tqdm(range(epochs_num), desc="Epochs")
training_progress = tqdm(total=training_batch_size, desc="Training progress")
validation_progress = tqdm(total=validation_batch_size, desc="Validation progress")

for epoch in epochs:
    training_progress.reset()
    validation_progress.reset()
    
    for inputs, labels in train_loader:
        # train...
        training_progress.update()
        
    with torch.no_grad():
        for inputs, labels in validation_loader:
            # calc validation loss
            validation_progress.update()

如果批量大小不总是相同,您可以即时计算它们并调用 reset(total=new_size)