උණුසුම්කිරීම සමඟ ඇඩම් ප්රශස්තකරණය

මෙය AMSGrad ප්රශස්තකරණය පුළුල් කරන අතර උනුසුම් අවධියක් එක් කරයි.

12from typing import Dict
13
14from labml_nn.optimizers import WeightDecay
15from labml_nn.optimizers.amsgrad import AMSGrad

උණුසුම්කිරීම සමඟ ඇඩම් ප්රශස්තකරණය

මෙමපන්තිය AMSGrad ප්රශස්තකරණයෙන් අර්ථ දක්වා ඇත amsgrad.py .

18class AdamWarmup(AMSGrad):

ප්රශස්තකරණයආරම්භ කරන්න

  • params යනු පරාමිතීන් ලැයිස්තුවයි
  • lr යනු ඉගෙනුම් අනුපාතයයි
  • betas (, ) ක tuple වේ
  • eps හෝ මත පදනම් වේ optimized_update
  • weight_decay WeightDecay අර්ථ දක්වා ඇති පන්තියේ අවස්ථාවකි __init__.py
  • 'optimized_update'යනු එකතු කිරීමෙන් පසු එය කිරීමෙන් දෙවන මොහොතේ පක්ෂග්රාහීව නිවැරදි කිරීම ප්රශස්ත කිරීම සඳහා ද යන්න ධජයකි
  • amsgrad ආදම් සරල කිරීම සඳහා AMSGrad හෝ වැටීම භාවිතා කළ යුතුද යන්න දැක්වෙන ධජයකි
  • warmup උනුසුම් පියවර ගණන
  • defaults කණ්ඩායම් අගයන් සඳහා පෙරනිමි ශබ්ද කෝෂයකි. ඔබට පන්තිය දීර් extend කිරීමට අවශ්ය විට මෙය ප්රයෝජනවත් AdamWarmup වේ.
24    def __init__(self, params, lr=1e-3, betas=(0.9, 0.999), eps=1e-16,
25                 weight_decay: WeightDecay = WeightDecay(),
26                 optimized_update: bool = True,
27                 amsgrad=False, warmup=0, defaults=None):
44        defaults = {} if defaults is None else defaults
45        defaults.update(dict(warmup=warmup))
46        super().__init__(params, lr, betas, eps, weight_decay, optimized_update, amsgrad, defaults)

ඉගෙනීම-අනුපාතයලබා ගන්න

උණුසුම් කිරීමේ පියවර ගණන කොහේද?

48    def get_lr(self, state: Dict[str, any], group: Dict[str, any]):

අපිඋනුසුම් අවධියක සිටී නම්

56        if group['warmup'] > state['step']:

සිට රේඛීයව වැඩිවන ඉගෙනුම් අනුපාතය

58            return 1e-8 + state['step'] * group['lr'] / group['warmup']
59        else:

නිරන්තරඉගෙනුම් අනුපාතය

61            return group['lr']