Lion优化器试验笔记

Lion优化器比AdamW和Adafactor更简单、内存高效,运行速度更快。它只需保存动量,降低内存占用,尤其适合大规模模型训练。在实验中,Lion的运行速度通常提高2-15%,并简化超参数设置。在人脸关键点和YOLOv8训练中,Lion展现出优于AdamW的性能,但数据量增大时需要注意学习率和衰减策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1 简单、内存高效、运行速度更快

超参设置

官方 pytorch代码:

自己的试验结果:


以下内置转自: Google Brain新提出的优化器“Lion”,效果要比Adam(W)更好 - 知乎

1 简单、内存高效、运行速度更快

与 AdamW 和各种自适应优化器需要同时保存一阶和二阶矩相比,Lion 只需要动量,将额外的内存占用减半。 这在训练大型模型和大Batch size时很有用。 例如,AdamW 需要至少 16 个 TPU V4 芯片来训练图像大小为 224、批量大小为 4,096 的 ViT-B/16,而 Lion 只需要8个。

另一个显而易见的好处是,由于 Lion 的简单性,Lion 在我们的实验中具有更快的运行时间(step/s),通常比 AdamW 和 Adafactor 提速 2-15%,具体取决于任务、代码库和硬件。

超参设置

  • Lion 很简单,与 AdamW 和 Adafact
### Lion Optimizer简介 Lion是一种新型的优化算法,在机器学习和深度学习框架中逐渐受到关注。它通过自适应调整参数更新的方式,旨在提高模型训练效率并减少内存消耗[^1]。 其核心思想在于利用动量项来加速收敛过程的同时引入一种新的权重衰减机制。这种机制能够更有效地控制过拟合现象的发生,并且相比传统的Adam或者RMSProp方法具有更快的计算速度以及更低的存储需求。 以下是实现lion optimizer的一个简单Python代码示例: ```python import torch class Lion(torch.optim.Optimizer): def __init__(self, params, lr=1e-4, betas=(0.9, 0.99), weight_decay=0.0): defaults = dict(lr=lr, betas=betas, weight_decay=weight_decay) super(Lion, self).__init__(params, defaults) @torch.no_grad() def step(self, closure=None): loss = None if closure is not None: with torch.enable_grad(): loss = closure() for group in self.param_groups: for p in filter(lambda p: p.grad is not None, group['params']): grad, state = p.grad.data, self.state[p] if 'step' not in state: state['step'] = 0 state['exp_avg'] = torch.zeros_like(p).detach() exp_avg = state['exp_avg'] beta1, beta2 = group['betas'] state['step'] += 1 # Update the moving average of gradient exp_avg.mul_(beta1).add_(grad.sign(), alpha=1 - beta1) update = exp_avg.abs().mul(group['lr']).sign() * exp_avg if group['weight_decay'] != 0: update.add_(p.data, alpha=group['weight_decay']) p.sub_(update) return loss ``` 上述代码定义了一个基本版本的Lion优化器类继承自PyTorch中的`Optimizer`基类。该实现包含了必要的超参数设置如学习率(`lr`)、贝塔系数(`betas`)及正则化强度(`weight_decay`)等功能选项。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

AI算法网奇

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

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

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

打赏作者

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

抵扣说明:

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

余额充值