pytorch-optimizer 2.8.0__tar.gz → 2.9.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. pytorch_optimizer-2.9.1/PKG-INFO +430 -0
  2. pytorch_optimizer-2.9.1/README.rst +386 -0
  3. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pyproject.toml +5 -4
  4. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/__init__.py +15 -1
  5. pytorch_optimizer-2.9.1/pytorch_optimizer/base/optimizer.py +155 -0
  6. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/optimizer/a2grad.py +10 -14
  7. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/optimizer/adabelief.py +54 -72
  8. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/optimizer/adabound.py +39 -42
  9. pytorch_optimizer-2.9.1/pytorch_optimizer/optimizer/adadelta.py +106 -0
  10. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/optimizer/adafactor.py +35 -28
  11. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/optimizer/adai.py +34 -33
  12. pytorch_optimizer-2.9.1/pytorch_optimizer/optimizer/adamax.py +138 -0
  13. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/optimizer/adamod.py +24 -24
  14. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/optimizer/adamp.py +38 -31
  15. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/optimizer/adams.py +45 -40
  16. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/optimizer/adan.py +19 -29
  17. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/optimizer/adanorm.py +39 -41
  18. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/optimizer/adapnm.py +42 -45
  19. pytorch_optimizer-2.9.1/pytorch_optimizer/optimizer/adashift.py +113 -0
  20. pytorch_optimizer-2.9.1/pytorch_optimizer/optimizer/adasmooth.py +124 -0
  21. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/optimizer/agc.py +6 -8
  22. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/optimizer/aggmo.py +14 -14
  23. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/optimizer/alig.py +5 -13
  24. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/optimizer/apollo.py +8 -17
  25. pytorch_optimizer-2.9.1/pytorch_optimizer/optimizer/avagrad.py +135 -0
  26. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/optimizer/dadapt.py +141 -161
  27. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/optimizer/diffgrad.py +55 -69
  28. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/optimizer/fromage.py +2 -6
  29. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/optimizer/gc.py +1 -3
  30. pytorch_optimizer-2.9.1/pytorch_optimizer/optimizer/gravity.py +80 -0
  31. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/optimizer/gsam.py +2 -5
  32. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/optimizer/lamb.py +46 -58
  33. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/optimizer/lars.py +4 -18
  34. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/optimizer/lion.py +24 -28
  35. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/optimizer/lookahead.py +6 -9
  36. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/optimizer/madgrad.py +17 -20
  37. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/optimizer/msvag.py +2 -8
  38. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/optimizer/nero.py +11 -18
  39. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/optimizer/novograd.py +29 -25
  40. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/optimizer/pcgrad.py +3 -6
  41. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/optimizer/pid.py +16 -17
  42. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/optimizer/pnm.py +26 -23
  43. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/optimizer/qhadam.py +16 -18
  44. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/optimizer/qhm.py +15 -17
  45. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/optimizer/radam.py +44 -52
  46. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/optimizer/ranger.py +49 -62
  47. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/optimizer/ranger21.py +58 -69
  48. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/optimizer/sam.py +1 -6
  49. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/optimizer/sgd.py +23 -42
  50. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/optimizer/sgdp.py +21 -16
  51. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/optimizer/shampoo.py +41 -36
  52. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/optimizer/shampoo_utils.py +58 -60
  53. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/optimizer/sm3.py +5 -12
  54. pytorch_optimizer-2.9.1/pytorch_optimizer/optimizer/srmm.py +81 -0
  55. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/optimizer/swats.py +43 -44
  56. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/optimizer/utils.py +9 -11
  57. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/optimizer/yogi.py +32 -29
  58. pytorch_optimizer-2.8.0/PKG-INFO +0 -493
  59. pytorch_optimizer-2.8.0/README.rst +0 -449
  60. pytorch_optimizer-2.8.0/pytorch_optimizer/base/optimizer.py +0 -163
  61. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/LICENSE +0 -0
  62. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/base/__init__.py +0 -0
  63. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/base/exception.py +0 -0
  64. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/base/scheduler.py +0 -0
  65. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/base/types.py +0 -0
  66. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/lr_scheduler/__init__.py +0 -0
  67. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/lr_scheduler/chebyshev.py +0 -0
  68. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/lr_scheduler/cosine_anealing.py +0 -0
  69. {pytorch_optimizer-2.8.0/pytorch_optimizer → pytorch_optimizer-2.9.1/pytorch_optimizer/lr_scheduler}/experimental/__init__.py +0 -0
  70. {pytorch_optimizer-2.8.0/pytorch_optimizer → pytorch_optimizer-2.9.1/pytorch_optimizer/lr_scheduler}/experimental/deberta_v3_lr_scheduler.py +0 -0
  71. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/lr_scheduler/linear_warmup.py +0 -0
  72. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/lr_scheduler/proportion.py +0 -0
  73. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/optimizer/__init__.py +0 -0
  74. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/optimizer/fp16.py +0 -0
  75. {pytorch_optimizer-2.8.0 → pytorch_optimizer-2.9.1}/pytorch_optimizer/optimizer/rotograd.py +0 -0
@@ -0,0 +1,430 @@
1
+ Metadata-Version: 2.1
2
+ Name: pytorch-optimizer
3
+ Version: 2.9.1
4
+ Summary: optimizer & lr scheduler collections in PyTorch
5
+ Home-page: https://github.com/kozistr/pytorch_optimizer
6
+ License: Apache-2.0
7
+ Keywords: pytorch,deep-learning,optimizer,lr scheduler,A2Grad,ASGD,AccSGD,AdaBelief,AdaBound,AdaDelta,AdaFactor,AdaMax,AdaMod,AdaNorm,AdaPNM,AdaSmooth,Adai,AdamP,AdamS,Adan,AggMo,AliG,Apollo,AvaGrad,DAdaptAdaGrad,DAdaptAdam,DAdaptAdan,DAdaptSGD,DiffGrad,Fromage,Gravity,LARS,Lamb,Lion,MADGRAD,MSVAG,Nero,NovoGrad,PID,PNM,QHAdam,QHM,RAdam,Ranger,Ranger21,SGDP,SGDW,SM3,SRMM,SWATS,ScalableShampoo,Shampoo,Yogi,SAM,GSAM,PCGrad,RotoGrad
8
+ Author: kozistr
9
+ Author-email: kozistr@gmail.com
10
+ Maintainer: kozistr
11
+ Maintainer-email: kozistr@gmail.com
12
+ Requires-Python: >=3.7.2,<4.0.0
13
+ Classifier: Development Status :: 5 - Production/Stable
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: Intended Audience :: Education
16
+ Classifier: Intended Audience :: Science/Research
17
+ Classifier: License :: OSI Approved :: Apache Software License
18
+ Classifier: Operating System :: OS Independent
19
+ Classifier: Programming Language :: Python :: 3
20
+ Classifier: Programming Language :: Python :: 3.8
21
+ Classifier: Programming Language :: Python :: 3.9
22
+ Classifier: Programming Language :: Python :: 3.10
23
+ Classifier: Programming Language :: Python :: 3.11
24
+ Classifier: Programming Language :: Python :: 3
25
+ Classifier: Programming Language :: Python :: 3.10
26
+ Classifier: Programming Language :: Python :: 3.11
27
+ Classifier: Programming Language :: Python :: 3.6
28
+ Classifier: Programming Language :: Python :: 3.7
29
+ Classifier: Programming Language :: Python :: 3.8
30
+ Classifier: Programming Language :: Python :: 3.9
31
+ Classifier: Topic :: Scientific/Engineering
32
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
33
+ Classifier: Topic :: Software Development
34
+ Classifier: Topic :: Software Development :: Libraries
35
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
36
+ Requires-Dist: numpy (==1.21.1) ; python_version >= "3.7" and python_version < "3.8"
37
+ Requires-Dist: numpy ; python_version >= "3.8"
38
+ Requires-Dist: torch (>=1.10) ; python_version >= "3.8"
39
+ Requires-Dist: torch (>=1.10,<2.0) ; python_version >= "3.7" and python_version < "3.8"
40
+ Project-URL: Documentation, https://pytorch-optimizers.readthedocs.io/en/latest
41
+ Project-URL: Repository, https://github.com/kozistr/pytorch_optimizer
42
+ Description-Content-Type: text/x-rst
43
+
44
+ =================
45
+ pytorch-optimizer
46
+ =================
47
+
48
+ +--------------+------------------------------------------+
49
+ | Build | |workflow| |Documentation Status| |
50
+ +--------------+------------------------------------------+
51
+ | Quality | |codecov| |black| |ruff| |
52
+ +--------------+------------------------------------------+
53
+ | Package | |PyPI version| |PyPI pyversions| |
54
+ +--------------+------------------------------------------+
55
+ | Status | |PyPi download| |PyPi month download| |
56
+ +--------------+------------------------------------------+
57
+ | License | |apache| |
58
+ +--------------+------------------------------------------+
59
+
60
+ | **pytorch-optimizer** is optimizer & lr scheduler collections in PyTorch.
61
+ | I just re-implemented (speed & memory tweaks, plug-ins) the algorithm while based on the original paper. Also, It includes useful and practical optimization ideas.
62
+ | Currently, 50 optimizers, 6 lr schedulers are supported!
63
+ |
64
+ | Highly inspired by `pytorch-optimizer <https://github.com/jettify/pytorch-optimizer>`__.
65
+
66
+ Getting Started
67
+ ---------------
68
+
69
+ For more, see the `documentation <https://pytorch-optimizers.readthedocs.io/en/latest/>`__.
70
+
71
+ Most optimizers are under MIT or Apache 2.0 license, but a few optimizers like `Fromage` have BY-NC-SA 4.0 license, which is non-commercial.
72
+ So, please double-check the license before using it at your work.
73
+
74
+ Installation
75
+ ~~~~~~~~~~~~
76
+
77
+ ::
78
+
79
+ $ pip3 install -U pytorch-optimizer
80
+
81
+ If there's a version issue when installing the package, try with `--no-deps` option.
82
+
83
+ ::
84
+
85
+ $ pip3 install -U --no-deps pytorch-optimizer
86
+
87
+ Simple Usage
88
+ ~~~~~~~~~~~~
89
+
90
+ ::
91
+
92
+ from pytorch_optimizer import AdamP
93
+
94
+ model = YourModel()
95
+ optimizer = AdamP(model.parameters())
96
+
97
+ # or you can use optimizer loader, simply passing a name of the optimizer.
98
+
99
+ from pytorch_optimizer import load_optimizer
100
+
101
+ model = YourModel()
102
+ opt = load_optimizer(optimizer='adamp')
103
+ optimizer = opt(model.parameters())
104
+
105
+ Also, you can load the optimizer via `torch.hub`
106
+
107
+ ::
108
+
109
+ import torch
110
+
111
+ model = YourModel()
112
+ opt = torch.hub.load('kozistr/pytorch_optimizer', 'adamp')
113
+ optimizer = opt(model.parameters())
114
+
115
+ If you want to build the optimizer with parameters & configs, there's `create_optimizer()` API.
116
+
117
+ ::
118
+
119
+ from pytorch_optimizer import create_optimizer
120
+
121
+ optimizer = create_optimizer(
122
+ model,
123
+ 'adamp',
124
+ lr=1e-3,
125
+ weight_decay=1e-3,
126
+ use_gc=True,
127
+ use_lookahead=True,
128
+ )
129
+
130
+ Supported Optimizers
131
+ --------------------
132
+
133
+ You can check the supported optimizers & lr schedulers.
134
+
135
+ ::
136
+
137
+ from pytorch_optimizer import get_supported_optimizers, get_supported_lr_schedulers
138
+
139
+ supported_optimizers = get_supported_optimizers()
140
+ supported_lr_schedulers = get_supported_lr_schedulers()
141
+
142
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
143
+ | Optimizer | Description | Official Code | Paper | Citation |
144
+ +==============+===================================================================================================+===================================================================================+===============================================================================================+======================================================================================================================+
145
+ | AdaBelief | *Adapting Step-sizes by the Belief in Observed Gradients* | `github <https://github.com/juntang-zhuang/Adabelief-Optimizer>`__ | `https://arxiv.org/abs/2010.07468 <https://arxiv.org/abs/2010.07468>`__ | `cite <https://ui.adsabs.harvard.edu/abs/2020arXiv201007468Z/exportcitation>`__ |
146
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
147
+ | AdaBound | *Adaptive Gradient Methods with Dynamic Bound of Learning Rate* | `github <https://github.com/Luolc/AdaBound/blob/master/adabound/adabound.py>`__ | `https://openreview.net/forum?id=Bkg3g2R9FX <https://openreview.net/forum?id=Bkg3g2R9FX>`__ | `cite <https://github.com/Luolc/AdaBound#citing>`__ |
148
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
149
+ | AdaHessian | *An Adaptive Second Order Optimizer for Machine Learning* | `github <https://github.com/amirgholami/adahessian>`__ | `https://arxiv.org/abs/2006.00719 <https://arxiv.org/abs/2006.00719>`__ | `cite <https://github.com/amirgholami/adahessian#citation>`__ |
150
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
151
+ | AdamD | *Improved bias-correction in Adam* | | `https://arxiv.org/abs/2110.10828 <https://arxiv.org/abs/2110.10828>`__ | `cite <https://ui.adsabs.harvard.edu/abs/2021arXiv211010828S/exportcitation>`__ |
152
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
153
+ | AdamP | *Slowing Down the Slowdown for Momentum Optimizers on Scale-invariant Weights* | `github <https://github.com/clovaai/AdamP>`__ | `https://arxiv.org/abs/2006.08217 <https://arxiv.org/abs/2006.08217>`__ | `cite <https://github.com/clovaai/AdamP#how-to-cite>`__ |
154
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
155
+ | diffGrad | *An Optimization Method for Convolutional Neural Networks* | `github <https://github.com/shivram1987/diffGrad>`__ | `https://arxiv.org/abs/1909.11015v3 <https://arxiv.org/abs/1909.11015v3>`__ | `cite <https://ui.adsabs.harvard.edu/abs/2019arXiv190911015D/exportcitation>`__ |
156
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
157
+ | MADGRAD | *A Momentumized, Adaptive, Dual Averaged Gradient Method for Stochastic* | `github <https://github.com/facebookresearch/madgrad>`__ | `https://arxiv.org/abs/2101.11075 <https://arxiv.org/abs/2101.11075>`__ | `cite <https://github.com/facebookresearch/madgrad#tech-report>`__ |
158
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
159
+ | RAdam | *On the Variance of the Adaptive Learning Rate and Beyond* | `github <https://github.com/LiyuanLucasLiu/RAdam>`__ | `https://arxiv.org/abs/1908.03265 <https://arxiv.org/abs/1908.03265>`__ | `cite <https://github.com/LiyuanLucasLiu/RAdam#citation>`__ |
160
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
161
+ | Ranger | *a synergistic optimizer combining RAdam and LookAhead, and now GC in one optimizer* | `github <https://github.com/lessw2020/Ranger-Deep-Learning-Optimizer>`__ | `https://bit.ly/3zyspC3 <https://bit.ly/3zyspC3>`__ | `cite <https://github.com/lessw2020/Ranger-Deep-Learning-Optimizer#citing-this-work>`__ |
162
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
163
+ | Ranger21 | *a synergistic deep learning optimizer* | `github <https://github.com/lessw2020/Ranger21>`__ | `https://arxiv.org/abs/2106.13731 <https://arxiv.org/abs/2106.13731>`__ | `cite <https://github.com/lessw2020/Ranger21#referencing-this-work>`__ |
164
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
165
+ | Lamb | *Large Batch Optimization for Deep Learning* | `github <https://github.com/cybertronai/pytorch-lamb>`__ | `https://arxiv.org/abs/1904.00962 <https://arxiv.org/abs/1904.00962>`__ | `cite <https://ui.adsabs.harvard.edu/abs/2019arXiv190400962Y/exportcitation>`__ |
166
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
167
+ | Shampoo | *Preconditioned Stochastic Tensor Optimization* | `github <https://github.com/moskomule/shampoo.pytorch>`__ | `https://arxiv.org/abs/1802.09568 <https://arxiv.org/abs/1802.09568>`__ | `cite <https://ui.adsabs.harvard.edu/abs/2018arXiv180209568G/exportcitation>`__ |
168
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
169
+ | Nero | *Learning by Turning: Neural Architecture Aware Optimisation* | `github <https://github.com/jxbz/nero>`__ | `https://arxiv.org/abs/2102.07227 <https://arxiv.org/abs/2102.07227>`__ | `cite <https://ui.adsabs.harvard.edu/abs/2021arXiv210207227L/exportcitation>`__ |
170
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
171
+ | Adan | *Adaptive Nesterov Momentum Algorithm for Faster Optimizing Deep Models* | `github <https://github.com/sail-sg/Adan>`__ | `https://arxiv.org/abs/2208.06677 <https://arxiv.org/abs/2208.06677>`__ | `cite <https://ui.adsabs.harvard.edu/abs/2022arXiv220806677X/exportcitation>`__ |
172
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
173
+ | Adai | *Disentangling the Effects of Adaptive Learning Rate and Momentum* | `github <https://github.com/zeke-xie/adaptive-inertia-adai>`__ | `https://arxiv.org/abs/2006.15815 <https://arxiv.org/abs/2006.15815>`__ | `cite <https://github.com/zeke-xie/adaptive-inertia-adai#citing>`__ |
174
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
175
+ | SAM | *Sharpness-Aware Minimization* | `github <https://github.com/davda54/sam>`__ | `https://arxiv.org/abs/2010.01412 <https://arxiv.org/abs/2010.01412>`__ | `cite <https://ui.adsabs.harvard.edu/abs/2020arXiv201001412F/exportcitation>`__ |
176
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
177
+ | ASAM | *Adaptive Sharpness-Aware Minimization* | `github <https://github.com/davda54/sam>`__ | `https://arxiv.org/abs/2102.11600 <https://arxiv.org/abs/2102.11600>`__ | `cite <https://ui.adsabs.harvard.edu/abs/2021arXiv210211600K/exportcitation>`__ |
178
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
179
+ | GSAM | *Surrogate Gap Guided Sharpness-Aware Minimization* | `github <https://github.com/juntang-zhuang/GSAM>`__ | `https://openreview.net/pdf?id=edONMAnhLu- <https://openreview.net/pdf?id=edONMAnhLu->`__ | `cite <https://github.com/juntang-zhuang/GSAM#citation>`__ |
180
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
181
+ | D-Adaptation | *Learning-Rate-Free Learning by D-Adaptation* | `github <https://github.com/facebookresearch/dadaptation>`__ | `https://arxiv.org/abs/2301.07733 <https://arxiv.org/abs/2301.07733>`__ | `cite <https://ui.adsabs.harvard.edu/abs/2023arXiv230107733D/exportcitation>`__ |
182
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
183
+ | AdaFactor | *Adaptive Learning Rates with Sublinear Memory Cost* | `github <https://github.com/DeadAt0m/adafactor-pytorch>`__ | `https://arxiv.org/abs/1804.04235 <https://arxiv.org/abs/1804.04235>`__ | `cite <https://ui.adsabs.harvard.edu/abs/2018arXiv180404235S/exportcitation>`__ |
184
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
185
+ | Apollo | *An Adaptive Parameter-wise Diagonal Quasi-Newton Method for Nonconvex Stochastic Optimization* | `github <https://github.com/XuezheMax/apollo>`__ | `https://arxiv.org/abs/2009.13586 <https://arxiv.org/abs/2009.13586>`__ | `cite <https://ui.adsabs.harvard.edu/abs/2020arXiv200913586M/exportcitation>`__ |
186
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
187
+ | NovoGrad | *Stochastic Gradient Methods with Layer-wise Adaptive Moments for Training of Deep Networks* | `github <https://github.com/lonePatient/NovoGrad-pytorch>`__ | `https://arxiv.org/abs/1905.11286 <https://arxiv.org/abs/1905.11286>`__ | `cite <https://ui.adsabs.harvard.edu/abs/2019arXiv190511286G/exportcitation>`__ |
188
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
189
+ | Lion | *Symbolic Discovery of Optimization Algorithms* | `github <https://github.com/google/automl/tree/master/lion>`__ | `https://arxiv.org/abs/2302.06675 <https://arxiv.org/abs/2302.06675>`__ | `cite <https://github.com/google/automl/tree/master/lion#citation>`__ |
190
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
191
+ | Ali-G | *Adaptive Learning Rates for Interpolation with Gradients* | `github <https://github.com/oval-group/ali-g>`__ | `https://arxiv.org/abs/1906.05661 <https://arxiv.org/abs/1906.05661>`__ | `cite <https://github.com/oval-group/ali-g#adaptive-learning-rates-for-interpolation-with-gradients>`__ |
192
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
193
+ | SM3 | *Memory-Efficient Adaptive Optimization* | `github <https://github.com/google-research/google-research/tree/master/sm3>`__ | `https://arxiv.org/abs/1901.11150 <https://arxiv.org/abs/1901.11150>`__ | `cite <https://ui.adsabs.harvard.edu/abs/2019arXiv190111150A/exportcitation>`__ |
194
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
195
+ | AdaNorm | *Adaptive Gradient Norm Correction based Optimizer for CNNs* | `github <https://github.com/shivram1987/AdaNorm>`__ | `https://arxiv.org/abs/2210.06364 <https://arxiv.org/abs/2210.06364>`__ | `cite <https://github.com/shivram1987/AdaNorm/tree/main#citation>`__ |
196
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
197
+ | RotoGrad | *Gradient Homogenization in Multitask Learning* | `github <https://github.com/adrianjav/rotograd>`__ | `https://openreview.net/pdf?id=T8wHz4rnuGL <https://openreview.net/pdf?id=T8wHz4rnuGL>`__ | `cite <https://github.com/adrianjav/rotograd#citing>`__ |
198
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
199
+ | A2Grad | *Optimal Adaptive and Accelerated Stochastic Gradient Descent* | `github <https://github.com/severilov/A2Grad_optimizer>`__ | `https://arxiv.org/abs/1810.00553 <https://arxiv.org/abs/1810.00553>`__ | `cite <https://ui.adsabs.harvard.edu/abs/2018arXiv181000553D/exportcitation>`__ |
200
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
201
+ | AccSGD | *Accelerating Stochastic Gradient Descent For Least Squares Regression* | `github <https://github.com/rahulkidambi/AccSGD>`__ | `https://arxiv.org/abs/1704.08227 <https://arxiv.org/abs/1704.08227>`__ | `cite <https://github.com/rahulkidambi/AccSGD#citation>`__ |
202
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
203
+ | SGDW | *Decoupled Weight Decay Regularization* | `github <https://github.com/loshchil/AdamW-and-SGDW>`__ | `https://arxiv.org/abs/1711.05101 <https://arxiv.org/abs/1711.05101>`__ | `cite <https://github.com/loshchil/AdamW-and-SGDW#contact>`__ |
204
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
205
+ | ASGD | *Adaptive Gradient Descent without Descent* | `github <https://github.com/ymalitsky/adaptive_GD>`__ | `https://arxiv.org/abs/1910.09529 <https://arxiv.org/abs/1910.09529>`__ | `cite <https://github.com/ymalitsky/adaptive_GD#reference>`__ |
206
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
207
+ | Yogi | *Adaptive Methods for Nonconvex Optimization* | | `NIPS 2018 <https://papers.nips.cc/paper/8186-adaptive-methods-for-nonconvex-optimization>`__ | `cite <https://proceedings.neurips.cc/paper_files/paper/2018/hash/90365351ccc7437a1309dc64e4db32a3-Abstract.html>`__ |
208
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
209
+ | SWATS | *Improving Generalization Performance by Switching from Adam to SGD* | | `https://arxiv.org/abs/1712.07628 <https://arxiv.org/abs/1712.07628>`__ | `cite <https://ui.adsabs.harvard.edu/abs/2017arXiv171207628S/exportcitation>`__ |
210
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
211
+ | Fromage | *On the distance between two neural networks and the stability of learning* | `github <https://github.com/jxbz/fromage>`__ | `https://arxiv.org/abs/2002.03432 <https://arxiv.org/abs/2002.03432>`__ | `cite <https://github.com/jxbz/fromage#citation>`__ |
212
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
213
+ | MSVAG | *Dissecting Adam: The Sign, Magnitude and Variance of Stochastic Gradients* | `github <https://github.com/lballes/msvag>`__ | `https://arxiv.org/abs/1705.07774 <https://arxiv.org/abs/1705.07774>`__ | `cite <https://github.com/lballes/msvag#citation>`__ |
214
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
215
+ | AdaMod | *An Adaptive and Momental Bound Method for Stochastic Learning* | `github <https://github.com/lancopku/AdaMod>`__ | `https://arxiv.org/abs/1910.12249 <https://arxiv.org/abs/1910.12249>`__ | `cite <https://github.com/lancopku/AdaMod#citation>`__ |
216
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
217
+ | AggMo | *Aggregated Momentum: Stability Through Passive Damping* | `github <https://github.com/AtheMathmo/AggMo>`__ | `https://arxiv.org/abs/1804.00325 <https://arxiv.org/abs/1804.00325>`__ | `cite <https://ui.adsabs.harvard.edu/abs/2018arXiv180400325L/exportcitation>`__ |
218
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
219
+ | QHAdam | *Quasi-hyperbolic momentum and Adam for deep learning* | `github <https://github.com/facebookresearch/qhoptim>`__ | `https://arxiv.org/abs/1810.06801 <https://arxiv.org/abs/1810.06801>`__ | `cite <https://github.com/facebookresearch/qhoptim#reference>`__ |
220
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
221
+ | PID | *A PID Controller Approach for Stochastic Optimization of Deep Networks* | `github <https://github.com/tensorboy/PIDOptimizer>`__ | `CVPR 18 <http://www4.comp.polyu.edu.hk/~cslzhang/paper/CVPR18_PID.pdf>`__ | `cite <https://github.com/tensorboy/PIDOptimizer#citation>`__ |
222
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
223
+ | Gravity | *a Kinematic Approach on Optimization in Deep Learning* | `github <https://github.com/dariush-bahrami/gravity.optimizer>`__ | `https://arxiv.org/abs/2101.09192 <https://arxiv.org/abs/2101.09192>`__ | `cite <https://ui.adsabs.harvard.edu/abs/2021arXiv210109192B/exportcitation>`__ |
224
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
225
+ | AdaSmooth | *An Adaptive Learning Rate Method based on Effective Ratio* | | `https://arxiv.org/abs/2204.00825v1 <https://arxiv.org/abs/2204.00825v1>`__ | `cite <https://ui.adsabs.harvard.edu/abs/2022arXiv220400825L/exportcitation>`__ |
226
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
227
+ | SRMM | *Stochastic regularized majorization-minimization with weakly convex and multi-convex surrogates* | `github <https://github.com/HanbaekLyu/SRMM>`__ | `https://arxiv.org/abs/2201.01652 <https://arxiv.org/abs/2201.01652>`__ | `cite <https://ui.adsabs.harvard.edu/abs/2022arXiv220101652L/exportcitation>`__ |
228
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
229
+ | AvaGrad | *Domain-independent Dominance of Adaptive Methods* | `github <https://github.com/lolemacs/avagrad>`__ | `https://arxiv.org/abs/1912.01823 <https://arxiv.org/abs/1912.01823>`__ | `cite <https://ui.adsabs.harvard.edu/abs/2019arXiv191201823S/exportcitation>`__ |
230
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
231
+ | PCGrad | *Gradient Surgery for Multi-Task Learning* | `github <https://github.com/tianheyu927/PCGrad>`__ | `https://arxiv.org/abs/2001.06782 <https://arxiv.org/abs/2001.06782>`__ | `cite <https://github.com/tianheyu927/PCGrad#reference>`__ |
232
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
233
+ | AMSGrad | *On the Convergence of Adam and Beyond* | | `https://openreview.net/pdf?id=ryQu7f-RZ <https://openreview.net/pdf?id=ryQu7f-RZ>`__ | `cite <https://ui.adsabs.harvard.edu/abs/2019arXiv190409237R/exportcitation>`__ |
234
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
235
+ | Lookahead | *k steps forward, 1 step back* | `github <https://github.com/pytorch/examples/tree/main/imagenet>`__ | `https://arxiv.org/abs/1907.08610 <https://arxiv.org/abs/1907.08610>`__ | `cite <https://ui.adsabs.harvard.edu/abs/2019arXiv190708610Z/exportcitation>`__ |
236
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
237
+ | PNM | *Manipulating Stochastic Gradient Noise to Improve Generalization* | `github <https://github.com/zeke-xie/Positive-Negative-Momentum>`__ | `https://arxiv.org/abs/2103.17182 <https://arxiv.org/abs/2103.17182>`__ | `cite <https://github.com/zeke-xie/Positive-Negative-Momentum#citing>`__ |
238
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
239
+ | GC | *Gradient Centralization* | `github <https://github.com/Yonghongwei/Gradient-Centralization>`__ | `https://arxiv.org/abs/2004.01461 <https://arxiv.org/abs/2004.01461>`__ | `cite <https://github.com/Yonghongwei/Gradient-Centralization#citation>`__ |
240
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
241
+ | AGC | *Adaptive Gradient Clipping* | `github <https://github.com/deepmind/deepmind-research/tree/master/nfnets>`__ | `https://arxiv.org/abs/2102.06171 <https://arxiv.org/abs/2102.06171>`__ | `cite <https://ui.adsabs.harvard.edu/abs/2021arXiv210206171B/exportcitation>`__ |
242
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
243
+ | Stable WD | *Understanding and Scheduling Weight Decay* | `github <https://github.com/zeke-xie/stable-weight-decay-regularization>`__ | `https://arxiv.org/abs/2011.11152 <https://arxiv.org/abs/2011.11152>`__ | `cite <https://ui.adsabs.harvard.edu/abs/2020arXiv201111152X/exportcitation>`__ |
244
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
245
+ | Softplus T | *Calibrating the Adaptive Learning Rate to Improve Convergence of ADAM* | | `https://arxiv.org/abs/1908.00700 <https://arxiv.org/abs/1908.00700>`__ | `cite <https://ui.adsabs.harvard.edu/abs/2019arXiv190800700T/exportcitation>`__ |
246
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
247
+ | EE LRS | *Wide-minima Density Hypothesis and the Explore-Exploit Learning Rate Schedule* | | `https://arxiv.org/abs/2003.03977 <https://arxiv.org/abs/2003.03977>`__ | `cite <https://ui.adsabs.harvard.edu/abs/2020arXiv200303977I/exportcitation>`__ |
248
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
249
+ | Norm Loss | *An efficient yet effective regularization method for deep neural networks* | | `https://arxiv.org/abs/2103.06583 <https://arxiv.org/abs/2103.06583>`__ | `cite <https://ui.adsabs.harvard.edu/abs/2021arXiv210306583G/exportcitation>`__ |
250
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
251
+ | Chebyshev LR | *Acceleration via Fractal Learning Rate Schedules* | | `https://arxiv.org/abs/2103.01338 <https://arxiv.org/abs/2103.01338>`__ | `cite <https://ui.adsabs.harvard.edu/abs/2021arXiv210301338A/exportcitation>`__ |
252
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
253
+ | Un-tuned WU | *On the adequacy of untuned warmup for adaptive optimization* | | `https://arxiv.org/abs/1910.04209 <https://arxiv.org/abs/1910.04209>`__ | `cite <https://ui.adsabs.harvard.edu/abs/2019arXiv191004209M/exportcitation>`__ |
254
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
255
+ | AdaShift | *Decorrelation and Convergence of Adaptive Learning Rate Methods* | `github <https://github.com/MichaelKonobeev/adashift>`__ | `https://arxiv.org/abs/1810.00143v4 <https://arxiv.org/abs/1810.00143v4>`__ | `cite <https://ui.adsabs.harvard.edu/abs/2018arXiv181000143Z/exportcitation>`__ |
256
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
257
+ | AdaDelta | *An Adaptive Learning Rate Method* | | `https://arxiv.org/abs/1212.5701v1 <https://arxiv.org/abs/1212.5701v1>`__ | `cite <https://ui.adsabs.harvard.edu/abs/2012arXiv1212.5701Z/exportcitation>`__ |
258
+ +--------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------+
259
+
260
+ Useful Resources
261
+ ----------------
262
+
263
+ Several optimization ideas to regularize & stabilize the training. Most
264
+ of the ideas are applied in ``Ranger21`` optimizer.
265
+
266
+ Also, most of the captures are taken from ``Ranger21`` paper.
267
+
268
+ +------------------------------------------+---------------------------------------------+--------------------------------------------+
269
+ | `Adaptive Gradient Clipping`_ | `Gradient Centralization`_ | `Softplus Transformation`_ |
270
+ +------------------------------------------+---------------------------------------------+--------------------------------------------+
271
+ | `Gradient Normalization`_ | `Norm Loss`_ | `Positive-Negative Momentum`_ |
272
+ +------------------------------------------+---------------------------------------------+--------------------------------------------+
273
+ | `Linear learning rate warmup`_ | `Stable weight decay`_ | `Explore-exploit learning rate schedule`_ |
274
+ +------------------------------------------+---------------------------------------------+--------------------------------------------+
275
+ | `Lookahead`_ | `Chebyshev learning rate schedule`_ | `(Adaptive) Sharpness-Aware Minimization`_ |
276
+ +------------------------------------------+---------------------------------------------+--------------------------------------------+
277
+ | `On the Convergence of Adam and Beyond`_ | `Improved bias-correction in Adam`_ | `Adaptive Gradient Norm Correction`_ |
278
+ +------------------------------------------+---------------------------------------------+--------------------------------------------+
279
+
280
+ Adaptive Gradient Clipping
281
+ --------------------------
282
+
283
+ | This idea originally proposed in ``NFNet (Normalized-Free Network)`` paper.
284
+ | ``AGC (Adaptive Gradient Clipping)`` clips gradients based on the ``unit-wise ratio of gradient norms to parameter norms``.
285
+
286
+ - code : `github <https://github.com/deepmind/deepmind-research/tree/master/nfnets>`__
287
+ - paper : `arXiv <https://arxiv.org/abs/2102.06171>`__
288
+
289
+ Gradient Centralization
290
+ -----------------------
291
+
292
+ +-----------------------------------------------------------------------------------------------------------------+
293
+ | .. image:: https://raw.githubusercontent.com/kozistr/pytorch_optimizer/main/assets/gradient_centralization.png |
294
+ +-----------------------------------------------------------------------------------------------------------------+
295
+
296
+ ``Gradient Centralization (GC)`` operates directly on gradients by centralizing the gradient to have zero mean.
297
+
298
+ - code : `github <https://github.com/Yonghongwei/Gradient-Centralization>`__
299
+ - paper : `arXiv <https://arxiv.org/abs/2004.01461>`__
300
+
301
+ Softplus Transformation
302
+ -----------------------
303
+
304
+ By running the final variance denom through the softplus function, it lifts extremely tiny values to keep them viable.
305
+
306
+ - paper : `arXiv <https://arxiv.org/abs/1908.00700>`__
307
+
308
+ Gradient Normalization
309
+ ----------------------
310
+
311
+ Norm Loss
312
+ ---------
313
+
314
+ +---------------------------------------------------------------------------------------------------+
315
+ | .. image:: https://raw.githubusercontent.com/kozistr/pytorch_optimizer/main/assets/norm_loss.png |
316
+ +---------------------------------------------------------------------------------------------------+
317
+
318
+ - paper : `arXiv <https://arxiv.org/abs/2103.06583>`__
319
+
320
+ Positive-Negative Momentum
321
+ --------------------------
322
+
323
+ +--------------------------------------------------------------------------------------------------------------------+
324
+ | .. image:: https://raw.githubusercontent.com/kozistr/pytorch_optimizer/main/assets/positive_negative_momentum.png |
325
+ +--------------------------------------------------------------------------------------------------------------------+
326
+
327
+ - code : `github <https://github.com/zeke-xie/Positive-Negative-Momentum>`__
328
+ - paper : `arXiv <https://arxiv.org/abs/2103.17182>`__
329
+
330
+ Linear learning rate warmup
331
+ ---------------------------
332
+
333
+ +----------------------------------------------------------------------------------------------------------+
334
+ | .. image:: https://raw.githubusercontent.com/kozistr/pytorch_optimizer/main/assets/linear_lr_warmup.png |
335
+ +----------------------------------------------------------------------------------------------------------+
336
+
337
+ - paper : `arXiv <https://arxiv.org/abs/1910.04209>`__
338
+
339
+ Stable weight decay
340
+ -------------------
341
+
342
+ +-------------------------------------------------------------------------------------------------------------+
343
+ | .. image:: https://raw.githubusercontent.com/kozistr/pytorch_optimizer/main/assets/stable_weight_decay.png |
344
+ +-------------------------------------------------------------------------------------------------------------+
345
+
346
+ - code : `github <https://github.com/zeke-xie/stable-weight-decay-regularization>`__
347
+ - paper : `arXiv <https://arxiv.org/abs/2011.11152>`__
348
+
349
+ Explore-exploit learning rate schedule
350
+ --------------------------------------
351
+
352
+ +---------------------------------------------------------------------------------------------------------------------+
353
+ | .. image:: https://raw.githubusercontent.com/kozistr/pytorch_optimizer/main/assets/explore_exploit_lr_schedule.png |
354
+ +---------------------------------------------------------------------------------------------------------------------+
355
+
356
+ - code : `github <https://github.com/nikhil-iyer-97/wide-minima-density-hypothesis>`__
357
+ - paper : `arXiv <https://arxiv.org/abs/2003.03977>`__
358
+
359
+ Lookahead
360
+ ---------
361
+
362
+ | ``k`` steps forward, 1 step back. ``Lookahead`` consisting of keeping an exponential moving average of the weights that is
363
+ | updated and substituted to the current weights every ``k_{lookahead}`` steps (5 by default).
364
+
365
+ Chebyshev learning rate schedule
366
+ --------------------------------
367
+
368
+ Acceleration via Fractal Learning Rate Schedules.
369
+
370
+ (Adaptive) Sharpness-Aware Minimization
371
+ ---------------------------------------
372
+
373
+ | Sharpness-Aware Minimization (SAM) simultaneously minimizes loss value and loss sharpness.
374
+ | In particular, it seeks parameters that lie in neighborhoods having uniformly low loss.
375
+
376
+ On the Convergence of Adam and Beyond
377
+ -------------------------------------
378
+
379
+ | Convergence issues can be fixed by endowing such algorithms with 'long-term memory' of past gradients.
380
+
381
+ Improved bias-correction in Adam
382
+ --------------------------------
383
+
384
+ | With the default bias-correction, Adam may actually make larger than requested gradient updates early in training.
385
+
386
+ Adaptive Gradient Norm Correction
387
+ ---------------------------------
388
+
389
+ | Correcting the norm of gradient in each iteration based on the adaptive training history of gradient norm.
390
+
391
+ Citation
392
+ --------
393
+
394
+ Please cite original authors of optimization algorithms. If you use this software, please cite it as below.
395
+ Or you can get from "cite this repository" button.
396
+
397
+ ::
398
+
399
+ @software{Kim_pytorch_optimizer_Optimizer_and_2022,
400
+ author = {Kim, Hyeongchan},
401
+ month = {1},
402
+ title = {{pytorch_optimizer: optimizer and lr scheduler collections in PyTorch}},
403
+ version = {1.0.0},
404
+ year = {2022}
405
+ }
406
+
407
+ Author
408
+ ------
409
+
410
+ Hyeongchan Kim / `@kozistr <http://kozistr.tech/about>`__
411
+
412
+ .. |workflow| image:: https://github.com/kozistr/pytorch_optimizer/actions/workflows/ci.yml/badge.svg?branch=main
413
+ .. |Documentation Status| image:: https://readthedocs.org/projects/pytorch-optimizers/badge/?version=latest
414
+ :target: https://pytorch-optimizers.readthedocs.io/en/latest/?badge=latest
415
+ .. |PyPI version| image:: https://badge.fury.io/py/pytorch-optimizer.svg
416
+ :target: https://badge.fury.io/py/pytorch-optimizer
417
+ .. |PyPi download| image:: https://pepy.tech/badge/pytorch-optimizer
418
+ :target: https://pepy.tech/project/pytorch-optimizer
419
+ .. |PyPi month download| image:: https://pepy.tech/badge/pytorch-optimizer/month
420
+ :target: https://pepy.tech/project/pytorch-optimizer
421
+ .. |PyPI pyversions| image:: https://img.shields.io/pypi/pyversions/pytorch-optimizer.svg
422
+ :target: https://pypi.python.org/pypi/pytorch-optimizer/
423
+ .. |black| image:: https://img.shields.io/badge/code%20style-black-000000.svg
424
+ .. |ruff| image:: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v1.json
425
+ :target: https://github.com/charliermarsh/ruff
426
+ .. |codecov| image:: https://codecov.io/gh/kozistr/pytorch_optimizer/branch/main/graph/badge.svg?token=L4K00EA0VD
427
+ :target: https://codecov.io/gh/kozistr/pytorch_optimizer
428
+ .. |apache| image:: https://img.shields.io/badge/License-Apache_2.0-blue.svg
429
+ :target: https://opensource.org/licenses/Apache-2.0
430
+