pytorch 自定义学习率更新 Poly

Poly

学习率调整策略需要继承_LRScheduler类,该类包含三个重要属性和两个重要方法

学习率与batch-size的关系

一般来说,batch-size的大小一般与学习率的大小成正比。batch-size越大一般意味着算法收敛方向的置信度越大,也可以选择较大的学习率来加快收敛速度。而小的batch-size规律性较差,需要小的学习率保证不出错。在显存允许的情况下,选择大的batch-size。

预设规则的学习率变化法:StepLR、Multi-StepLR

自适应的学习率变化法:ExponentialLR,CosineAnnealingLR,LambdaLR,OneCycleLR,Poly

Poly学习率调整策略的优点包括:

更好的泛化能力:Poly学习率调整策略可以在训练后期逐渐降低学习率,避免过拟合,提高模型的泛化能力。

对超参数不敏感:Poly学习率调整策略的性能不太受超参数的影响,相对比较稳定。

计算量较小:Poly学习率调整策略的计算量相对较小,不会影响训练速度。

Poly学习率调整策略的缺点包括:

收敛速度较慢:Poly学习率调整策略在训练初期学习率较低,收敛速度较慢。

不适用于所有模型:Poly学习率调整策略可能不适用于所有类型的模型,需要根据具体情况进行选择。

code 如下

python 复制代码
from torch.optim.lr_scheduler import _LRSchedule
from torch.optim.optimizer import Optimizer
// 定义
class PolyLR(_LRScheduler):
    def __init__(self,optimizer,max_iters,power=0.9,last_epoch=-1,min_lr=1e-6):
        # super(PolyLR,self).__init__(optimizer,last_epoch)
        self.power = power
        self.max_iters = max_iters
        self.min_lr = min_lr
        super(PolyLR, self).__init__(optimizer, last_epoch)
    def get_lr(self) -> float:
        return [ max( base_lr * ( 1 - self.last_epoch/self.max_iters )**self.power, self.min_lr)
                for base_lr in self.base_lrs]
model = AlexNet(num_classes=2)
optimizer = torch.optim.Adam(model.parameters(),lr=0.1)
scheduler = PolyLR(optimizer, max_iters=150, power=0.9, last_epoch=-1, min_lr=1e-6)

使用方法和位置

参考链接:1 https://blog.csdn.net/shengweiit/article/details/130649229

2 https://blog.csdn.net/qq_31580989/article/details/121491181

相关推荐
sell-cloud16 分钟前
Prompt Engineering要凉了?Fable 5.5能“猜“意图,但银行正在封杀AI Agent——企业AI的真正护城河是什么
人工智能·prompt
Navicat中国2 小时前
Navicat 18 内置 AI 助手让数据库开发从繁琐操作迈向智能协作
大数据·人工智能·数据库开发
4SAPI2 小时前
多模型请求路由怎么设计?成本、速度和能力如何平衡
人工智能·python·gateway·php
魔乐社区2 小时前
翼芯・智算测试与适配优化专区,让国产算力“选得准、跑得通、用得好“
人工智能·开源·大模型
XCDoris4 小时前
郴州logo设计机构
大数据·人工智能·python
Goboy4 小时前
一个人带三个Agent,我用全新TRAE从0到1搭了个资讯周刊站
人工智能·trae
俊哥V4 小时前
每日 AI 研究简报 · 2026-10-19
人工智能·ai
AI_AGENT_DEV_AI5 小时前
AI英语教培智能体的开发
人工智能
物联网软硬件开发-轨物科技5 小时前
【技术白皮书】光伏清检一体化机器人系统解决方案技术白皮书
大数据·运维·网络·人工智能·机器人
海宇数据5 小时前
零信任架构实战:基于海宇网上踪迹欺诈行为识别构建自动化信贷资信评估网关
运维·人工智能·架构·自动化