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

PyTorch Lightning:trainer.fit时如何在Notebook中查看验证epoch结束指标?

Notebook中trainer.fit时验证指标不显示的解决办法
  • 调整日志与进度条配置
    初始化Trainer时,明确设置log_every_n_steps为合适的步数(比如你的验证步长),并确保enable_progress_bar=True。同时在self.log()记录验证指标时,加上prog_bar=True参数,让指标显示在进度条区域,避免被训练日志覆盖:

    def validation_epoch_end(self, outputs):
        avg_val_loss = torch.stack([x['val_loss'] for x in outputs]).mean()
        avg_val_acc = torch.stack([x['val_acc'] for x in outputs]).mean()
        # 让指标同步显示在进度条和日志中
        self.log('val_loss', avg_val_loss, prog_bar=True, logger=True)
        self.log('val_acc', avg_val_acc, prog_bar=True, logger=True)
    
  • 直接在验证结束方法中打印指标
    在validation_epoch_end里添加print()语句,强制输出验证指标到Notebook,这样即使进度条刷新,也能保留独立的输出记录:

    def validation_epoch_end(self, outputs):
        avg_val_loss = torch.stack([x['val_loss'] for x in outputs]).mean()
        avg_val_acc = torch.stack([x['val_acc'] for x in outputs]).mean()
        self.log('val_loss', avg_val_loss, logger=True)
        self.log('val_acc', avg_val_acc, logger=True)
        # 直接打印关键指标
        print(f"=== Epoch {self.current_epoch} 验证结果 ===")
        print(f"验证损失: {avg_val_loss.item():.4f}, 验证准确率: {avg_val_acc.item():.4f}")
    
  • 更换进度条回调
    使用RichProgressBar替代默认进度条,它会更清晰地分隔训练和验证阶段的输出,避免内容被覆盖:

    from pytorch_lightning.callbacks import RichProgressBar
    
    trainer = Trainer(
        max_epochs=15,
        callbacks=[RichProgressBar()],
        log_every_n_steps=100
    )
    
  • 调整Notebook输出缓冲
    在Notebook开头执行%autosave 0关闭自动保存,或者添加import sys; sys.stdout.flush()在打印语句后强制刷新输出,确保内容及时显示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 04:06:27