使用 Pytorch Lightning 时追踪指标和可视化指标

【PL 基础】追踪指标和可视化指标

  • 摘要
  • [1. 跟踪指标](#1. 跟踪指标)
  • [2. 在命令行中查看](#2. 在命令行中查看)
  • [3. 在浏览器中查看](#3. 在浏览器中查看)
  • [4. 配置保存目录](#4. 配置保存目录)

摘要

  本文介绍了PyTorch Lightning中指标追踪和可视化的方法。主要内容包括:1)使用self.log和self.log_dict记录训练指标;2)通过设置prog_bar=True在命令行进度条显示指标;3)使用TensorBoard可视化指标变化曲线;4)验证集和测试集指标的自动聚合功能,支持mean、min、max等聚合方式;5)通过default_root_dir参数自定义日志保存路径。这些功能为模型训练过程提供了便捷的性能监控和分析手段。

1. 跟踪指标

  指标可视化是了解模型在整个模型开发过程中表现的最基本但最强大的方法。

要跟踪指标,只需使用 LightningModule 中提供的 self.log 方法

python 复制代码
class LitModel(L.LightningModule):
    def training_step(self, batch, batch_idx):
        value = ...
        self.log("some_value", value)

要一次记录多个指标,请使用 self.log_dict

python 复制代码
values = {"loss": loss, "acc": acc, "metric_n": metric_n}  # add more items if needed
self.log_dict(values)

2. 在命令行中查看

  要在命令行进度条中查看指标,请将 prog_bar 参数设置为 True

python 复制代码
self.log(..., prog_bar=True)
python 复制代码
Epoch 3:  33%|███▉        | 307/938 [00:01<00:02, 289.04it/s, loss=0.198, v_num=51, acc=0.211, metric_n=0.937]

3. 在浏览器中查看

  要在浏览器中查看指标,您需要使用具有这些功能的实验管理器。

默认情况下,Lightning 使用 Tensorboard(如果可用)和简单的 CSV 记录器。

python 复制代码
# every trainer already has tensorboard enabled by default (if the dependency is available)
trainer = Trainer()

要启动 tensorboard 控制面板,请在命令行上运行以下命令。

python 复制代码
tensorboard --logdir=lightning_logs/

如果您使用的是 colab、kaggle 或 jupyter 等笔记本环境,请使用此命令启动 Tensorboard

python 复制代码
%reload_ext tensorboard
%tensorboard --logdir=lightning_logs/

training_step 中调用 self.log 时,它会生成一个时间序列,显示指标随时间的变化。

但是,对于验证集和测试集,通常对绘制每批数据的量度值不感兴趣。相反,希望计算整个数据拆分的汇总统计数据(例如 averageminmax)。

当您在 validation_steptest_step 中调用 self.log 时,Lightning 会自动累积指标,并在它经历整个拆分(epoch)后对其进行平均。

python 复制代码
def validation_step(self, batch, batch_idx):
    value = batch_idx + 1
    self.log("average_value", value)

如果您不想平均,也可以通过传递 reduce_fx 参数{min,max,sum}来选择。

python 复制代码
# default function
self.log(..., reduce_fx="mean")

4. 配置保存目录

  默认情况下,记录的任何内容都将保存到当前工作目录中。要使用其他目录,请在 Trainer 中设置 default_root_dir 参数。

python 复制代码
Trainer(default_root_dir="/your/custom/path")
相关推荐
hboot4 天前
AI工程师第四课 - 深度学习入门
pytorch·python·神经网络
weiwei228447 天前
神经网络模型导出及开放标准格式ONNX
pytorch·onnx
程序猿追16 天前
那个右下角的小数字怎么“卡”住我打字——我用 HarmonyOS 自己写了一个字数限制输入框
pytorch·华为·harmonyos
闵孚龙16 天前
《PyTorch 深度修炼》Dataset 和 DataLoader:数据如何喂给模型
人工智能·pytorch·python
bryant_meng17 天前
【VAE】From Pixels to Faces: Building a VAE from Scratch
pytorch·vae·log-sigma2·重参数
装不满的克莱因瓶17 天前
了解多标签图像分类方法——从Sigmoid输出到真实世界复杂视觉理解
人工智能·pytorch·python·深度学习·机器学习·分类·数据挖掘
冷小鱼17 天前
TensorFlow 2.21 进阶实战:从训练优化到生产部署的完整指南
人工智能·pytorch·python·tensorflow
冷小鱼17 天前
PyTorch 2.12 完全指南:从动态图到编译优化的深度学习框架演进
人工智能·pytorch·深度学习
IRevers17 天前
【大模型】Gemma4在ROCm和vLLM部署
人工智能·pytorch·深度学习·大模型·datawhale·vllm·amdev
盼小辉丶17 天前
PyTorch强化学习实战(14)——优先经验回放机制
pytorch·python·深度学习·强化学习