当前位置:   article > 正文

pytorch优化器Adam和Adamw中的weight_decay的区别_adam weight decay

adam weight decay

pytorch优化器Adam和Adamw

只介绍二者的weight_decay的区别

一般的梯度下降的方法是 θ j = θ j − α ∂ ∂ θ j J \theta_j=\theta_j-\alpha\frac{\partial}{\partial\theta_j}J θj=θjαθjJ

Adam

算法

给出pytorch.optim.Adam类中具体实现的算法,来自pytorch中class Adam(Optimizer)
input : γ  (lr) , β 1 , β 2  (betas) , θ 0  (params) , f ( θ )  (objective) λ  (weight decay) ,   a m s g r a d initialize : m 0 ← 0  ( first moment) , v 0 ← 0  (second moment) ,   v 0 ^ m a x ← 0 for   t = 1   to   …   do g t ← ∇ θ f t ( θ t − 1 ) if   λ ≠ 0 g t ← g t + λ θ t − 1 m t ← β 1 m t − 1 + ( 1 − β 1 ) g t v t ← β 2 v t − 1 + ( 1 − β 2 ) g t 2 m t ^ ← m t / ( 1 − β 1 t ) v t ^ ← v t / ( 1 − β 2 t ) if   a m s g r a d v t ^ m a x ← m a x ( v t ^ m a x , v t ^ ) θ t ← θ t − 1 − γ m t ^ / ( v t ^ m a x + ϵ ) else θ t ← θ t − 1 − γ m t ^ / ( v t ^ + ϵ ) r e t u r n   θ t input:γ (lr),β1,β2 (betas),θ0 (params),f(θ) (objective)λ (weight decay),amsgradinitialize:m00 ( first moment),v00 (second moment),^v0max0fort=1todogtθft(θt1)ifλ0gtgt+λθt1mtβ1mt1+(1β1)gtvtβ2vt1+(1β2)g2t^mtmt/(1βt1)^vtvt/(1βt2)ifamsgrad^vtmaxmax(^vtmax,^vt)θtθt1γ^mt/(^vtmax+ϵ)elseθtθt1γ^mt/(^vt+ϵ)returnθt input:γ (lr),β1,β2 (betas),θ0 (params),f(θ) (objective)λ (weight decay),amsgradinitialize:m00 ( first moment),v00 (second moment),v0

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小桥流水78/article/detail/946042
推荐阅读
相关标签
  

闽ICP备14008679号