pytorch lightning之快速调试

news/2025/3/15 7:08:25/

调试代码

此阶段主要测试各阶段代码是否有问题。

快速测试

fast_dev_run项可以配置train/val/test阶段的循环次数,跑完就停止代码,快速查看各流程代码正确性,避免train调试后训练又在val/test阶段出错,白白浪费时间和计算成本。

Trainer(fast_dev_run=7)# 每个阶段只循环7次,也可以设置为True,只循环5次。

使用部分数据测试

功能与上面类似,但是运行指定epochs的周期过程,只是train/val/test流程使用部分数据。

# 使用10%训练集 和 1% 验证集
trainer = Trainer(limit_train_batches=0.1, limit_val_batches=0.01)# use 10 batches of train and 5 batches of val
trainer = Trainer(limit_train_batches=10, limit_val_batches=5)

validation_step()提前检查

设置num_sanity_val_steps,lightning会在开始训练前默认先执行再次validation_step,避免训练后验证阶段出错。

trainer = Trainer(num_sanity_val_steps=2)

打印网络模型信息

调用train.fit()后,lightning会自动打印模型信息,如下:

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

也可以利用内置的callback ModelSummary打印子模块的信息。需要配置好callback后传入Trainer。

trainer = Trainer(callbacks=[ModelSummary(max_depth=-1)])# 打印深度为所有。

打印各模块输入输出的尺寸

在LightningModule中设置example_input_array属性

class LitModel(LightningModule):def __init__(self, *args, **kwargs):self.example_input_array = torch.Tensor(32, 1, 28, 28)
  | 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.ppmy.cn/news/43235.html

相关文章

Hadoop 开启 histotryserver

Hadoop 开启 histotryserver Hadoop自带了一个历史服务,可以通过历史服务在web端查看已经运行完的Mapreduce作业记录, 默认情况下,Hadoop历史服务是没有启动的,需要自行启动。 启动后,在下图中点击history可跳转至历史…

C#基础学习--转换

目录 什么是转换 隐式转换 显式转换和强制转换 ​编辑 转换的类型 数字的转换 ​编辑 隐式数字转换 溢出检测上下文 显式数字转换 引用转换 隐式引用转换 显式引用转换 有效显式引用转换 装箱转换 装箱是创建副本 装箱转换 拆箱转换 用户自定义转换 用户自定义…

【C++进阶】function和bind及可变模板参数

文章目录1. function和bind1.1 function使用方法1.2 bind2. 可变模板参数2.1 可变模板参数函数2.2 可变模板参数的展开1. function和bind C中的function和bind是为了更方便地进行函数对象的封装和调用而设计的。 function是一个通用的函数对象容器,可以存储任意可…

Wombat:93%ChatGPT性能!无需RLHF就能对齐人类的语言模型

文 | zzy文章地址: https://arxiv.org/abs/2304.05302v1训练代码:https://github.com/GanjinZero/RRHF模型权重:https://huggingface.co/GanjinZero/wombat-7b-delta文章提出RRHF一种无须强化学习的对齐方法训练语言模型。该文章利用chatGPT或者GPT-4作为…

CAN 发展史

一、起源 1986 年 2 月 Robert Bosch 公司在 SAE 汽车工程协会 大会上介绍了一种新型的串行总线 CAN控制器局域网,那是 CAN 诞生的时刻。今天,在欧洲几乎每一辆新客车均装配有 CAN 局域网。同样,CAN也用于其他类型的交通工具,从火…

学会了selenium 模拟鼠标操作,你就可以偷懒点点点了

目录:导读 前言 01.ActionChains 类常用方法 02.ActionChains 类所有方法 03.ActionChains 使用步骤 04.实战 05.总结 前言 我们在做 Web 自动化的时候,有时候页面的元素不需要我们点击,值需要把鼠标移动上去就能展示各种信息。 这个…

CDH 之 Kerberos 安全认证和 Sentry 权限控制管理(一)

一、Kerberos 和 Sentry 概述 1.1 什么是 Kerberos Kerberos是一种计算机网络授权协议,用来在非安全网络中,对个人通信以安全的手段进行身份认证。这个词又指麻省理工学院为这个协议开发的一套计算机软件。软件设计上采用客户端/服务器结构,…

信息系统项目管理师-项目成本管理

1.过程 1.1 规划成本管理 确定如何估算、预算、管理、监督和控制项目成本的过程。 1.2 估算成本 对完成项目工作所需资源成本近似估算的过程。 1.3 制定预算 汇总所有单个活动或工作包的估算成本,建立一个经批准的成本基准的过程。 1.4 控制成本 监督项目状态&#…