關於warm up(transformers.get_linear_schedule_with_warmup)


基本使用

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM