首页 > 其他 > 详细

关于warm up(transformers.get_linear_schedule_with_warmup)

时间:2021-06-01 14:57:23      阅读:127      评论:0      收藏:0      [点我收藏+]

基本使用

transformers:2.10.0

这里就不使用pytorch中的dataset和dataloader了,简单的模拟下:

from transformers import AdanW, get_linear_schedule_with_warmup

optimizer = AdamW(参数, lr=lr, eps=adam_epsilon)
len_dataset = 3821 # 可以根据pytorch中的len(Dataset)计算
epoch = 30
batch_size = 32
total_steps = (len_dataset // batch_size) * epoch if len_dataset % batch_size = 0 else (len_dataset // batch_size + 1) * epoch # 每一个epoch中有多少个step可以根据len(DataLoader)计算:total_steps = len(DataLoader) * epoch

warm_up_ratio = 0.1 # 定义要预热的step
scheduler = get_linear_schedule_with_warmup(optimizer, num_warmup_steps = warm_up_ratio * total_steps, num_training_steps = total_steps)

为什么要使用warm up

  • 有助于减缓模型在初始阶段对mini-batch的提前过拟合现象,保持分布的平稳
  • 有助于保持模型深层的稳定性

具体可以去看下知乎:https://www.zhihu.com/question/338066667

关于warm up(transformers.get_linear_schedule_with_warmup)

原文:https://www.cnblogs.com/xiximayou/p/14836577.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!