docs/si/optimizers/noam.html
කඩදාසිතුළ හඳුන්වා දී ඇති ප්රශස්තකරණයේ PyTorch ක්රියාත්මක කිරීම මෙයයි අවධානය ඔබට අවශ්ය සියල්ල .
14fromtypingimportDict1516fromlabml\_nn.optimizersimportWeightDecay17fromlabml\_nn.optimizers.amsgradimportAMSGrad
මෙමපන්තිය අර්ථ දක්වා ඇති ආදම් ප්රශස්තකරණයෙන් විහිදේ adam.py.
20classNoam(AMSGrad):
params යනු පරාමිතීන් ලැයිස්තුවයිlr යනු ඉගෙනුම් අනුපාතයයි αbetas (β1, β2) ක tuple වේepsϵ^ හෝ මත ϵ පදනම් වේ optimized_updateweight_decay``WeightDecay අර්ථ දක්වා ඇති පන්තියේ අවස්ථාවකි __init__.pyamsgrad ආදම් සරල කිරීම සඳහා AMSGrad හෝ වැටීම භාවිතා කළ යුතුද යන්න දැක්වෙන ධජයකිwarmup උනුසුම් පියවර ගණනd_model ආදර්ශ ප්රමාණය; i.e. ට්රාන්ස්ෆෝමරයේ මානයන් ගණනdefaults කණ්ඩායම් අගයන් සඳහා පෙරනිමි ශබ්ද කෝෂයකි. ඔබට පන්තිය දීර් extend කිරීමට අවශ්ය විට මෙය ප්රයෝජනවත් AdamWarmup වේ.27def\_\_init\_\_(self,params,lr=1e-3,betas=(0.9,0.999),eps=1e-16,28weight\_decay:WeightDecay=WeightDecay(),29optimized\_update:bool=True,30amsgrad=False,31warmup=0,d\_model=512,defaults=None):
49defaults={}ifdefaultsisNoneelsedefaults50defaults.update(dict(warmup=warmup))51super().\_\_init\_\_(params,lr,betas,eps,weight\_decay,optimized\_update,amsgrad,defaults)52self.d\_model=d\_model
αdmodel1min(t1,w3/2t) උණුසුම් කිරීමේ පියවර ගණන w කොහේද?
54defget\_lr(self,state:Dict[str,any],group:Dict[str,any]):
min(t1,w3/2t)
62factor=min(state['step']\*\*(-0.5),state['step']\*group['warmup']\*\*(-1.5))
αdmodel1min(t1,w3/2t)
64returngroup['lr']\*self.d\_model\*\*(-0.5)\*factor
67def\_test\_noam\_lr():
73importmatplotlib.pyplotasplt74importnumpyasnp75fromtorchimportnn7677model=nn.Linear(10,10)78opts=[Noam(model.parameters(),d\_model=512,warmup=4000,lr=1),79Noam(model.parameters(),d\_model=512,warmup=8000,lr=1),80Noam(model.parameters(),d\_model=2048,warmup=2000,lr=1)]81plt.plot(np.arange(1,20000),[[opt.get\_lr({'step':i},opt.defaults)foroptinopts]foriinrange(1,20000)])82plt.legend(["512:4000","512:8000","2048:2000"])83plt.title("Learning Rate")84plt.show()858687if\_\_name\_\_=='\_\_main\_\_':88\_test\_noam\_lr()