当前位置: 首页 > news >正文

模具加工东莞网站建设技术支持衡水专业制作网站

模具加工东莞网站建设技术支持,衡水专业制作网站,企业网站建设招标,永久免费建个人主页scheduler简介 scheduler(调度器)是一种用于调整优化算法中学习率的机制。学习率是控制模型参数更新幅度的关键超参数,而调度器根据预定的策略在训练过程中动态地调整学习率。 优化器负责根据损失函数的梯度更新模型的参数,而调度器则负责调整优化过程中使用的特定参数,通…

scheduler简介

scheduler(调度器)是一种用于调整优化算法中学习率的机制。学习率是控制模型参数更新幅度的关键超参数,而调度器根据预定的策略在训练过程中动态地调整学习率。
优化器负责根据损失函数的梯度更新模型的参数,而调度器则负责调整优化过程中使用的特定参数,通常是学习率。调度器通过调整学习率帮助优化器更有效地搜索参数空间,避免陷入局部最小值,并加快收敛速度。
调度器允许实现复杂的训练策略,学习率预热、周期性调整或突然降低学习率,这些策略对于优化器的性能至关重要。

学习率绘图函数
我们设定一简单的模型,得带100 epoch,绘制迭代过程中loss的变化

import os
import torch
from torch.optim import lr_scheduler
import matplotlib.pyplot as plt# 模拟训练过程,每循环一次更新一次学习率
def get_lr_scheduler(optim, scheduler, total_step):'''get lr values'''lrs = []for step in range(total_step):lr_current = optim.param_groups[0]['lr']lrs.append(lr_current)if scheduler is not None:scheduler.step()return lrs
# 将损失函数替换为学习率,模拟根据损失函数进行自适调整的学习率变化 
def get_lr_scheduler1(optim, scheduler, total_step):'''get lr values'''lrs = []for step in range(total_step):lr_current = optim.param_groups[0]['lr']lrs.append(lr_current)if scheduler is not None:scheduler.step(lr_current)return lrs

余弦拟退火(CosineAnnealingLR)

torch.optim.lr_scheduler.CosineAnnealingLR(optimizer, T_max, eta_min=0, last_epoch=-1, verbose=‘deprecated’)
cosine形式的退火学习率变化机制,顾名思义,学习率变化曲线是cos形式的,定义一个正弦曲线需要四个参数,周期、最大最小值、相位。其中周期=2T_max,eta_min周期函数的峰值,last_epoch表示加载模型的迭代步数,定义cos曲线的初始位置,当它为-1时,参数不生效,初始相位就是0,否则就是last_epochT_max/pi。
在这里插入图片描述当 last_epoch=-1 时,将初始学习率设置为学习率。请注意,由于计划是递归定义的,学习率可以同时被此调度程序之外的其他操作者修改。如果学习率仅由这个调度程序设置,那么每个步骤的学习率变为:
\begin{aligned}
\eta_t = \eta_{min} + \frac{1}{2}(\eta_{max} - \eta_{min})\left(1 +
\cos\left(\frac{T_{cur}}{T_{max}}\pi\right)\right)
\end{aligned}

def plot_cosine_aneal():plt.clf()optim = torch.optim.Adam([{'params': model.parameters(),'initial_lr': initial_lr}], lr=initial_lr)scheduler = lr_scheduler.CosineAnnealingLR(optim, T_max=40, eta_min=0.2)lrs = get_lr_scheduler(optim, scheduler, total_step)plt.plot(lrs, label='eta_min=0.2,,last epoch=-1')# if not re defined, the init lr will be lrs[-1]optim = torch.optim.Adam([{'params': model.parameters(),'initial_lr': initial_lr}], lr=initial_lr)scheduler = lr_scheduler.CosineAnnealingLR(optim, T_max=40, eta_min=0.2, last_epoch=10)lrs = get_lr_scheduler(optim, scheduler, total_step)plt.plot(lrs, label='eta_min=0.2,,last epoch=10')# eta_minscheduler = lr_scheduler.CosineAnnealingLR(optim, T_max=40, eta_min=0.5, last_epoch=10)lrs = get_lr_scheduler(optim, scheduler, total_step)plt.plot(lrs, label='eta_min=0.5,,last epoch=10')plt.title('CosineAnnealingLR')plt.legend()plt.show()
plot_cosine_aneal()

在这里插入图片描述

LambdaLR

torch.optim.lr_scheduler.LambdaLR(optimizer, lr_lambda = function, last_epoch=- 1, verbose=False)
LambdaLR 可以根据用户定义的 lambda 函数或 lambda 函数列表来调整学习率。当您想要实现标准调度器未提供的自定义学习率计划时,这种调度器特别有用。
Lambda 函数是使用 Python 中的 lambda 关键字定义的小型匿名函数。
Lambda 函数应该接受一个参数(周期索引)并返回一个乘数,学习率将乘以这个乘数。

def plot_lambdalr():plt.clf()# Lambda1optim = torch.optim.Adam(model.parameters(), lr=initial_lr)scheduler = lr_scheduler.LambdaLR(optim, lr_lambda=lambda step: step%40/100.)lrs = get_lr_scheduler(optim, scheduler, total_step)plt.plot(lrs,label='lambda step: step%40/100.')#Lambda2optim = torch.optim.Adam(model.parameters(), lr=initial_lr)scheduler = lr_scheduler.LambdaLR(optim, lr_lambda=lambda step: max(0, 1 - step / 100))lrs = get_lr_scheduler(optim, scheduler, total_step)plt.plot(lrs,label='lambda step: max(0, 1 - step / 100)')plt.title('LambdaLR')plt.legend()plt.show()plot_lambdalr()

在这里插入图片描述

多阶段学习率调度(MultiplicativeLR)

torch.optim.lr_scheduler.MultiplicativeLR(optimizer, lr_lambda, last_epoch=-1, verbose=‘deprecated’)
学习率在达到特定的epoch时降低,将每个参数组的学习率乘以指定函数给出的因子,通常用于在训练的不同阶段使用不同的学习率。当 last_epoch=-1 时,将初始学习率设置为学习率。

def plot_multiplicativelr():plt.
http://www.yayakq.cn/news/973070/

相关文章:

  • 网站建设定金合同天津网站建设推广
  • 建设公寓租房信息网站用户浏览网站的方式
  • 东莞技术支持网站建设专家网页加速器浏览器
  • 广州网站建昆明网站建设论坛
  • 博客社区类网站模板珠江新城越秀金融大厦
  • app网站制作要多少费用做片头片尾比较好的网站
  • 企业网站2000元长春建设平台网站的公司吗
  • 微信哪里可以做视频网站简短的软文范例
  • 买网站服务器吗数据模型搭建工具
  • 福建漳发建设有限公司网站私人家庭影院5577
  • 网站建设可行性方案模板asp网站助手
  • 网站如何设置域名广州网络推广培训机构
  • 清远做网站的公司郓城网站建设公司
  • 宜宾网站设计自己怎么设计公主裙
  • 加强校园网站建设门店管理系统免费版
  • 怎么用网页制作一个网站wordpress函数手册 pdf
  • 毕设做网站工作量够吗长沙 网站seo服务 网络服务
  • 兰州网站建设lzwlxc怎么做国外网站
  • 中国最受欢迎的网站省示范院校建设网站
  • 个人可以做网站导航办公空间设计理念
  • 微盟网站模板正规的源码交易平台
  • 制作网站流程做汤的网站
  • 我国网站开发mcms怎么做网站
  • 小学的门户网站建设广告优化师发展前景
  • 养殖业网站模板如何建立自己的公司
  • 网站建设 发布手机网站导航插件
  • 南京网站设计建设应用软件下载大全
  • 西安关键词网站排名普集网站开发
  • 政务网站建设索引广东建设工程质量安全协会网站
  • 免费自助建站系统电商网站建设任务分解结构