PyTorch Lightning教程五:Debug调试

如果遇到了这样一个问题,当一次训练模型花了好几天,结果突然在验证或测试的时候崩掉了,这个时候其实是很奔溃的,主要还是由于没有提前知道哪些时候会出现什么问题,本节会引入Lightning的Debug方案

1.fast_dev_run参数

Trainer中的fast_dev_run参数通过你的训练器运行5批训练、验证、测试和预测数据,看看是否有任何错误,如下

Trainer(fast_dev_run=True)

如果fast_dev_run设置为7,则表示训练7个batch每次

⚠️注意:这个参数将禁用tuner、checkpoint callbacks, early stopping callbacks, loggers 和 logger callbacks(如 LearningRateMonitor和DeviceStatsMonitor)。

2.减少epoch长度

有时,我们只需要使用训练、val、测试或预测数据的一小部分(或一组批次),来看看是否有错误。例如,可以使用20%的训练集和1%的验证集。

在像Imagenet这样的大型数据集上,这可以帮助我们更快地调试或测试一些东西,而不是等待一个完整的epoch。

# 只使用10%的训练数据和1%的验证数据
trainer = Trainer(limit_train_batches=0.1, limit_val_batches=0.01)# 使用10批次训练和5批次验证
trainer = Trainer(limit_train_batches=10, limit_val_batches=5)

3.运行一次完整性验证

Lightning在训练开始时有2个验证的步骤。这避免了在验证循环中陷入冗长的训练循环。

trainer = Trainer(num_sanity_val_steps=2)

4.打印模型相关参数

每当调用.fit()函数时,训练器将打印LightningModule的权重摘要,例如

trainer.fit(...)

则出现

  | Name  | Type        | Params
----------------------------------
0 | net   | Sequential  | 132 K
1 | net.0 | Linear      | 131 K
2 | net.1 | BatchNorm1d | 1.0 K

需要将子模块添加到摘要中,添加一个ModelSummary,如下操作

# 方法1.引入回调函数
from lightning.pytorch.callbacks import ModelSummary
trainer = Trainer(callbacks=[ModelSummary(max_depth=-1)])  # 回调函数ModelSummary
trainer.fit()
# 注:如果不打印,则可以运行 Trainer(enable_model_summary=False)# 当然也可以下面这样子,直接打印
# 方法2.不调用fit
model = LitModel()
summary = ModelSummary(model, max_depth=-1)
print(summary)

4.所有中间层的输入输出

另一个调试工具是通过在LightningModule中设置example_input_array属性来显示所有层的中间输入和输出大小。

class LitModel(LightningModule):def __init__(self, *args, **kwargs):self.example_input_array = torch.Tensor(32, 1, 28, 28)

当执行.fit()时,会打印如下

  | Name  | Type        | Params | In sizes  | Out sizes
--------------------------------------------------------------
0 | net   | Sequential  | 132 K  | [10, 256] | [10, 512]
1 | net.0 | Linear      | 131 K  | [10, 256] | [10, 512]
2 | net.1 | BatchNorm1d | 1.0 K  | [10, 512] | [10, 512]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/20276.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一套ai绘图软件教程帮你打开创作新篇章

在一个寂静的艺术工作室里,住着一个渴望成为画家的年轻人,名叫艾米。她梦想能够运用自己的创造力和手艺,创作出令人叹为观止的艺术作品。然而,面对空白的画布,她感到无从下手,不知道该从何处开始。每次她试…

Stable Diffusion 硬核生存指南:WebUI 中的 CodeFormer

本篇文章聊聊 Stable Diffusion WebUI 中的核心组件,强壮的人脸图像面部画面修复模型 CodeFormer 相关的事情。 写在前面 在 Stable Diffusion WebUI 项目中,源码 modules 目录中,有一个有趣的目录叫做 CodeFormer,它就是本文的…

Fibonaccharsis

题意:第数n是斐波那契的第k个数,让你求有多少满足这个的序列(成员非负,不下降) 思路: 1 2 3 4 5 6 7 0 1 1 2 …

归并排序——“数据结构与算法”

各位CSDN的uu们好呀,今天,小雅兰的内容仍然是数据结构与算法专栏的排序呀,下面,让我们进入归并排序的世界吧!!! 归并排序 归并排序(MERGE-SORT)是建立在归并操作上的一种…

初识C++:类与对象

前言(类的引入) C语言结构体中只能定义变量,在C中,结构体内不仅可以定义变量,也可以定义函数。比如: 之前在C语言中,用C语言方式实现的栈,结构体中只能定义变量;现在以C方…

Stable Diffusion - 真人照片的高清修复 (StableSR + GFPGAN) 最佳实践

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/132032216 GFPGAN (Generative Facial Prior GAN) 算法,用于实现真实世界的盲脸恢复的算法,利用预训练的面部 GAN&#xf…

SDUT 2023 summer team contest(for 22) - 10

H - Exam 题意:就是给你一个数N,和一个方案数K,初始值为1,你有三种操作方式让值恰为N 1:自身加1; 2:加上X; 3:自身乘以7; 要你确定一X使得你…

2023华数杯数学建模竞赛选题建议

提示&#xff1a;DS C君认为的难度&#xff1a;C<B<A&#xff0c;开放度&#xff1a;B<A<C 。 A题&#xff1a;隔热材料的结构优化控制研究 A题是数模类赛事很常见的物理类赛题&#xff0c;需要学习不少相关知识。 其中第一问需要建立平纹织物整体热导率与单根纤…

偶数科技亮相第十届中国中小企业投融资交易会

第十届中国中小企业投融资交易会暨2023“小企业 大梦想”高峰论坛近日在北京举办。本届大会以“金融活水精准滴灌 专精特新体制增量”为主题&#xff0c;通过展览展示、论坛活动、项目路演、产融对接等形式&#xff0c;搭建了专精特新企业与金融机构之间、与地方政府之间的产融…

华为云hcip核心知识笔记(存储服务规划)

云上存储 &#xff1a; 云硬盘:基于分布式架构&#xff0c;可弹性扩展的虚拟块存储服务 注意事项 挂载云硬盘实例和云硬盘必须在同一区域&#xff0c;否则挂载失败文件存储服务&#xff1a;完全托管的共享文件存储 可以为多个实例实现共享访问&#xff0c;不同vpc中可以进行对…

[RocketMQ] Consumer 负载均衡服务 RebalanceService入口源码 (十五)

RocketMQ一个消费者组中可以有多个消费者, 在集群模式下他们共同消费topic下的所有消息, RocketMQ规定一个消息队列仅能被一个消费者消费, 但是一个消费者可以同时消费多个消息队列。需要负载均衡服务RebalanceService来进行消息队列分配的重平衡。使用负载均衡服务RebalanceSe…

stm32 mpu6050 cubemx DMP法读取角度

文章目录 前言一、相关文件二、cubemx配置三、代码变量初始化主循环 总结 前言 文件 记录使用dmp库来读取mpu6050的角度。 这是参考文件 参考1–主要参考 github参考 参考2 参考三 一、相关文件 相关文件在这里下载&#xff08;未填&#xff0c;不过可以在上面的git中下载&a…

LPython:最新的高性能Python实现、速度极快且支持多后端

LPython 是最新的开源 Python 实现&#xff0c;目标是打造高性能版本的 Python。 LPython 官网写道&#xff0c;它一直作为 Python 编译器在开发&#xff0c;能够生成优化的机器代码。LPython 的后端支持 LLVM、C/C 翻译&#xff0c;甚至还支持 WebAssembly (WASM)。 LPython 主…

从0到1开发go-tcp框架【3-读写协程分离、引入消息队列、进入连接管理器、引入连接属性】【基础篇完结】

从0到1开发go-tcp框架【3-读写协程分离、引入消息队列、进入连接管理器、引入连接属性】 1 读写协程分离[v0.7] 添加一个Reader和Writer之间通信的channel添加一个Writer goroutineReader由之前直接发送给客户端改为发送给通信channel启动Reader和Writer一起工作 zinx/znet/co…

使用火山云搜索ESCloud服务构建图文检索应用(以文搜图/以图搜图)

图文检索在生活中具有广泛的应用&#xff0c;常见的图片检索包括基于文本内容搜索和基于图片内容搜索。用户通过输入文字描述或上传图片就可以在海量的图片库中快速找到同款或者相似图片&#xff0c;这种搜索方式被广泛应用于电商、广告、设计以及搜索引擎等热门领域。 本文基…

在CSDN学Golang场景化解决方案(微服务架构设计)

一&#xff0c;聚合器微服务设计模式 在Golang微服务架构设计中&#xff0c;聚合器&#xff08;Aggregator&#xff09;微服务设计模式是一种常见的应用程序体系结构模式。该模式旨在简化客户端与后端微服务之间的通信&#xff0c;并支持更高级别的操作&#xff0c;例如聚合多…

Vue3文本省略(Ellipsis)

APIs 参数说明类型默认值必传maxWidth文本最大宽度number | string‘100%’falseline最大行数numberundefinedfalsetrigger展开的触发方式‘click’undefinedfalsetooltip是否启用文本提示框booleantruefalsetooltipMaxWidth提示框内容最大宽度&#xff0c;单位px&#xff0c;…

亚马逊云科技发布Amazon HealthScribe,使用生成式AI技术实现临床文档的自动生成

近日&#xff0c;亚马逊云科技在纽约峰会上推出了Amazon HealthScribe&#xff0c;该服务符合HIPAA&#xff08;《健康保险流通与责任法案》&#xff09;的相关要求&#xff0c;可为医疗软件供应商提供一种基于语音和文字识别的生成式AI技术&#xff0c;帮助其创建能够自动生成…

简-理解Python的装饰器、迭代器和生成器底层原理

装饰器、迭代器和生成器是 Python 中的高级功能&#xff0c;它们分别用于扩展函数或方法的功能、遍历容器元素和创建简洁的迭代器。 装饰器 装饰器是一个用于修改或扩展函数或方法的功能的函数。装饰器接受一个函数作为参数&#xff0c;并返回一个新的函数&#xff0c;新函数通…

APUE学习62章终端(二): stty命令特殊字符终端标志

1. stty命令 stty命令的英文解释: 很明显stty有一个-F参数 所以准确的说: stty命令是设置当前终端驱动程序(也有可能直接配置了硬件&#xff0c;这点目前不清楚)的属性&#xff0c;使当前终端的驱动程序能够使能/去使能一些特殊字符的识别与处理等等 2. stty命令的结构 3. 终端…