YOLOX 各功能模块代码解读(持续更新)

一.学习率

1.yolox warmcos 学习率

# 假设10个epoch,每个epoch有10个iters,
# warmup_epochs=2, no_aug_epochs=3,
# warmup_lr_start=0, min_lr_ratio=0.05
 
ys = []
for i in range(10*10):
    v = yolox_warm_cos_lr(
        lr=0.01,
        min_lr_ratio=0.0005,
        total_iters=10*10,
        warmup_total_iters=10*2,
        warmup_lr_start=0,
        no_aug_iter=10*3,
        iters=i,
    )
    ys.append(v)

在这里插入图片描述

结论是:
前(warmup_epochs) 2个epochs, 学习率从0->0.01(warmup_lr_start–>lr)
第3个epochs->第7个epochs, 学习率从0.01->0.0005 (lr—>min_lr_ratio)
最后(no_aug_epochs) 3个epochs, 学习率保持min_lr_ratio =0.0005

另外,
Exp里面,
self.basic_lr_per_img = 0.01 / 64.0,
trainer.py里面:
self.lr_scheduler = self.exp.get_lr_scheduler(
self.exp.basic_lr_per_img * self.args.batch_size, self.max_iter
)
所以训练时的最大学习率是:
lr = self.exp.basic_lr_per_img * self.args.batch_size = 0.01*batch_size / 64.0

import math
from torch.utils.tensorboard import SummaryWriter


def yolox_warm_cos_lr(lr, min_lr, total_iters, warmup_total_iters, warmup_lr_start, no_aug_iter, iters):
    # 1e-4     1e-6      100               3               1e-5             5       epoch
    if iters <= warmup_total_iters:  # 当前epoch小于等于3
        # lr = (lr - warmup_lr_start) * iters / float(warmup_total_iters) + warmup_lr_start
        lr = (lr - warmup_lr_start) * pow(iters / float(warmup_total_iters), 2) + warmup_lr_start
    elif iters >= total_iters - no_aug_iter:  # 当前epoch大于等于95
        lr = min_lr
    else:  # 当前epoch介于4-94之间的
        lr = min_lr + 0.5 * (lr - min_lr) * (
                1.0 + math.cos(
            math.pi * (iters - warmup_total_iters) / (total_iters - warmup_total_iters - no_aug_iter))
        )
    return lr


lr, min_lr, total_iters, warmup_total_iters, warmup_lr_start, no_aug_iter = 1e-4, 1e-6, 100, 3, 1e-5, 5

writer = SummaryWriter(logdir='logaaa',comment='MyNet')
for iters in range(100):
    y = yolox_warm_cos_lr(1e-4, 1e-6, 100, 3, 1e-5, 5, iters)
    writer.add_scalar("lr_cos", y, iters)
writer.close()

在这里插入图片描述

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

德卡先生的信箱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值