# 「解析」CosineLRScheduler 调度器

⚠️注意：在论文中，这个调度器被称为SGDR，但在实际使用中，它常常被称为cosine调度器。两者大题一致，实现差异很小。

## ; 1、CosineLRScheduler

from timm.scheduler.cosine_lr import CosineLRScheduler

CosineLRScheduler(  optimizer:Optimizer,  t_initial:int, t_mul:float=1.0, lr_min:float,
decay_rate:float=1.0, warmup_t, warmup_lr_init,warmup_prefix=False,
cycle_limit, t_in_epochs=True, noise_range_t=None, noise_pct,
noise_std=1.0, noise_seed=42, initialize=True) ::Scheduler


CosineLRScheduler 接受 optimizer 和一些超参数。我们将首先看看如何首先使用timm训练文档来使用cosineLR调度器训练模型，然后看看如何将此调度器用作自定义训练脚本的独立调度器。

### t_initial

The initial number of epochs。例如，50、100等

### t_mul

Defaults to 1.0. Updates the SGDR schedule annealing.

### decay_rate：衰减比例

When decay_rate > 0 and

### cycle_limit

SGDR 中的最大重启次数
The number of maximum restarts in SGDR.

### t_in_epochs

If set to False, the learning rates returned for epoch t are None.

### initialize 初始化

If set to True, then, the an attributes initial_lr is set to each param group. Defaults to True.

## 2、CosineAnnealingLR

⚠️Note:
that this only implements the cosine annealing part of SGDR, and not the restarts.

The full version ： CosineAnnealingWarmRestarts

Set the learning rate of each parameter group using a cosine annealing schedule, where η m a x η_{max}ηm a x ​ is set to the initial lr and T c u r T_{cur}T c u r ​ is the number of epochs since the last restart in SGDR:

η t = η m i n + 1 2 ( η m a x − η m i n ) ( 1 + c o s ( T c u r T m a x π ) ) , T c u r ≠ ( 2 k + 1 ) T m a x ; η t + 1 = η t + 1 2 ( η m a x − η m i n ) ( 1 − c o s ( 1 T m a x π ) ) , T c u r = ( 2 k + 1 ) T m a x ; \eta_t = \eta_{min} + \frac{1}{2}(\eta_{max}-\eta_{min})\Big( 1+cos\big(\frac{T_{cur}}{T_{max}}\pi\big) \Big) , \qquad T_{cur}\neq(2k+1)T_{max}; \ \quad \ \eta_{t+1} = \eta_{t} + \frac{1}{2}(\eta_{max}-\eta_{min})\Big( 1-cos\big(\frac{1}{T_{max}}\pi\big) \Big) ,\qquad T_{cur}=(2k+1)T_{max};ηt ​=ηm i n ​+2 1 ​(ηm a x ​−ηm i n ​)(1 +c o s (T m a x ​T c u r ​​π)),T c u r ​​=(2 k +1 )T m a x ​;ηt +1 ​=ηt ​+2 1 ​(ηm a x ​−ηm i n ​)(1 −c o s (T m a x ​1 ​π)),T c u r ​=(2 k +1 )T m a x ​;

When last_epoch=-1, sets initial lr as lr. Notice that because the schedule is defined recursively, the learning rate can be simultaneously modified outside this scheduler by other operators. If the learning rate is set solely by this scheduler, the learning rate at each step becomes:

η t = η m i n + 1 2 ( η m a x − η m i n ) ( 1 + c o s ( T c u r T m a x π ) ) \eta_t=\eta_{min}+\frac{1}{2}(\eta_{max}-\eta_{min}) \Big( 1+cos\big( \frac{T_{cur}}{T_{max}}\pi \big) \Big)ηt ​=ηm i n ​+2 1 ​(ηm a x ​−ηm i n ​)(1 +c o s (T m a x ​T c u r ​​π))

from torch.optim import lr_scheduler

lr_scheduler.CosineAnnealingLR(optimizer, T_max, eta_min=0, last_epoch=- 1, verbose=False)

Parameters:
optimizer (Optimizer) – Wrapped optimizer.

T_max (int)       – Maximum number of iterations.

eta_min (float)   – Minimum learning rate. Default: 0.

last_epoch (int)  – The index of last epoch. Default: -1.

verbose (bool)    – If True, prints a message to stdout for each update. Default: False.


• get_last_lr()
Return last computed learning rate by current scheduler.

Parameters:
state_dict (dict) – scheduler state. Should be an object returned from a call to state_dict().

• print_lr(is_verbose, group, lr, epoch=None)
Display the current learning rate.

• state_dict()
Returns the state of the scheduler as a dict.

It contains an entry for every variable in self.dict which is not the optimizer.

## 3、CosineAnnealingWarmRestarts

from torch.optim import lr_scheduler
lr_scheduler.CosineAnnealingWarmRestarts(optimizer, T_0, T_mult=1, eta_min=0, last_epoch=- 1, verbose=False)

Parameters
optimizer (Optimizer) – Wrapped optimizer.

T_0 (int) – Number of iterations for the first restart.

T_mult (int, optional) – A factor increases Ti after a restart. Default: 1.

eta_min (float, optional) – Minimum learning rate. Default: 0.

last_epoch (int, optional) – The index of last epoch. Default: -1.

verbose (bool) – If True, prints a message to stdout for each update. Default: False.



Set the learning rate of each parameter group using a cosine annealing schedule, where η m a x η_{max}ηm a x ​ is set to the initial lr, T c u r T_{cur}T c u r ​ is the number of epochs since the last restart and T i T_i T i ​ is the number of epochs between two warm restarts in SGDR:

η t = η m i n + 1 2 ( η m a x − η m i n ) ( 1 + c o s ( T c u r T i π ) ) \eta_t=\eta_{min}+\frac{1}{2}(\eta_{max}-\eta_{min}) \Big( 1+cos\big( \frac{T_{cur}}{T_{i}}\pi \big) \Big)ηt ​=ηm i n ​+2 1 ​(ηm a x ​−ηm i n ​)(1 +c o s (T i ​T c u r ​​π))

When T c u r = T i T_{cur}=T_i T c u r ​=T i ​, set η t = η m i n \eta_t=\eta_{min}ηt ​=ηm i n ​. When T c u r = 0 T_{cur}=0 T c u r ​=0 after restart, set η t = η m a x \eta_t=\eta_{max}ηt ​=ηm a x ​.

• get_last_lr()
Return last computed learning rate by current scheduler.

Parameters:
state_dict (dict) – scheduler state. Should be an object returned from a call to state_dict().

• print_lr(is_verbose, group, lr, epoch=None)
Display the current learning rate.

• state_dict()
Returns the state of the scheduler as a dict.

It contains an entry for every variable in self.dict which is not the optimizer.

• step(epoch=None)
Step could be called after every batch update

Step Example

""" called in an interleaved way. """

scheduler = CosineAnnealingWarmRestarts(optimizer, T_0, T_mult)
for epoch in range(20):
scheduler.step()
scheduler.step(26)
scheduler.step()



Original: https://blog.csdn.net/ViatorSun/article/details/123529445
Author: ViatorSun
Title: 「解析」CosineLRScheduler 调度器

## Title: 虚拟变量怎么做回归_当回归分析模型遇到连续型自变量，我该怎么办？

1.一道饕餮大餐来了！手把手教你如何科学地构建回归模型！2.一文汇总三大回归的基本应用条件、诊断与处理方法 3.回归分析时何时设置哑变量？如何设置？
SPSS 教程37 回归模型连续型自变量的处理方式

1

2

3

-本文毕-

Original: https://blog.csdn.net/weixin_28965731/article/details/112731884
Author: 七231fsda~~
Title: 虚拟变量怎么做回归_当回归分析模型遇到连续型自变量，我该怎么办？

(0)

### 大家都在看

• #### plt.xticks()用法

前言 在学习ML的过程中，遇到plt.xticks()的使用，在网上看别人写的教程，看得有点头晕，最后看官方文档和一个例子才明白了其用法。故写下这篇文章记录 函数功能 获取或设置当…

人工智能 2022年12月1日
048
• #### YOLOv4之网络结构剖析

1.yolov4的网络结构 yolov4的网络结构包括 backbone CSPDarknet53 Neck SPP PANet Dence Prediction yolo hea…

人工智能 2022年11月15日
088
• #### C均值聚类算法 Excel数据分类处理(介绍+Python实现)

模式识别学习，课程实例分享。 文章目录 第一，实验步骤描述 第二，聚类数变化对聚类性能的影响 第三，不同初始聚类中心对分类速度的影响 第四，代码实现 第一，实验步骤描述 本次实验主…

人工智能 2022年10月4日
0153
• #### 智能音箱里小度、小爱、天猫精灵哪个更加好？（上）

相信大家都听说过智能音箱。走在街上，你还能听到一些商店用智能音箱播放歌曲。 [En] I believe everyone has heard of smart speakers….

2022年9月2日
0181
• #### Bert文本分类实战（附代码讲解）

目录 一、Bert简介 1.1 Transformer模型 1.2 Bert模型 二、BERT的发展历程 2.1 One-Hot 编码 2.1.1 无法计算词相似度 2.1.2 S…

人工智能 2022年12月16日
060
• #### R语言VaR市场风险计算方法与回测、用Logit逻辑回归、Probit模型信用风险与分类模型

市场风险是指金融市场资产价格下跌或价格波动加剧可能造成的损失。 [En] Market risk refers to the possible losses caused by f…

2022年8月15日
088
• #### anaconda常用命令

*创建、激活、退出环境 &#xFF08;1&#xFF09;&#x521B;&#x5EFA;&#x865A;&#x62DF;&…

人工智能 2022年12月1日
060
• #### 微生物多样性数据分析（16S）

微生物多样性数据分析（16S） 9个可变区，10个保守区，扩增V3区、V4区、或者一起、或者V6、V9。 OTU(Operational taxonomic unit) OTU(o…

人工智能 2022年12月9日
071
• #### Machine Learning and Data Science (2): Introduction to pandas in Python

Creating a series series_name = pd.Series(["1", "2", "3"]) C…

人工智能 2022年12月4日
041
• #### 朴素贝叶斯算法和梯度提升树算法有什么联系和区别

你好，这篇文章咱们讨论一下关于「朴素贝叶斯算法和梯度提升树算法有什么联系和区别」的事情.. 机器学习是一种基于算法的数据分析学科，致力于设计和实现能够在给定数据的基础上自动完成某种…

人工智能 2023年3月13日
012
• #### model.train()和model.eval()的用法及model.eval()可能导致测试准确率的下降

问题导入： 一般我们在训练模型时会在前面加上：model.train()在测试模型时会在前面使用：model.eval()但是在某次使用网络测试模型时，训练准确率很高，但测试准确率…

人工智能 2022年11月13日
087
• #### 快速上手数据挖掘

一、数据挖掘的应用 数据挖掘是一项应用十分广泛的技术，它能够从历史数据中发掘出有用的规律，然后运用规律去做预测。比如在金融机构中通过挖掘历史用户信息和违约之间的规律进行风险预测，防…

人工智能 2022年12月10日
051
• #### 毕业设计 深度学习 机器视觉 人脸识别系统 – opencv python

文章目录 0 前言 1 机器学习-人脸识别过程 * 人脸检测 人脸对其 人脸特征向量化 人脸识别 2 深度学习-人脸识别过程 * 人脸检测 人脸识别 – + Metri…

人工智能 2022年12月13日
080

人工智能 2022年9月8日
0116
• #### VS2022下安装和配置OpenCV环境参数

网上OpenCV的安装配置教程一堆，本人参照并尝试了几个都有差错。自己整理并分享在VS2022下安装和配置OpenCV环境参数的笔记。（所用VS2022是官网社区版，OpenCV版…

人工智能 2022年11月20日
093
• #### 计算线性回归、指数回归公式

最近要计算线性回归、指数回归的公式。就整理下吧，以便帮助他人，少走弯路。 发现网上线性回归的资料还算详细，但是指数回归资料很少，还会误导人。 线性回归是利用数理统计中回归分析，来确…

人工智能 2022年12月9日
066