深度学习基础知识 学习率调度器的用法解析

深度学习基础知识 学习率调度器的用法解析

  • 1、自定义学习率调度器**:**torch.optim.lr_scheduler.LambdaLR
  • 2、正儿八经的模型搭建流程以及学习率调度器的使用设置

1、自定义学习率调度器**:**torch.optim.lr_scheduler.LambdaLR

在这里插入图片描述

实验代码:

import torch
import torch.nn as nndef lr_lambda(x):return x*2net=nn.Sequential(nn.Conv2d(3,16,3,1,1))optimizer=torch.optim.SGD(net.parameters(),lr=0.01,momentum=0.9)lr_scheduler=torch.optim.lr_scheduler.LambdaLR(optimizer,lr_lambda=lr_lambda)for _ in range(10):optimizer.step()lr_scheduler.step()print(optimizer.param_groups[0]['lr'])

打印结果:
在这里插入图片描述
分析数据变化如下图所示:
在这里插入图片描述

2、正儿八经的模型搭建流程以及学习率调度器的使用设置

在这里插入图片描述
代码:

import torch
import torch.nn as nn
import numpy as npdef create_lr_scheduler(optimizer,num_step:int,epochs:int,warmup=True,warmup_epochs=1,warmup_factor=1e-3):assert num_step>0 and epochs>0if warmup is False:warmup_epochs=0def f(x):"""根据step数,返回一个学习率倍率因子,注意在训练开始之前,pytorch会提前调用一次create_lr_scheduler.step()方法"""if warmup is True and x <= (warmup_epochs * num_step):alpha=float(x) / (warmup_epochs * num_step)# warmup过程中,学习率因子(learning rate factor):warmup_factor -----> 1return warmup_factor * (1-alpha) + alphaelse:# warmup后,学习率因子(learning rate factor):warmup_factor -----> 0return (1-(x - warmup_epochs * num_step) / (epochs-warmup_epochs * num_step)) ** 0.9return torch.optim.lr_scheduler.LambdaLR(optimizer,lr_lambda=f)net=nn.Sequential(nn.Conv2d(3,16,1,1))
optimizer=torch.optim.SGD(net.parameters(),lr=0.01,momentum=0.9)lr_scheduler=create_lr_scheduler(optimizer=optimizer,num_step=5,epochs=20,warmup=True)image=(np.random.rand(1,3,64,64)).astype(np.float32)
image_tensor=torch.tensor(image.copy(),dtype=torch.float32)
print(image.dtype)for epoch in range(20):net.train()predict=net(image_tensor)optimizer.zero_grad()optimizer.step()lr_scheduler.step()print(optimizer.param_groups[0]['lr'])   # 打印学习率变化情况

在这里插入图片描述

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

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

相关文章

31 数据分析(中)numpy介绍

文章目录 工具excelTableauPower Queryjupytermatplotlibnumpy安装导入包快速掌握&#xff08;bushi&#xff09;array和list的相互转化 np的range多维数组的属性array的改变形状array升降维度array内元素的类型数和array的运算array之间的加减法认识轴切片条件与逻辑修改值app…

多测师肖sir_高级金牌讲师_python之作业006

&#xff08;已做)1、求出1 / 1 1 / 3 1 / 5……1 / 99的和 (1分之一1分之三1分支5…) 方法1&#xff1a; sum 0 for s in range(1,101,2): sum 1/s print(sum) 方法2&#xff1a; i1 sum0 while i<99: sum1/i i2 print(sum) 方法3&#xff1a; list1 [1/x for x i…

【业务功能篇 131】23种设计模式介绍

第一章 设计模式概述 1.1 代码质量好坏如何评价? 要想学习设计模式呢 我们就必须搞清楚设计模式到底在我们的编程过程中起到了怎样的作用,在编程世界中它处在一个什么样的位置,它到底是一种抽象的设计思想,还是一套具体的落地方案. 在学习设计模式之前呢 我们需要了解一下 代…

【C语言】文件的操作与文件函数的使用(详细讲解)

前言&#xff1a;我们在学习C语言的时候会发现在编写一个程序的时候&#xff0c;数据是存在内存当中的&#xff0c;而当我们退出这个程序的时候会发现这个数据不复存在了&#xff0c;因此我们可以通过文件把数据记录下来&#xff0c;使用文件我们可以将数据直接存放在电脑的硬盘…

【运维笔记】Docker 部署Kibana-7.4.0(在线Docker版)

Docker 部署Kibana-7.4.0&#xff08;在线Docker版&#xff09; 一、准备工作&#xff1a; Centos 7.5 安装 Docker-24.0.6 详细步骤&#xff08;避坑版&#xff09;&#xff1a; https://blog.csdn.net/seesun2012/article/details/133674191注意1&#xff1a;本文的命令使用…

C语言:选择+编程(每日一练Day9)

目录 选择题&#xff1a; 题一&#xff1a; 题二&#xff1a; 题三&#xff1a; 题四&#xff1a; 题五&#xff1a; 编程题&#xff1a; 题一&#xff1a;自除数 思路一&#xff1a; 题二&#xff1a;除自身以外数组的乘积 思路二&#xff1a; 本人实力有限可能对…

时间提醒软件哪个好用?规划时间管理用哪一款提醒工具

在现代繁忙的工作生活中&#xff0c;时间成了我们最宝贵的资源之一。在时间快速流失的时代&#xff0c;我们需要一款能够有效管理工作计划的软件&#xff0c;特别是在电脑上进行记录和提醒。敬业签&#xff0c;作为一款值得信赖的时间管理工具&#xff0c;为我们的工作提供了高…

一文带你简单了解一下堡垒机是干嘛的!

随着国家对网络安全的重视&#xff0c;随着等保政策的落地执行&#xff0c;越来越多的企业知道了堡垒机。但对于堡垒机的作用还不是很了解&#xff0c;很多人在问&#xff0c;堡垒机是干嘛的、这里我们小编就跟大家来简单唠唠。 首先我们来看看什么是堡垒机&#xff1f; 堡垒…

基于YOLO算法与intel深度相机三维测量(工件尺寸和物体尺寸)

目录 1.简介 1.1 intel D4系列深度相机 (D455) 1.2 yolo算法 2.功能实现 2.1构思&#xff1a; 2.2 主代码 这篇文章还是接着前面的几篇文章的项目延申&#xff0c;这个是最初的方案&#xff0c;因为太贵被否了。 1.简介 1.1 intel D4系列深度相机 (D455) Intel RealSen…

文心一言 VS 讯飞星火 VS chatgpt (111)-- 算法导论10.2 2题

二、用go语言&#xff0c;用一个单链表 L实现一个栈。要求操作 PUSH和 POP 的运行时间仍为 O(1)。 文心一言&#xff1a; 在 Go 语言中&#xff0c;我们可以用结构体来实现一个单链表&#xff0c;然后再用栈的相关操作。 以下是一个可能的实现方式&#xff1a; package mai…

进来了解实现官网搜索引擎的三种方法

做网站的目的是对自己的品牌进行推广&#xff0c;让越来越多的人知道自己的产品&#xff0c;但是如果只是做了一个网站放着&#xff0c;然后等着生意找上门来那是不可能的。在当今数字时代&#xff0c;实现官网搜索引擎对于提升用户体验和推动整体性能至关重要。搜索引擎可以帮…

4+1视图与UML

目录 逻辑视图过程视图开发视图物理视图&#xff08;部署视图&#xff09;用例视图 41视图&#xff0c;即逻辑视图&#xff0c;过程视图&#xff0c;实现视图&#xff0c;部署视图&#xff0c;用例视图。 为什么不用一个视图&#xff1f; 针对多个用户&#xff0c;即终端用户&a…