首页 > 解决方案 > 在同一行上的 pytorch-ignite ProgressBar 上编写验证指标

问题描述

有没有办法像在 keras 中一样使用 pytorch-ignite 在进度条的末尾编写验证指标?

现在,我正在使用 ProgressBar.log_message(下面的示例)来打印相关指标,但这样做会在每个 epoch 结束时打印在新行上。我希望消息打印在栏的末尾,没有换行符。

@trainer.on(Events.EPOCH_COMPLETED)
def run_evaluator(trainer):
    evaluator.run(val_loader)
    val_metrics = evaluator.state.metrics

    # ProgBar
    pbar.log_message(f"Val_loss: {val_metrics['Val_loss']:.2f}")
    pbar.log_message(f"RMSE: {val_metrics['RMSE']:.2f}")

为了进一步澄清,这是我现在得到的输出:

Epoch [1/3]: [3/3] 100%|██████████| [00:00/00:00], Train_loss=1.59e+4
Val_loss: 26333.96
RMSE: 72572.66
Epoch [2/3]: [3/3] 100%|██████████| [00:00/00:00], Train_loss=2.35e+4
Val_loss: 25508.46
RMSE: 71426.14
Epoch [3/3]: [3/3] 100%|██████████| [00:00/00:00], Train_loss=2.26e+4
Val_loss: 24721.82
RMSE: 70316.17

这就是我想要的:

Epoch [1/3]: [3/3] 100%|██████████| [00:00/00:00], Train_loss=1.59e+4  Val_loss: 26333.96  RMSE: 72572.66
Epoch [2/3]: [3/3] 100%|██████████| [00:00/00:00], Train_loss=2.35e+4  Val_loss: 25508.46  RMSE: 71426.14
Epoch [3/3]: [3/3] 100%|██████████| [00:00/00:00], Train_loss=2.26e+4  Val_loss: 24721.82  RMSE: 70316.17

标签: pythonpytorchpytorch-ignite

解决方案


似乎它与 tqdm 相关而不是点燃。请在 github 或 pytorch 讨论论坛上提出其他问题,我们的开发团队不在 SO 上。谢谢!


推荐阅读