
Torch-Optimizer- مجموعة من الأمثل لـ Pytorch متوافقة مع وحدة Optim.
import torch_optimizer as optim
# model = ...
optimizer = optim . DiffGrad ( model . parameters (), lr = 0.001 )
optimizer . step ()عملية التثبيت بسيطة ، فقط:
$ pip تثبيت torch_optimizer
https://pytorch-optimizer.rtfd.io
يرجى الاستشهاد بالمؤلفين الأصليين لخوارزميات التحسين. إذا كنت تحب هذه الحزمة:
software {novik_torchoptimizers ،
العنوان = {{torch-Optimizer-مجموعة من خوارزميات التحسين لـ Pytorch.}} ،
المؤلف = {novik ، mykola} ،
السنة = 2020 ،
الشهر = 1 ،
الإصدار = {1.0.1}
}
أو استخدم ميزة GitHub: زر "استشهد بهذا المستودع".
| A2gradexp | https://arxiv.org/abs/1810.00553 |
| A2Gradinc | https://arxiv.org/abs/1810.00553 |
| A2graduni | https://arxiv.org/abs/1810.00553 |
| ACCSGD | https://arxiv.org/abs/1803.05591 |
| adabelief | https://arxiv.org/abs/2010.07468 |
| adabound | https://arxiv.org/abs/1902.09843 |
| آدمود | https://arxiv.org/abs/1910.12249 |
| adafactor | https://arxiv.org/abs/1804.04235 |
| Adahessian | https://arxiv.org/abs/2006.00719 |
| شثى | https://arxiv.org/abs/2006.08217 |
| aggmo | https://arxiv.org/abs/1804.00325 |
| أبولو | https://arxiv.org/abs/2009.13586 |
| فرق | https://arxiv.org/abs/1909.11015 |
| حمَل | https://arxiv.org/abs/1904.00962 |
| Lookahead | https://arxiv.org/abs/1907.08610 |
| Madgrad | https://arxiv.org/abs/2101.11075 |
| نوفوغراد | https://arxiv.org/abs/1905.11286 |
| بيد | https://www4.comp.polyu.edu.hk/~cslzhang/paper/cvpr18_pid.pdf |
| Qhadam | https://arxiv.org/abs/1810.06801 |
| QHM | https://arxiv.org/abs/1810.06801 |
| رادام | https://arxiv.org/abs/1908.03265 |
| الحارس | https://medium.com/@lessw/new-deep-learning-optimizer-ranger-synergistic-combination-of-radam-lookahead-for-the-best-of-2dc83f79a48d |
| Rangerqh | https://arxiv.org/abs/1810.06801 |
| رانجيرفا | https://arxiv.org/abs/1908.00700v2 |
| SGDP | https://arxiv.org/abs/2006.08217 |
| SGDW | https://arxiv.org/abs/1608.03983 |
| سات | https://arxiv.org/abs/1712.07628 |
| شامبو | https://arxiv.org/abs/1802.09568 |
| يوغي | https://papers.nips.cc/paper/8186-Adaptive-methods-for-nonconvex-optimization |
تساعدنا التصورات على معرفة كيفية تعامل الخوارزميات المختلفة مع المواقف البسيطة مثل: نقاط السرج ، والحد الأدنى المحلي ، والوديان ، وما إلى ذلك ، وقد توفر رؤى مثيرة للاهتمام في الأعمال الداخلية للخوارزمية. تم اختيار وظائف Rosenbrock و Rastrigin القياسية لأن:
RASTRIGIN هي وظيفة غير محددة ولديها الحد الأدنى العالمي في (0.0 ، 0.0). يعد العثور على الحد الأدنى من هذه الوظيفة مشكلة صعبة إلى حد ما بسبب مساحة البحث الكبيرة وعددها الكبير من الحد الأدنى المحلي.
يقوم كل مُحسّن بإجراء 501 خطوة تحسين. معدل التعلم هو أفضل المعاملات التي تم العثور عليها بواسطة خوارزمية البحث عن المعلمة المفرطة ، فإن بقية معلمات التوليف هي افتراضية. من السهل جدًا تمديد البرنامج النصي وضبط معلمات المحسن الأخرى.
أمثلة Python/viz_optimizers.py
لا تقم باختيار مُحسّن استنادًا إلى التصورات ، وله أساليب التحسين لها خصائص فريدة وقد تكون مصممة لأغراض مختلفة أو قد تتطلب جدولًا صريحًا لمعدل التعلم وما إلى ذلك. أفضل طريقة لمعرفة ذلك هي تجربة واحدة في مشكلتك الخاصة ومعرفة ما إذا كان يحسن الدرجات.
إذا كنت لا تعرف أي مُحسّن لاستخدامه ، فابدأ مع SGD/ADAM المدمج. بمجرد أن يصبح منطق التدريب جاهزًا وإعداد درجات خط الأساس ، قم بتبديل المحسن ومعرفة ما إذا كان هناك أي تحسن.
import torch_optimizer as optim
# model = ...
optimizer = optim . A2GradExp (
model . parameters (),
kappa = 1000.0 ,
beta = 10.0 ,
lips = 10.0 ,
rho = 0.5 ,
)
optimizer . step ()الورق : نزول التدرج العشوائي التكيفي الأمثل والمتسارع (2018) [https://arxiv.org/abs/1810.00553]
رمز المرجع : https://github.com/severilov/a2grad_optimizer
import torch_optimizer as optim
# model = ...
optimizer = optim . A2GradInc (
model . parameters (),
kappa = 1000.0 ,
beta = 10.0 ,
lips = 10.0 ,
)
optimizer . step ()الورق : نزول التدرج العشوائي التكيفي الأمثل والمتسارع (2018) [https://arxiv.org/abs/1810.00553]
رمز المرجع : https://github.com/severilov/a2grad_optimizer
import torch_optimizer as optim
# model = ...
optimizer = optim . A2GradUni (
model . parameters (),
kappa = 1000.0 ,
beta = 10.0 ,
lips = 10.0 ,
)
optimizer . step ()الورق : نزول التدرج العشوائي التكيفي الأمثل والمتسارع (2018) [https://arxiv.org/abs/1810.00553]
رمز المرجع : https://github.com/severilov/a2grad_optimizer
import torch_optimizer as optim
# model = ...
optimizer = optim . AccSGD (
model . parameters (),
lr = 1e-3 ,
kappa = 1000.0 ,
xi = 10.0 ,
small_const = 0.7 ,
weight_decay = 0
)
optimizer . step ()الورق : حول قصور مخططات الزخم الحالية للتحسين العشوائي (2019) [https://arxiv.org/abs/1803.05591]
الرمز المرجعي : https://github.com/rahulkidambi/accsgd
import torch_optimizer as optim
# model = ...
optimizer = optim . AdaBelief (
m . parameters (),
lr = 1e-3 ,
betas = ( 0.9 , 0.999 ),
eps = 1e-3 ,
weight_decay = 0 ,
amsgrad = False ,
weight_decouple = False ,
fixed_decay = False ,
rectify = False ,
)
optimizer . step ()الورق : Adabelief Optimizer ، التكيف خطوات من خلال الاعتقاد بالتدرجات المرصودة (2020) [https://arxiv.org/abs/2010.07468]
رمز المرجع : https://github.com/juntang-zhuang/adabelief-optimizer
import torch_optimizer as optim
# model = ...
optimizer = optim . AdaBound (
m . parameters (),
lr = 1e-3 ,
betas = ( 0.9 , 0.999 ),
final_lr = 0.1 ,
gamma = 1e-3 ,
eps = 1e-8 ,
weight_decay = 0 ,
amsbound = False ,
)
optimizer . step ()الورق : أساليب التدرج التكيفي مع معدل التعلم الديناميكي (2019) [https://arxiv.org/abs/1902.09843]
رمز المرجع : https://github.com/luolc/adabound
تقوم طريقة Adamod بتقييد معدلات التعلم التكيفية مع الحدود العليا التكيفية والضخمة. تعتمد حدود معدل التعلم الديناميكية على متوسطات الحركة الأسية لمعدلات التعلم التكيفية نفسها ، والتي تهدأ معدلات تعليمية كبيرة غير متوقعة وتثبيت تدريب الشبكات العصبية العميقة.
import torch_optimizer as optim
# model = ...
optimizer = optim . AdaMod (
m . parameters (),
lr = 1e-3 ,
betas = ( 0.9 , 0.999 ),
beta3 = 0.999 ,
eps = 1e-8 ,
weight_decay = 0 ,
)
optimizer . step ()الورق : طريقة ملزمة للتكيف والضخمة للتعلم العشوائي. (2019) [https://arxiv.org/abs/1910.12249]
رمز المرجع : https://github.com/lancopku/adamod
import torch_optimizer as optim
# model = ...
optimizer = optim . Adafactor (
m . parameters (),
lr = 1e-3 ,
eps2 = ( 1e-30 , 1e-3 ),
clip_threshold = 1.0 ,
decay_rate = - 0.8 ,
beta1 = None ,
weight_decay = 0.0 ,
scale_parameter = True ,
relative_step = True ,
warmup_init = False ,
)
optimizer . step ()الورق : AdaFactor: معدلات التعلم التكيفية مع تكلفة الذاكرة تحت الخطية. (2018) [https://arxiv.org/abs/1804.04235]
رمز المرجع : https://github.com/pytorch/fairseq/blob/master/fairseq/optim/adafactor.py
import torch_optimizer as optim
# model = ...
optimizer = optim . Adahessian (
m . parameters (),
lr = 1.0 ,
betas = ( 0.9 , 0.999 ),
eps = 1e-4 ,
weight_decay = 0.0 ,
hessian_power = 1.0 ,
)
loss_fn ( m ( input ), target ). backward ( create_graph = True ) # create_graph=True is necessary for Hessian calculation
optimizer . step ()الورق : Adahessian: مُحسّن من الدرجة الثانية التكيفية للتعلم الآلي (2020) [https://arxiv.org/abs/2006.00719]
الرمز المرجعي : https://github.com/amirgholami/adahessian
يقترح الشرك حلًا بسيطًا وفعالًا: في كل تكرار لمحسّن ADAM المطبقة على الأوزان المتغيرة للمقياس (على سبيل المثال ، أوزان القناعة التي تسبق طبقة BN) ، يزيل الشرك المكون الشعاعي (أي ، بالتوازي مع متجه الوزن) من متجه التحديث. بشكل حدسي ، تمنع هذه العملية التحديث غير الضروري على طول الاتجاه الشعاعي الذي يزيد فقط من قاعدة الوزن دون المساهمة في تقليل الخسارة.
import torch_optimizer as optim
# model = ...
optimizer = optim . AdamP (
m . parameters (),
lr = 1e-3 ,
betas = ( 0.9 , 0.999 ),
eps = 1e-8 ,
weight_decay = 0 ,
delta = 0.1 ,
wd_ratio = 0.1
)
optimizer . step ()الورق : إبطاء زيادة القاعدة في المحسنات القائمة على الزخم. (2020) [https://arxiv.org/abs/2006.08217]
الرمز المرجعي : https://github.com/clovaai/adamp
import torch_optimizer as optim
# model = ...
optimizer = optim . AggMo (
m . parameters (),
lr = 1e-3 ,
betas = ( 0.0 , 0.9 , 0.99 ),
weight_decay = 0 ,
)
optimizer . step ()الورق : الزخم المجمعة: الاستقرار من خلال التخميد السلبي. (2019) [https://arxiv.org/abs/1804.00325]
رمز المرجع : https://github.com/athemathmo/aggmo
import torch_optimizer as optim
# model = ...
optimizer = optim . Apollo (
m . parameters (),
lr = 1e-2 ,
beta = 0.9 ,
eps = 1e-4 ,
warmup = 0 ,
init_lr = 0.01 ,
weight_decay = 0 ,
)
optimizer . step ()الورق : أبولو: طريقة شبه قطرية قطرية من أجل التحسين العشوائي غير العشوائي. (2020) [https://arxiv.org/abs/2009.13586]
رمز المرجع : https://github.com/xuezhemax/apollo
مُحسِّن بناءً على الفرق بين الحاضر والتدرج السابق المباشر ، يتم ضبط حجم الخطوة لكل معلمة بطريقة يجب أن يكون لها حجم خطوة أكبر لمعلمات تغيير التدرج بشكل أسرع وحجم خطوة أقل لمعلمات تغيير التدرج المنخفض.
import torch_optimizer as optim
# model = ...
optimizer = optim . DiffGrad (
m . parameters (),
lr = 1e-3 ,
betas = ( 0.9 , 0.999 ),
eps = 1e-8 ,
weight_decay = 0 ,
)
optimizer . step ()الورق : Diffgradr: طريقة تحسين للشبكات العصبية التلافيفية. (2019) [https://arxiv.org/abs/1909.11015]
رمز المرجع : https://github.com/shivram1987/diffgrad
import torch_optimizer as optim
# model = ...
optimizer = optim . Lamb (
m . parameters (),
lr = 1e-3 ,
betas = ( 0.9 , 0.999 ),
eps = 1e-8 ,
weight_decay = 0 ,
)
optimizer . step ()الورق : تحسين الدُفعات الكبيرة للتعلم العميق: تدريب بيرت في 76 دقيقة (2019) [https://arxiv.org/abs/1904.00962]
رمز المرجع : https://github.com/cybertronai/pytorch-lamb
import torch_optimizer as optim
# model = ...
# base optimizer, any other optimizer can be used like Adam or DiffGrad
yogi = optim . Yogi (
m . parameters (),
lr = 1e-2 ,
betas = ( 0.9 , 0.999 ),
eps = 1e-3 ,
initial_accumulator = 1e-6 ,
weight_decay = 0 ,
)
optimizer = optim . Lookahead ( yogi , k = 5 , alpha = 0.5 )
optimizer . step ()Paper : Lookahead Optimizer: K Steps Forward ، خطوة واحدة (2019) [https://arxiv.org/abs/1907.08610]
رمز المرجع : https://github.com/alphadl/lookahead.pytorch
import torch_optimizer as optim
# model = ...
optimizer = optim . MADGRAD (
m . parameters (),
lr = 1e-2 ,
momentum = 0.9 ,
weight_decay = 0 ,
eps = 1e-6 ,
)
optimizer . step ()الورق : التكيف دون حل وسط: طريقة تدرج زخم ، تكيفية ، متوسطة ثنائية لتحسين العشوائي (2021) [https://arxiv.org/abs/2101.11075]
رمز المرجع : https://github.com/facebookresearch/madgrad
import torch_optimizer as optim
# model = ...
optimizer = optim . NovoGrad (
m . parameters (),
lr = 1e-3 ,
betas = ( 0.9 , 0.999 ),
eps = 1e-8 ,
weight_decay = 0 ,
grad_averaging = False ,
amsgrad = False ,
)
optimizer . step ()الورق : أساليب التدرج العشوائي مع اللحظات التكيفية للطبقة لتدريب الشبكات العميقة (2019) [https://arxiv.org/abs/1905.11286]
رمز المرجع : https://github.com/nvidia/deeplearningexamples/
import torch_optimizer as optim
# model = ...
optimizer = optim . PID (
m . parameters (),
lr = 1e-3 ,
momentum = 0 ,
dampening = 0 ,
weight_decay = 1e-2 ,
integral = 5.0 ,
derivative = 10.0 ,
)
optimizer . step ()ورقة : نهج وحدة تحكم PID لتحسين العشوائي للشبكات العميقة (2018) [http://www4.comp.polyu.edu.hk/~cslzhang/paper/cvpr18_pid.pdf]
رمز المرجع : https://github.com/tensorboy/pidoptimizer
import torch_optimizer as optim
# model = ...
optimizer = optim . QHAdam (
m . parameters (),
lr = 1e-3 ,
betas = ( 0.9 , 0.999 ),
nus = ( 1.0 , 1.0 ),
weight_decay = 0 ,
decouple_weight_decay = False ,
eps = 1e-8 ,
)
optimizer . step ()الورق : شبه زخم وآدم للتعلم العميق (2019) [https://arxiv.org/abs/1810.06801]
رمز المرجع : https://github.com/facebookresearch/qhoptim
import torch_optimizer as optim
# model = ...
optimizer = optim . QHM (
m . parameters (),
lr = 1e-3 ,
momentum = 0 ,
nu = 0.7 ,
weight_decay = 1e-2 ,
weight_decay_type = 'grad' ,
)
optimizer . step ()الورق : شبه زخم وآدم للتعلم العميق (2019) [https://arxiv.org/abs/1810.06801]
رمز المرجع : https://github.com/facebookresearch/qhoptim
تم إهماله ، يرجى استخدام الإصدار المقدم من Pytorch.
import torch_optimizer as optim
# model = ...
optimizer = optim . RAdam (
m . parameters (),
lr = 1e-3 ,
betas = ( 0.9 , 0.999 ),
eps = 1e-8 ,
weight_decay = 0 ,
)
optimizer . step ()الورق : حول تباين معدل التعلم التكيفي وما بعده (2019) [https://arxiv.org/abs/1908.03265]
الرمز المرجعي : https://github.com/liyuanlucasliu/radam
import torch_optimizer as optim
# model = ...
optimizer = optim . Ranger (
m . parameters (),
lr = 1e-3 ,
alpha = 0.5 ,
k = 6 ,
N_sma_threshhold = 5 ,
betas = ( .95 , 0.999 ),
eps = 1e-5 ,
weight_decay = 0
)
optimizer . step ()الورق : مُحسّن جديد للتعلم العميق ، الحارس: مزيج تآزري من Radam + Lookahead لكلا من كلاهما (2019) [https://medium.com/@lessw/new-deep-learning-optimizer-ranger-synergistic-combination-of-radam-slookahead--the-s--f-2dc83f79a48d]
الرمز المرجعي : https://github.com/lessw2020/ranger-deep-learning-optimizer
import torch_optimizer as optim
# model = ...
optimizer = optim . RangerQH (
m . parameters (),
lr = 1e-3 ,
betas = ( 0.9 , 0.999 ),
nus = ( .7 , 1.0 ),
weight_decay = 0.0 ,
k = 6 ,
alpha = .5 ,
decouple_weight_decay = False ,
eps = 1e-8 ,
)
optimizer . step ()ورقة : شبه زخم yperbolic وآدم للتعلم العميق (2018) [https://arxiv.org/abs/1810.06801]
الرمز المرجعي : https://github.com/lessw2020/ranger-deep-learning-optimizer
import torch_optimizer as optim
# model = ...
optimizer = optim . RangerVA (
m . parameters (),
lr = 1e-3 ,
alpha = 0.5 ,
k = 6 ,
n_sma_threshhold = 5 ,
betas = ( .95 , 0.999 ),
eps = 1e-5 ,
weight_decay = 0 ,
amsgrad = True ,
transformer = 'softplus' ,
smooth = 50 ,
grad_transformer = 'square'
)
optimizer . step ()الورق : معايرة معدل التعلم التكيفي لتحسين تقارب آدم (2019) [https://arxiv.org/abs/1908.00700v2]
الرمز المرجعي : https://github.com/lessw2020/ranger-deep-learning-optimizer
import torch_optimizer as optim
# model = ...
optimizer = optim . SGDP (
m . parameters (),
lr = 1e-3 ,
momentum = 0 ,
dampening = 0 ,
weight_decay = 1e-2 ,
nesterov = False ,
delta = 0.1 ,
wd_ratio = 0.1
)
optimizer . step ()الورق : إبطاء زيادة القاعدة في المحسنات القائمة على الزخم. (2020) [https://arxiv.org/abs/2006.08217]
الرمز المرجعي : https://github.com/clovaai/adamp
import torch_optimizer as optim
# model = ...
optimizer = optim . SGDW (
m . parameters (),
lr = 1e-3 ,
momentum = 0 ,
dampening = 0 ,
weight_decay = 1e-2 ,
nesterov = False ,
)
optimizer . step ()الورق : SGDR: هبوط التدرج العشوائي مع إعادة التشغيل الدافئ (2017) [https://arxiv.org/abs/1608.03983]
الرمز المرجعي : Pytorch/Pytorch#22466
import torch_optimizer as optim
# model = ...
optimizer = optim . SWATS (
model . parameters (),
lr = 1e-1 ,
betas = ( 0.9 , 0.999 ),
eps = 1e-3 ,
weight_decay = 0.0 ,
amsgrad = False ,
nesterov = False ,
)
optimizer . step ()ورقة : تحسين أداء التعميم عن طريق التبديل من آدم إلى SGD (2017) [https://arxiv.org/abs/1712.07628]
رمز المرجع : https://github.com/mrpatekful/swats
import torch_optimizer as optim
# model = ...
optimizer = optim . Shampoo (
m . parameters (),
lr = 1e-1 ,
momentum = 0.0 ,
weight_decay = 0.0 ,
epsilon = 1e-4 ,
update_freq = 1 ,
)
optimizer . step ()الورق : الشامبو: تحسين الموتر العشوائي المسبق (2018) [https://arxiv.org/abs/1802.09568]
رمز المرجع : https://github.com/moskomule/shampoo.pytorch
Yogi هي خوارزمية تحسين تعتمد على آدم مع مزيد من التحكم في معدل التعلم الفعال للحبوب ، ولديها ضمانات نظرية مماثلة على التقارب مثل آدم.
import torch_optimizer as optim
# model = ...
optimizer = optim . Yogi (
m . parameters (),
lr = 1e-2 ,
betas = ( 0.9 , 0.999 ),
eps = 1e-3 ,
initial_accumulator = 1e-6 ,
weight_decay = 0 ,
)
optimizer . step ()الورق : الطرق التكيفية للتحسين غير المتكافئ (2018) [https://papers.nips.cc/paper/8186-Adaptive-methods-for-nonconvex-optimization]
الرمز المرجعي : https://github.com/4rtemi5/yogi-Optimizer_keras