Pytorch 自用 Scheduler 分享

✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。
🍎个人主页:小嗷犬的个人主页
🍊个人网站:小嗷犬的技术小站
🥭个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。


本文目录

    • Scheduler
      • Warm-up + CosineAnnealingLR
      • Warm-up + ExponentialLR
      • Warm-up + StepLR
    • 可视化对比
    • Pytorch 模板


Scheduler

Warm-up + CosineAnnealingLR

import mathwarm_up_iter = 10
T_max = 50
lr_max = 0.1
lr_min = 1e-5def WarmupCosineAnnealingLR(cur_iter):if cur_iter < warm_up_iter:return (lr_max - lr_min) * (cur_iter / warm_up_iter) + lr_minelse:return lr_min + 0.5 * (lr_max - lr_min) * (1 + math.cos((cur_iter - warm_up_iter) / (T_max - warm_up_iter) * math.pi))

warm_up_iter 步,学习率从 lr_min 线性增加到 lr_max;后 T_max - warm_up_iter 步,学习率按照余弦退火从 lr_max 降到 lr_min

WarmupCosineAnnealingLR

Warm-up + ExponentialLR

import mathwarm_up_iter = 10
T_max = 50
lr_max = 0.1
lr_min = 1e-5def WarmupExponentialLR(cur_iter):gamma = math.exp(math.log(lr_min / lr_max) / (T_max - warm_up_iter))if cur_iter < warm_up_iter:return (lr_max - lr_min) * (cur_iter / warm_up_iter) + lr_minelse:return lr_max * gamma ** (cur_iter - warm_up_iter)

warm_up_iter 步,学习率从 lr_min 线性增加到 lr_max;后 T_max - warm_up_iter 步,学习率按照指数衰减从 lr_max 降到 lr_min

WarmupExponentialLR

Warm-up + StepLR

import mathwarm_up_iter = 10
T_max = 50
lr_max = 0.1
lr_min = 1e-5
step_size = 3def WarmupStepLR(cur_iter):gamma = math.exp(math.log(lr_min / lr_max) / ((T_max - warm_up_iter) // step_size))if cur_iter < warm_up_iter:return (lr_max - lr_min) * (cur_iter / warm_up_iter) + lr_minelse:return lr_max * gamma ** ((cur_iter - warm_up_iter) // step_size)

warm_up_iter 步,学习率从 lr_min 线性增加到 lr_max;后 T_max - warm_up_iter 步,学习率按照指数衰减从 lr_max 降到 lr_min,每 step_size 步衰减一次。

WarmupStepLR

可视化对比

Learning Rate Schedulers

Pytorch 模板

import math
import torch
from torch import nn, optim
from torch.optim.lr_scheduler import LambdaLRwarm_up_iter = 10
T_max = 50
lr_max = 0.1
lr_min = 1e-5def WarmupCosineAnnealingLR(cur_iter):if cur_iter < warm_up_iter:return (lr_max - lr_min) * (cur_iter / warm_up_iter) + lr_minelse:return lr_min + 0.5 * (lr_max - lr_min) * (1 + math.cos((cur_iter - warm_up_iter) / (T_max - warm_up_iter) * math.pi))model = nn.Linear(1, 1)
optimizer = optim.AdamW(model.parameters(), lr=0.1)
scheduler = LambdaLR(optimizer, lr_lambda=WarmupCosineAnnealingLR)for epoch in range(T_max):train(...)valid(...)scheduler.step()

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

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

相关文章

智慧公厕与智慧驿站:城市未来公共厕所的革命性升级

在当今社会&#xff0c;智慧公厕已经成为城市建设中一个备受关注的话题。智慧公厕究竟是什么&#xff1f;它代表了未来式的公共厕所&#xff0c;在使用方式、服务方式、管理方式、协作方式上均是变革式的升级。随着科技的进步和城市化的发展&#xff0c;智慧公厕的未来发展趋势…

机器学习系列-生成模型和判别模型

文章目录 前言1.生成模型和判别模型2.常见的生成模型和判别模型3.判别式模型和生成式模型的优缺点 前言 监督学习模型可以分为生成模型(generative model)和判别模型(discriminative model) 1.生成模型和判别模型 判别模型由数据直接学习决策函数 f ( x ) f(x) f(x)或者条件…

windows前后端项目部署

装好windows虚拟机 1.远程连接 计算机右击属性&#xff0c;高级防火墙设置&#xff0c;远程连接服务允许 2.安装jdk,tomcat&#xff0c;解压工具 把安装包拖进去 双击安装解压软件 jdk安装 双击安装 配置环境变量&#xff08;复制jdk路径&#xff09; 计算机右击属性高级…

Vue packages version mismatch 报错解决

问题 npm run dev 运行项目的过程中&#xff0c;报错 Vue packages version mismatch 解决方法 根据报错不难看出是 vue 与 vue-template-compiler 版本产生了冲突&#xff0c;vue 与 vue-template-compiler 的版本是需要匹配的。所以解决的办法就是先修改其中一个的版本将 v…

vDPA测试环境搭建

要求&#xff1a; 运行 Linux 发行版的计算机。本指南使用 CentOS 9-stream&#xff0c;但对于其他 Linux 发行版&#xff0c;特别是对于 Red Hat Enterprise Linux 7&#xff0c;命令不应有重大变化。 具有 sudo 权限的用户 ~ 主目录中有 25 GB 的可用空间 至少 8GB 内存 …

抖音视频提取软件使用功能|抖音视频下载工具

我们的抖音视频提取软件是一款功能强大、易于操作的工具&#xff0c;旨在解决用户在获取抖音视频时需要逐个复制链接、下载的繁琐问题。我们的软件支持通过关键词搜索和分享链接两种方式获取抖音视频&#xff0c;方便用户快速找到自己感兴趣的内容。 主要功能模块&#xff1a;…

华为 OD 一面算法原题

2.2 亿彩票公布调查结果 昨天&#xff0c;闹得沸沸扬扬的《10 万中 2.2 亿》的彩票事件&#xff0c;迎来了官方公告。 简单来说&#xff0c;调查结果就是&#xff1a;一切正常&#xff0c;合规合法。 关于福利彩票事件&#xff0c;之前的推文我们已经分析过。 甚至在后面出现《…

Jetson Xavier NX 与笔记本网线连接 ,网络共享,ssh连接到vscode

Jetson Xavier NX 与笔记本网线连接 &#xff0c;网络共享&#xff0c;ssh连接到vscode Jetson Xavier NX桌面版需要连接显示屏、鼠标和键盘&#xff0c;操作起来并不方便&#xff0c;因此常常需要ssh远程连接到本地笔记本电脑&#xff0c;这里介绍一种连接方式&#xff0c;通过…

FreeRtos Queue(三)

本篇主要分析向队列中发送消息 xQueueGenericSend 这个函数。 大致分为两个逻辑&#xff1a; 1、当队列没满的时候的处理 2、当队列没满的时候的处理 主意&#xff1a;整个xQueueGenericSend是在for(;;)中处理的 一、队列没满的case 队列的数据结构图可参考&#xff1a;F…

【Linux进阶之路】Socket —— “UDP“ “TCP“

文章目录 一、再识网络1. 端口号2. 网络字节序列3.TCP 与 UDP 二、套接字1.sockaddr结构2.UDP1.server端1.1 构造函数1.2 Init1.3 Run 2.客户端1.Linux2.Windows 3.TCP1. 基本接口2. 客户端3. 服务端1.版本12.版本23.版本34.版本4 三、守护进程尾序 温馨提示&#xff1a;文章较…

C#与VisionPro联合开发——INI存储和CSV存储

1、INI存储 INI 文件是一种简单的文本文件格式&#xff0c;通常用于在 Windows 环境中存储配置数据。INI 文件格式由一系列节&#xff08;section&#xff09;和键值对&#xff08;key-value pairs&#xff09;组成&#xff0c;用于表示应用程序的配置信息。一个典型的 INI 文…

开放词汇场景图生成Open vocabulary scene graph generation

文章目录 1. 【2022ECCV】Towards Open-vocabulary Scene Graph Generation with Prompt-based Finetuning摘要和结论引言模型框架实验 2. 【2023CVPR】Learning to Generate Language-supervised and Open-vocabulary Scene Graph using Pre-trained Visual-Semantic Space摘要…