මෙය AMSGrad ප්රශස්තකරණය පුළුල් කරන අතර උනුසුම් අවධියක් එක් කරයි.
12from typing import Dict
13
14from labml_nn.optimizers import WeightDecay
15from labml_nn.optimizers.amsgrad import AMSGrad
18class AdamWarmup(AMSGrad):
params
යනු පරාමිතීන් ලැයිස්තුවයි lr
යනු ඉගෙනුම් අනුපාතයයි betas
(, ) ක tuple වේ eps
හෝ මත පදනම් වේ optimized_update
weight_decay
WeightDecay
අර්ථ දක්වා ඇති පන්තියේ අවස්ථාවකි __init__.py
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']