You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyTorch Lightning中leave=True时如何让训练进度条显示训练时长

解决训练进度条不显示时长的问题

你遇到的问题是因为TQDMProgressBar设置leave=True后,每个epoch的进度条会保留在控制台,挤占了训练step进度条的显示空间,导致step进度条无法正常更新或被覆盖。以下是具体解决方法:

  • 优先调整leave参数:将leave=True改为默认的leave=False,这样每个epoch结束后会自动清除该epoch的step进度条,避免干扰整体显示:

    from pytorch_lightning.callbacks import TQDMProgressBar
    
    trainer = Trainer(
        callbacks=[TQDMProgressBar(leave=False)],
        max_epochs=10  # 确保设置明确的训练轮次
    )
    
  • 自定义回调保留进度条(如果需要):如果你确实需要保留每个epoch的进度条记录,可以自定义回调,单独控制训练step进度条的leave属性,避免冲突:

    from pytorch_lightning.callbacks import TQDMProgressBar
    
    class CustomTQDMProgressBar(TQDMProgressBar):
        def init_train_tqdm(self):
            # 仅对训练step进度条设置leave=True,epoch进度条保持默认
            bar = super().init_train_tqdm()
            bar.leave = True
            return bar
    
    trainer = Trainer(
        callbacks=[CustomTQDMProgressBar()],
        max_epochs=10
    )
    
  • 确保关键参数配置正确:进度条的时长计算依赖明确的训练参数,比如max_epochs、limit_train_batches等必须正确设置,否则无法预估剩余时长。同时建议更新PyTorch Lightning到最新版本,旧版本可能存在回调逻辑的bug。

只要以上配置正确,训练进度条就会自动显示当前耗时和剩余预估时长。

内容的提问来源于stack exchange,提问作者Skyrax

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 19:22:35