Pytorch-Lightning--Tuner

article/2025/9/26 16:01:02

Pytorch-Lightning–Tuner

lr_find()

参数详解

参数名称含义默认值
modelLightningModule实例
train_dataloaders训练数据加载器None
val_dataloaders验证数据加载器None
datamoduleLightningDataModule实例None
min_lr学习率最小值1e-08
max_lr学习率最大值1
num_training测试学习率的训练轮数100
mode学习率寻找策略,分为指数(默认)和线性(linear)exponential
early_stop_threshold当任意一点的loss>=early_stop_threshold*best_loss时停止搜索,设置为None禁用该项4.0
update_attr将搜索到的学习率更新到模型参数中False

使用注意

  • 暂时只支持单个优化器
  • 暂不支持DDP

用法

使用self.learing_rateself.lr作为学习率参数

class LitModel(LightningModule):def __init__(self, learning_rate):self.learning_rate = learning_ratedef configure_optimizers(self):return Adam(self.parameters(), lr=(self.lr or self.learning_rate))model = LitModel()# 开启 auto_lr_find标志
trainer = Trainer(auto_lr_find=True)
# 寻找合适的学习率
trainer.tune(model)

使用其他的学习率变量名称

model = LitModel()# 设置为自己的学习率超参数名称 my_value
trainer = Trainer(auto_lr_find="my_value")trainer.tune(model)

使用lr_find()查看自动搜索学习率的结果

model = MyModelClass(hparams)
trainer = Trainer()# 运行学习率搜索
lr_finder = trainer.tuner.lr_find(model)# 查看搜索结果
lr_finder.results# 绘制学习率搜索图,suggest参数指定是否显示建议的学习率点
fig = lr_finder.plot(suggest=True)
fig.show()# 获取最佳学习率或建议的学习率
new_lr = lr_finder.suggestion()# 更新模型的学习率
model.hparams.lr = new_lr# 训练模型
trainer.fit(model)

scale_batch_size()

参数详解

参数名称含义默认值
modelLightningModule实例
train_dataloaders训练数据加载器None
val_dataloaders验证数据加载器None
datamoduleLightningDataModule实例None
mode学习率寻找策略,分为幂次方(默认)和二分(binsearch)power
steps_per_trial每次测试当前batch_size的训练step数量3
init_val初始batch_size大小2
max_trials算法结束前batch_size最大增量25
batch_arg_name存储batch_size的属性名'batch_size'
  • Returns:搜索结果

将在如下地方寻找batch_arg_name

  • model
  • model.hparams
  • trainer.datamodule (如果datamodule传递给了tune())

使用注意

  • 暂时不支持DDP模式

  • 由于需要使用模型的batch_arg_name属性,因此不能直接将dataloader直接传递给trainer.fit(),否则此功能将失效,需要在模型中加载数据

  • 原来模型中的batch_arg_name属性将被覆盖

  • train_dataloader()应该依赖于batch_arg_name属性

    def train_dataloader(self):return DataLoader(train_dataset, batch_size=self.batch_size | self.hparams.batch_size)
    

用法

使用Trainer中的auto_scale_batch_size属性

# 默认不执行缩放
trainer = Trainer(auto_scale_batch_size=None)# 设置搜索策略
trainer = Trainer(auto_scale_batch_size=None | "power" | "binsearch")# 寻找最佳batch_szie,并自动设置到模型的batch_size属性中
trainer.tune(model)

使用scale_batch_size()

# 返回搜索结果
new_batch_size = tuner.scale_batch_size(model, *extra_parameters_here)# 覆盖原来的属性(这个过程是自动的)
model.hparams.batch_size = new_batch_size

http://chatgpt.dhexx.cn/article/onAEUV6C.shtml

相关文章

MATLAB/simulink中PID Tuner工具箱使用方法(针对Plant cannot be linearized问题)

问题描述 在PID tuner工具箱对PID参数自动调节时,由于matlab无法将控制对象线性化,出现"Plant cannot be linearized. Use the Plant menu to create or select a new plant."问题。 操作步骤 首先选择Identify New Plant 按钮 然后选择Simu…

RK3588s imx415相机适配及ISP调优系列(三)--- RKISP调试环境配置

经过上篇的相机配置后,两个mipi相机已经可以正常出图了。其实对于rk系列如何配置mipi相机,网上已有不少相关资料均可参考借鉴。 RK3588s imx415相机适配及ISP调优系列(一) RK3588s imx415相机适配及ISP调优系列(二&…

keras_tuner库的总结【源自官网Examples】

keras_tuner库的使用,源自官网的Examples 在kerastuner中entries表示的是某个超参数对象的可取值。术语体系。有些称谓是自行杜撰的。文章中的内容或者概念需要结合原文代码多理解与多实验。 ① example1 from tensorflow import keras from tensorflow.keras i…

射频知识简介

无线通信系统中,一般包含有天线、射频前端、射频收发模块以及基带信号处理器四个部分。随着5G时代的,天线以及射频前端的需求量及价值均快速上升,射频前端是将数字信号向无线射频信号转化的基础部件,也是无线通信系统的核心组件。…

使用PID—tuner做参数整定

环境:Matlab/Simulink 2020a 仿真模型: 调节前:Kp1;Ki0;Kd0 systf([1],[100 80 17 1]); H[1]; kp1;ki0;kd0; PID_CONpid(kp,ki,kd); sys_opsys*PID_CON;sys_clfeedback(sys_op,H) step(sys_cl) 无法跟踪单位阶跃信号 使用Tune整定 虚线是当前…

解决使用pycharm安装keras-tuner后tensorflow-gpu 2.5.0无法使用的问题

解决方法 以下是我的解决方法,亲测可行,不过有点麻烦。 创建新的环境,再次安装tensorflow-gpu 2.5.0,但在之前先安装keras-tuner conda create -n new_tensorflow python3.8进入该环境 conda activate new_tensorflow下载安装cudatoolkit…

MATLAB/simulink中PID Tuner工具箱(APP)

MATLAB学习笔记系列第五篇了,这一篇重点讲一下pid tunner的使用。上一篇讲的是控制系统,MathWorks官方MATLAB/Simulink基础入门视频教程 笔记(控制系统) 那个课程到上一篇就已经完结了,这一篇主要是实际使用过程中的情…

MATLAB中关于PID的调参simulink中PID Tuner工具箱的使用

目录 一、在matlab(r2018a)中导入已知的数学模型 二、打开PID Tuner模型的命令: 三、将数学模型导入到PID Tuner中 使用PID Tuner对simulink里的PID控制器进行调参 已知数学模型为 一、在matlab(r2018a)中…

如何在 Simulink 中使用 PID Tuner 进行 PID 调参?

作者 | 安布奇责编 | 胡雪蕊出品 | CSDN(ID: CSDNnews)本文为一篇技术干货,主要讲述在Simulink如何使用PID Tuner进行PID调参。 PID调参器( PIDTuner)概述 1.1 简介 使用PID Tuner可以对Simulink模型中的PID控制器&…

使用Keras Tuner进行自动超参数调优的实用教程

在本文中将介绍如何使用 KerasTuner,并且还会介绍其他教程中没有的一些技巧,例如单独调整每一层中的参数或与优化器一起调整学习率等。Keras-Tuner 是一个可帮助您优化神经网络并找到接近最优的超参数集的工具,它利用了高级搜索和优化方法&am…

AI4DB:openGauss人工智能参数调优之X-Tuner

X-Tuner:参数调优与诊断 一、概述 二、使用准备 三、使用示例 四、获取帮助 五、命令参考 六、常见问题处理 一、概述 增量物化视图可以对物化视图增量刷新,需要用户手动执行语句完成对物化视图在一段时间内的增量数据刷新。与全量创建物化视图的不…

5G时代芯片之王——射频芯片

目录 什么是射频芯片? 射频芯片市场 竞争格局 什么是射频芯片? 射频( RF , Radio Frequency) , 表示可以辐射到空间的电磁频率, 频率范围从300kHz~300GHz之间。射频是一种高频交…

Tuner及工作原理介绍

Tuner的介绍 Tuner是什么? 为了提高电视信号的传输效率,减少于扰,电视信号通常都采用射频(RF)信号传输方式,即把要传输的视频或音频信号调制(作幅度调制AM或频率调制FM)到频率较高的射频载波上,从发信端发送出去&…

ADG架构搭建3 -- 一主一备ADG主备切换

本文接该系列文章的上一篇:ADG架构搭建2 – 搭建一主一备ADG架构 前言 Oracle Dataguard的角色转换包含两类:Switchover和Failover。Switchover指主备之间角色转换,主库降为备库,备库升级为主库。而failover则是指主库出现问题时…

RAC+ADG(单节点ADG)

RACADG有两种存储数据文件的形式,一个是将DG的数据文件放在ASM上,另一个是将数据文件放在本地磁盘上 本实验做的是数据放在本地磁盘上。 在搭建RACDG之前,请确保RAC是没有问题的 1.检查集群状态 grid用户下执行: crsctl status r…

ADG架构搭建1--Oracle安装

本系列文章将会带领大家从零完成一个Oracle ADG架构的搭建。 本片文章为系列文章的第一篇。 前言 本文将带领大家完成两台服务的Oracle安装。 正文 版本说明: Oracle版本 Oracle Database 12c Release 1 (12.1.0.2.0) - Enterprise Edition 操作系统版本 Red Hat …

Oracle ADG 与 DG 的区别

首先,DG(Data Guard,数据卫士)不是一个备份恢复的工具,然而,DG却拥有备份的功能,在物理DG下它可以和主库一模一样,但是它存在的目的并不仅仅是为了备份恢复数据,应该说它…

ADG架构搭建5 -- 一主两备ADG主备切换

本文接该系列文章的上一篇:ADG架构搭建4 – 搭建一主两备ADG架构 前言 在《ADG架构搭建3 – 一主一备ADG主备切换》一文中,已经带领大家完成了一主一备ADG的主备切换,相信大家对该部分内容已有所了解。本文将对《ADG架构搭建4 – 搭建一主两…

第一章 ADG基本知识

Oracle Data Guard 配置可以包含一个主数据库和多达 30 个目标。 备用数据库是主数据库的事务一致副本。 当主数据库是 CDB 时,代理配置中的所有备用数据库也必须是 CDB。 备用数据库的类型如下: 物理备用数据库 提供物理上相同的主数据库副本&#xf…

完成端口使用总结

前言 本文不是全面介绍完成端口的,只是简单介绍了一下完成端口和几个常用概念。本文主要关注完成端口关闭时资源释放问题。 基础介绍 完成端口——可能是Win32下最复杂的一种I/O模型,Win32下最复杂的内核对象。它通过指定数量的线程对重叠I/O请求进行管理,以便为已经完成的…