「解析」Cosine-Warmup 学习率策略

news2024/9/21 22:35:33

参考论文:SGDR: Stochastic Gradient Descent with Warm Restarts
Bag of Tricks for Image Classification with Convolutional Neural Networks

梯度下降算法需要我们设置一个值,用来控制权重更新幅度,我们将其称之为学习率。它是控制模型学习速度的超参数。学习率越小,loss的变化越慢。虽然使用较低的学习速率可以确保不会错过任何局部极小值,但这也意味着模型收敛速度较慢。

因此,在训练前期,权重处于随机初始化状态,我们可以设置一个相对较大的学习速率以加快收敛速度。在训练后期,权重接近最优值,使用相对较小的学习率可以防止模型在收敛的过程中发生震荡。

Cosine 学习率下降策略

Cosine学习率策略也就应运而生,Cosine学习率策略指的是学习率在训练的过程中,按照余弦的曲线变化。在整个训练过程中,Cosine学习率衰减策略使得在网络在训练初期保持了较大的学习速率,在后期学习率会逐渐衰减至0,其收敛速度相对较慢,但最终收敛精度较好。下图比较了两种不同的学习率衰减策略piecewise decay和cosine decay。

在这里插入图片描述

学习率预热策略

模型刚开始训练时,模型权重是随机初始化的,此时若选择一个较大的学习率,可能造成模型训练不稳定的问题,因此学习率预热的概念被提出,用于解决模型训练初期不收敛的问题。

学习率预热指的是将学习率从一个很小的值开始,逐步增加到初始较大的学习率。它可以保证模型在训练初期的稳定性。使用学习率预热策略有助于提高图像分类任务的准确性。在DBNet中,实验表明该策略也是有效的。学习率预热策略与Cosine学习率结合时,学习率的变化趋势如下代码演示。

在这里插入图片描述

# Paddle 版本
from ppocr.optimizer import build_lr_scheduler
import numpy as np
import matplotlib.pyplot as plt

# 咱们也可以看看warmup_epoch为2时的效果
lr_config = {'name': 'Cosine', 'learning_rate': 0.1, 'warmup_epoch': 0}
epochs = 20 # config['Global']['epoch_num']
iters_epoch = 100  # len(train_dataloader)
lr_scheduler=build_lr_scheduler(lr_config, epochs, iters_epoch)

iters = 0
lr = []
for epoch in range(epochs):
    for _ in range(iters_epoch):
        lr_scheduler.step() # 对应 https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.4/tools/program.py#L262
        iters += 1
        lr.append(lr_scheduler.get_lr())

x = np.arange(iters,dtype=np.int64)
y = np.array(lr,dtype=np.float64)

plt.figure(figsize=(15, 6))
plt.plot(x,y,color='red',label='lr')

plt.title(u'Cosine lr scheduler with Warmup')
plt.xlabel(u'iters')
plt.ylabel(u'lr')

plt.legend()

plt.show()

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

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

相关文章

深入解析视频美颜SDK:开发直播平台主播专用的美颜工具教学

本篇文章,笔者将深入解析视频美颜SDK的原理与应用,帮助开发者打造适用于直播平台的专业美颜工具。 一、视频美颜SDK的基础原理 视频美颜SDK其核心技术包括人脸检测、面部特征点识别、图像增强和特效应用等。 二、视频美颜SDK的开发流程 环境搭建 首先…

05_Shell索引数组

05_Shell索引数组 数组定义 #!/bin/basharr(1 2 3 "www.baidu.com")获取数组元素 #!/bin/basharr(1 2 3 "www.baidu.com")#通过下表获取元素 下标从1开始 ${arr[1]}#获取数组所有元素 ${arr[*]} 或者 ${arr[]}#获取数组长度 ${#arr[*]} 或者 ${#arr[*]}#获…

数据采集:如何使用八爪鱼采集BOSS直聘职位数据

大家好,我是水哥! 今天给大家分享的是数据采集实战:使用「八爪鱼」第三方工具来采集 BOSS 直聘上的数据分析职位数据。 接下来,我们详细看一看。 不重复造轮子 在工作中,我们一定要形成一个认知,能用第…

仕考网:非应届生可以参加公务员考试吗?

往届生有资格参加国家公务员考试。根据《公务员录用规定》,只要满足一系列资格条件,就符合报考资格。 1、年龄在18到35岁之间。 2、具备良好的品德,身体健康且心理素质稳定,拥有拟任职位所需的工作能力。 3、至少为大学专科以上…

第十七章 自定义ExceptionFilter

在nestjs中,Exception Filter(异常过滤器)是用于处理全局异常的一种机制。它可以捕获应用程序中发生的异常,并对其进行统一处理。本章我们来学习自定义Exception Filter。 首先 先创建一个新的项目: nest new excepti…

Python requests爬虫

Python的requests库是一个强大且易于使用的HTTP库,用于发送HTTP请求和处理响应。它是Python中最受欢迎的网络爬虫框架之一,被广泛用于从网页中提取数据、爬取网站和进行API调用。 使用requests库,你可以轻松地发送各种HTTP请求,包…

buuctf zip伪加密

[BUUCTF]zip伪加密_buuctf zip伪加密-CSDN博客 借鉴以上博客 010打开 这两个位置是计算机判断是否为加密文件 两个都为09(奇数) 一般为真加密 两个为偶数(00)不加密 一个奇数一个偶数,伪加密 (注意,是一般) 这道题两个奇数,以为是真加密 暴力解码一下,解不出 看到题目提…

支持老挝语语音识别、老挝文字OCR识别的《老挝语翻译通》有入门发音教程和大量词汇可以学习!

对于泰国越南等国家大家相必非常熟悉,但是对于同在东南亚的老挝国家,大家可能一时半会还想不起来。 如果你正在学习老挝语或者准备去探索老挝这个国家,那么你从现在开始就要掌握一些基本的老挝语单词和句子了,《老挝语翻译通》Ap…

道路标志线检测数据集(包括VOC/Yolo格式,包括yolov8训练好的模型)

道路标志线检测是指使用计算机视觉技术来识别和提取道路上的标志线(如车道线、停止线、人行横道线等)的位置和形状。这种检测技术广泛应用于自动驾驶系统、驾驶辅助系统(ADAS)、交通监控系统等领域。 本数据集包括:数…

openfoam生成的非均匀固体Solid数据分析、VTK数据格式分析、以及paraview官方用户指导文档和使用方法

一、openfoam生成的非均匀固体Solid数据分析 对于Solid/dealii-output文件,固体的数据文件, # vtk DataFile Version 3.0 #This file was generated by the deal.II library on 2024/7/10 at 9:46:15 ASCII DATASET UNSTRUCTURED_GRIDPOINTS 108000 do…

用Racket做一个拼图游戏——4 实现工具

4 实现工具 思路理清楚了,接下来就一个一个功能实现。在阐述实现功能的编程过程中,会延伸讲解编程思路、相关的Racket函数及相关知识点,力图达到在实践中的学习目的。 在编程实现过程中,首先实现图片操作功能,再通过…

AVLTree

目录 一、概念 二、插入 1.KV模型的AVL树结点定义 2.插入 1.按照BST的规则先插入 2.更新平衡因子 3.旋转的4种情况 1.左单旋 2.右单旋 3.左右双旋 4.右左双旋 三、AVL树的判断 假设程序出了问题,怎么分析 一、概念 二叉搜索树所具有的问题: 将排…

松下的台灯值得入手吗?书客|飞利浦护眼台灯真实测评PK

在追求高效阅读与舒适生活的今天,一盏好的台灯不仅是照明的工具,更是呵护双眼的伴侣。它不仅能够提供额外的光线,还能减少眼睛疲劳,提高我们的工作和学习效率。随着市场的不断发展,护眼台灯品牌款式愈发丰富。因此我们…

U-net和U²-Net网络详解

目录 U-Net: Convolutional Networks for Biomedical Image Segmentation摘要U-net网络结构pixel-wise loss weight U-Net: Going Deeper with Nested U-Structure for Salient Object Detection摘要网络结构详解整体结构RSU-n结构RSU-4F结构saliency map fusion module -- 显著…

怎么选择渲染农场?渲染100邀请码1a12

市面上的渲染农场那么多,到底选择哪一个呢?这次我给大家提供几个指标,以供参考。 1、机器性能:农场的机器性能会直接影响到渲染速度,速度越快项目就能越早完成,所以机器性能是重要的衡量指标。2、渲染价格…

高效应对网络攻击,威胁检测响应(XDR)平台如何提升企业应急响应能力

在数字化时代,企业面临的网络攻击威胁持续增加,如恶意软件、勒索软件、钓鱼攻击、DDoS攻击等。这些威胁不仅危及企业数据安全、系统稳定,还损害了品牌形象和市场信任。随着云计算、大数据、物联网的广泛应用,企业网络攻击面扩大&a…

领夹麦克风哪个品牌好,哪个麦克风好,热门无线麦克风品牌推荐

​无线领夹麦克风是现代沟通的重要工具,它不仅提高了语音交流的清晰度,还展现了使用者的专业形象。随着技术发展,这些麦克风已经变得更加轻便、时尚,易于使用。在各种场合,如演讲、教育和网络直播中,当然&a…

docker-compose构建、运行多容器简介

(1)准备依赖的镜像,包括mariadb、jdk1.8、nginx,配置docker-compose.yml文件 services:mariadb:image: mariadbports:- "3314:3306"environment:- MARIADB_ROOT_PASSWORD123456volumes:- ./mysql:/var/lib/mysqlnetwor…

视频调色的技巧和方法 视频调色的操作步骤 视频调色用什么软件好免费 会声会影下载免费中文版

学会视频调色,就等于掌握了剪辑艺术的密码。视频调色不是为了画面好看,而是通过精心构思的色彩参数,向观众传达作品的情绪和内涵。普通剪辑师与剪辑高手之间的差距,就在于能否领悟视频调色的真谛。 一、视频调色有什么用 掌握混…

SpringBoot配置flyway

背景 目前我们的项目代码都会交由Git、SVN等版本管理工具进行管理,但是我们的sql脚本,尤其是各类ddl脚本并没有进行版本的管理(python的web框架Django默认就提供了类似的工具,从一开始就鼓励开发者通过版本管理的方式进行数据库的…