Back to Annotated Deep Learning Paper Implementations

නවප්රශස්තකරණය

docs/si/optimizers/noam.html

latest4.1 KB
Original Source

homeoptimizers

View code on Github

#

නවප්රශස්තකරණය

කඩදාසිතුළ හඳුන්වා දී ඇති ප්රශස්තකරණයේ PyTorch ක්රියාත්මක කිරීම මෙයයි අවධානය ඔබට අවශ්ය සියල්ල .

14fromtypingimportDict1516fromlabml\_nn.optimizersimportWeightDecay17fromlabml\_nn.optimizers.amsgradimportAMSGrad

#

නවප්රශස්තකරණය

මෙමපන්තිය අර්ථ දක්වා ඇති ආදම් ප්රශස්තකරණයෙන් විහිදේ adam.py.

20classNoam(AMSGrad):

#

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

  • params යනු පරාමිතීන් ලැයිස්තුවයි
  • lr යනු ඉගෙනුම් අනුපාතයයි α
  • betas (β1​, β2​) ක tuple වේ
  • epsϵ^ හෝ මත ϵ පදනම් වේ optimized_update
  • weight_decay``WeightDecay අර්ථ දක්වා ඇති පන්තියේ අවස්ථාවකි __init__.py
  • 'optimized_update'යනු එකතු කිරීමෙන් පසු එය කිරීමෙන් දෙවන මොහොතේ පක්ෂග්රාහීව නිවැරදි කිරීම ප්රශස්ත කිරීම සඳහා ද යන්න ධජයකි ϵ
  • amsgrad ආදම් සරල කිරීම සඳහා 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

#

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

αdmodel​​1​min(t​1​,w3/2t​) උණුසුම් කිරීමේ පියවර ගණන w කොහේද?

54defget\_lr(self,state:Dict[str,any],group:Dict[str,any]):

#

min(t​1​,w3/2t​)

62factor=min(state['step']\*\*(-0.5),state['step']\*group['warmup']\*\*(-1.5))

#

αdmodel​​1​min(t​1​,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()

Trending Research Paperslabml.ai