o
    z“©iƒ	  ã                   @   s´  d Z ddlmZmZmZ ddlmZmZmZ ddl	m
Z
 ddlmZmZmZ ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm Z  ddl!m"Z" ddl#m$Z$ ddl%m&Z& ddl'm(Z( ddl)m*Z* ddl+m,Z, ddl-m.Z. ddl/m0Z0 ddl1m2Z2 ddl3m4Z4 ddl5m6Z6 ddl7m8Z8 ddl9m:Z: dZ;dZ<eeeeeee"e$e&e(e*e,e.e0eeee2e4e8e6e:gZ=dd „ e=D ƒZ>d!e?d"ee
 fd#d$„Z@d%S )&a“  torch-optimizer -- collection of of optimization algorithms for PyTorch.

API and usage patterns are the same as `torch.optim`__

Example
-------

>>> import torch_optimizer as optim
# model = ...
>>> optimizer = optim.DiffGrad(model.parameters(), lr=0.001)
>>> optimizer.step()

See documentation for full list of supported optimizers.

__ https://pytorch.org/docs/stable/optim.html#module-torch.optim
é    )ÚDictÚListÚType)ÚRangerÚRangerQHÚRangerVA)Ú	Optimizeré   )Ú	A2GradExpÚ	A2GradIncÚ	A2GradUni)ÚAccSGD)Ú	AdaBelief)ÚAdaBound)Ú	Adafactor)Ú
Adahessian)ÚAdaMod)ÚAdamP)ÚAggMo)ÚApollo)ÚDiffGrad)ÚLamb)Ú	Lookahead)ÚNovoGrad)ÚPID)ÚQHAdam)ÚQHM)ÚRAdam)ÚSGDP)ÚSGDW)ÚShampoo)ÚSWATS)ÚYogi)r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r    r"   Úgetz0.1.0c                 C   s   i | ]}|j  ¡ |“qS © )Ú__name__Úlower)Ú.0Úoptr$   r$   úL/home/ubuntu/.local/lib/python3.10/site-packages/torch_optimizer/__init__.pyÚ
<dictcomp>k   s    ÿr*   ÚnameÚreturnc                 C   s(   t  |  ¡ ¡}|du rtd | ¡ƒ‚|S )zmReturns an optimizer class from its name. Case insensitive.

    Args:
        name: the optimizer name.
    NzOptimizer {} not found)Ú_NAME_OPTIM_MAPr#   r&   Ú
ValueErrorÚformat)r+   Úoptimizer_classr$   r$   r)   r#   p   s   r#   N)AÚ__doc__Útypingr   r   r   Úpytorch_rangerr   r   r   Útorch.optim.optimizerr   Úa2gradr
   r   r   Úaccsgdr   Ú	adabeliefr   Úadaboundr   Ú	adafactorr   Ú
adahessianr   Úadamodr   Úadampr   Úaggmor   Úapollor   Údiffgradr   Úlambr   Ú	lookaheadr   Únovogradr   Úpidr   Úqhadamr   Úqhmr   Úradamr   Úsgdpr   Úsgdwr   Úshampoor    Úswatsr!   Úyogir"   Ú__all__Ú__version__Ú_package_optsr-   Ústrr#   r$   r$   r$   r)   Ú<module>   sp     êÿ