PyTorch Lightning教程七:可视化

本节指导如何利用Lightning进行可视化和监控模型

为何需要跟踪参数

在模型开发中,我们跟踪感兴趣的值,例如validation_loss,以可视化模型的学习过程。模型开发就像驾驶一辆没有窗户的汽车,图表和日志提供了窗口,让我们知道该把车开到哪里。有了Lightning,几乎可以可视化任何你能想到的东西:数值、文本、图像、音频...

跟踪指标

度量可视化是理解模型在整个模型开发过程中如何运行的最基本但最强大的方法。要跟踪指标,只需使用LightningModule中的self.log方法

python 复制代码
class LitModel(pl.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)

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

python 复制代码
self.log(..., prog_bar=True)
命令行视图

如果要在浏览器中查看指标,默认情况下,Lightning使用Tensorboard和一个简单的CSV日志记录器。

python 复制代码
# 默认情况下,每个训练器已经启用了tensorboard(如果依赖项可用)
trainer = Trainer()

使用如下命令进行显示

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

如果您使用的是notebook环境,如colab或kaggle或jupyter,使用如下命令启动Tensorboard

shell 复制代码
%reload_ext tensorboard
%tensorboard --logdir=lightning_logs/
累计指标

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

然而,对于验证和测试集,我们通常对绘制每批数据的指标不感兴趣。相反,我们希望在整个数据分割中计算汇总统计(例如平均值、最小值或最大值)。

当您在validation_step和test_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")

对于其他reductions,我们建议记录一个torchmetrics.Metric 实例取代。

配置保存目录

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

python 复制代码
Trainer(default_root_dir="/your/custom/path")
相关推荐
geneculture1 分钟前
基于融智学范畴论、双重形式化与中文屋解密的第二代计算范式
大数据·人工智能·智慧系统·融智学的重要应用·融智时代(杂志)
guo_xiao_xiao_3 分钟前
YOLOv11马匹皮肤病目标检测数据集
人工智能·yolo·目标检测
AIGS0014 分钟前
本体语义:企业AI从“答得对“走向“懂业务“的关键一跃
人工智能
IT_陈寒6 分钟前
Python的GIL让我以为CPU跑满了,结果...
前端·人工智能·后端
一孤程12 分钟前
AI辅助测试用例生成实战——用大模型把测试设计效率提升300%
人工智能·测试工具·ai·aigc·测试用例·测试·测试覆盖率
We0 AI14 分钟前
ChatGPT Work 替代工具推荐:We0 AI、Framer、Webflow、Wix AI 哪个更适合网站增长?
人工智能·chatgpt
chenyulin454515 分钟前
企业微信API:海量会话存档数据的高性能检索与Elasticsearch索引设计
大数据·人工智能·安全·企业微信
小保CPP16 分钟前
OCR C++ Tesseract按单词识别字符
c++·人工智能·ocr·模式识别·光学字符识别
cany100018 分钟前
Other -- 智能取景和智能跟踪
人工智能
Exclusive_Cat26 分钟前
FastAPI热重载失效?降级uvicorn解决
python·fastapi