1. Adam optimizer

adam优化器是经常使用到的模型训练时的优化器,但是在bert的训练中不起作用,具体表现是,模型的f1上不来。

2. AdamW

transformers 库实现了基于权重衰减的优化器,AdamW,这个优化器初始化时有6个参数,第一个是params,可以是torch的Parameter,也可以是一个grouped参数。betas是Adam的beta参数,b1和b2。eps也是Adam为了数值稳定的参数。correct_bias,如果应用到tf的模型上时需要设置为False

class AdamW(Optimizer):"""Implements Adam algorithm with weight decay fix as introduced in`Decoupled Weight Decay Regularization <https://arxiv.org/abs/1711.05101>`__.Parameters:params (:obj:`Iterable[torch.nn.parameter.Parameter]`):Iterable of parameters to optimize or dictionaries defining parameter groups.lr (:obj:`float`, `optional`, defaults to 1e-3):The learning rate to use.betas (:obj:`Tuple[float,float]`, `optional`, defaults to (0.9, 0.999)):Adam's betas parameters (b1, b2).eps (:obj:`float`, `optional`, defaults to 1e-6):Adam's epsilon for numerical stability.weight_decay (:obj:`float`, `optional`, defaults to 0):Decoupled weight decay to apply.correct_bias (:obj:`bool`, `optional`, defaults to `True`):Whether ot not to correct bias in Adam (for instance, in Bert TF repository they use :obj:`False`)."""def __init__(self,params: Iterable[torch.nn.parameter.Parameter],lr: float = 1e-3,betas: Tuple[float, float] = (0.9, 0.999),eps: float = 1e-6,weight_decay: float = 0.0,correct_bias: bool = True,):

3. BertAdam与AdamW的使用区别


# Parameters:
lr = 1e-3
max_grad_norm = 1.0
num_training_steps = 1000
num_warmup_steps = 100
warmup_proportion = float(num_warmup_steps) / float(num_training_steps)  # 0.1### Previously BertAdam optimizer was instantiated like this:
optimizer = BertAdam(model.parameters(), lr=lr, schedule='warmup_linear', warmup=warmup_proportion, t_total=num_training_steps)
### and used like this:
for batch in train_data:loss = model(batch)loss.backward()optimizer.step()### In Transformers, optimizer and schedules are splitted and instantiated like this:
optimizer = AdamW(model.parameters(), lr=lr, correct_bias=False)  # To reproduce BertAdam specific behavior set correct_bias=False
scheduler = get_linear_schedule_with_warmup(optimizer, num_warmup_steps=num_warmup_steps, num_training_steps=num_training_steps)  # PyTorch scheduler
### and used like this:
for batch in train_data:model.train()loss = model(batch)loss.backward()torch.nn.utils.clip_grad_norm_(model.parameters(), max_grad_norm)  # Gradient clipping is not in AdamW anymore (so you can use amp without issue)optimizer.step()scheduler.step()optimizer.zero_grad()

https://github.com/huggingface/transformers

Adam与AdamW相关推荐

  1. 一文告诉你Adam、AdamW、Amsgrad区别和联系 重点

    **序言:**Adam自2014年出现之后,一直是受人追捧的参数训练神器,但最近越来越多的文章指出:Adam存在很多问题,效果甚至没有简单的SGD + Momentum好.因此,出现了很多改进的版本, ...

  2. Adam,AdamW,LAMB优化器原理与代码

    参考文献: 1.https://www.fast.ai/2018/07/02/adam-weight-decay/ 2.https://arxiv.org/pdf/1904.00962.pdf 3.h ...

  3. AdamW优化器简单理解

    1.SGD L2 regularization 和 Weight decay 只在SGD优化的情况下是等价的. 2.自适应学习率算法 Adam自动调整学习率,大幅提高了训练速度,也很少需要调整学习率, ...

  4. 深度学习优化算法的总结与梳理(从 SGD 到 AdamW 原理和代码解读)

    作者丨科技猛兽 转自丨极市平台 本文思想来自下面这篇大佬的文章: Juliuszh:一个框架看懂优化算法之异同 SGD/AdaGrad/Adam https://zhuanlan.zhihu.com/ ...

  5. 各种优化器SGD,AdaGrad,Adam,LBFGS都做了什么?

    文章目录 各种优化器SGD,AdaGrad,Adam,LBFGS都做了什么? 1. SGD: 2. SGD+Momentum: 3. NAG(Nesterov Accelerated Gradient ...

  6. 大梳理!深度学习优化算法:从 SGD 到 AdamW 原理和代码解读

    ‍ 作者丨知乎 科技猛兽  极市平台 编辑 https://zhuanlan.zhihu.com/p/391947979 本文思想来自下面这篇大佬的文章: Juliuszh:一个框架看懂优化算法之异同 ...

  7. PaddleClas

    PaddleClas 主要代码和目录结构如下 benchmark: 文件夹下存放了一些 shell 脚本,主要是为了测试 PaddleClas 中不同模型的速度指标,如单卡训练速度指标.多卡训练速度指 ...

  8. PyTorch | 优化神经网络训练的17种方法

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者 | LORENZ KUHN 来源 | 人工智能前沿讲习 编辑 ...

  9. 让PyTorch训练速度更快,你需要掌握这17种方法

    选自efficientdl.com 作者:LORENZ KUHN 机器之心编译 编辑:陈萍 掌握这 17 种方法,用最省力的方式,加速你的 Pytorch 深度学习训练. 近日,Reddit 上一个帖 ...

最新文章

  1. SAP物料价格评估与成本计算体系
  2. Skype for Business Server 2015-10-ADFS-2-配置
  3. jQuery Dom 操作,动态生成dom,绑定事件
  4. sqlplus连接远程数据库
  5. c cuda 指定gpu_《CUDA C编程权威指南》——1.3 用GPU输出Hello World-阿里云开发者社区...
  6. 转【FullPage.js 应用参数参考与简单调用】
  7. MongoDB之在mac上设置环境变量
  8. HTML5链接tcpUDP,UDP/TCP协议 网络调试工具源码(C#)
  9. RPC和MQ对比及其适用/不适用场合
  10. javaweb四种域对象的应用
  11. 模板题——数位DP、状态压缩、记忆化搜索
  12. 十分钟理解Redux中间件
  13. 端午节公众号文章如何编辑排版可以吸粉引流
  14. 重新认识Git——抽丝剥茧说Git
  15. 实现外网Ping通WSL(网卡桥接方式实现)
  16. 微信模板消息 群发 突破 4条限制
  17. python与数据分析结合_将Python和R整合进一个数据分析流程
  18. ipad iphone开发_如何在iPad或iPhone上安装字体
  19. Api-免费新闻资讯接口
  20. 封装 电流密度 重布线_半导体封装及其制造方法与流程

热门文章

  1. 应届生Java面试经验总结
  2. 斗地主排序以及音乐管理系统
  3. hadoop2.7.2基于centos完全分布式安装
  4. 懂数据会营销的健身房会员管理软件
  5. java计算机毕业设计智慧公寓系统演示录屏2021源码+数据库+系统+lw文档
  6. 计算机项目经理专业,IT项目经理的对口专业
  7. java word 乱码_java word 乱码怎么办,_Java_ 少侠科技
  8. SAP特殊采购类型用途:45.从工厂到MRP 范围的库存转移
  9. 单纯形法的计算机方法的实现,线性规划问题中单纯形法的计算机求解.pdf
  10. 企业对java的需求_企业最需要的需求状态是哪一种?