当前位置: 首页 > news >正文

PyTorch Lightning教程七:可视化

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

为何需要跟踪参数

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

跟踪指标

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

class LitModel(pl.LightningModule):def training_step(self, batch, batch_idx):value = ...self.log("some_value", value)

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

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

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

self.log(..., prog_bar=True)
命令行视图

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

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

使用如下命令进行显示

tensorboard --logdir=lightning_logs/

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

%reload_ext tensorboard
%tensorboard --logdir=lightning_logs/
累计指标

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

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

当您在validation_step和test_step中调用self.log时,Lightning会自动累积指标并在整个分割(epoch)完成后取平均值。

def validation_step(self, batch, batch_idx):value = batch_idx + 1self.log("average_value", value)

如果不想取平均值,也可以通过传递reduce_fx参数从{min,max,sum}中进行选择。

# default function
self.log(..., reduce_fx="mean")

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

配置保存目录

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

Trainer(default_root_dir="/your/custom/path")
http://www.lryc.cn/news/114158.html

相关文章:

  • 后端开发2.mongdb的集成
  • Unity面板究极优化
  • C# App.config和Web.config加密
  • 力扣:50. Pow(x, n)(Python3)
  • scikit-plot 使用笔记
  • 2024考研408-计算机网络 第五章-传输层学习笔记
  • 【JS】一道解构面试题
  • 24v转3.3v输出3A用什么芯片
  • 在Linux中安装lrzsz(yum命令使用)
  • 机器学习基础08-回归算法矩阵分析(基于波士顿房价(Boston House Price)数据集)
  • [英语单词] password, passphrase, passport.... paraphrase
  • windows(iis)服务器部署安装wordpress(php)网站教程
  • ETCD备份还原
  • 探索CSS计数器:优雅管理网页元素的计数与序号
  • 这次一次性通关channel!
  • 线程数控制
  • DC-6靶机
  • SpringCloud入门Day01-服务注册与发现、服务通信、负载均衡与算法
  • java-IDEA MAVEN查看依赖树,解决jar包重复和冲突
  • 参考RabbitMQ实现一个消息队列
  • SpringBoot+JWT
  • Cad二次开发EqualPoint
  • 20230806将ASF格式的视频转换为MP4
  • 【MySQL】——常用接口API即相关函数说明
  • ts + axios + useRequest (ahooks)—— 实现请求封装
  • Springboot @Validated注解详细说明
  • STM32初学者,到底选标准库还是HAL库?
  • 小学生作业随机加减乘除运算计算习题答案 html源码
  • nvm下载安装配置
  • 2023-08-07力扣每日一题