o
    œÜÓh$	  ã                   @   s@   d dl mZ G dd„ deƒZG dd„ deƒZG dd„ deƒZdS )	é    )ÚOptimizer1Statec                       s0   e Zd Z									d
‡ fdd	„	Z‡  ZS )ÚSGDr   Fé    Né   éd   Tc                    s8   |dkrt dƒ‚tƒ  d||||fd||||	|
|¡ d S )Nr   ú&SGD without momentum is not supported!Úmomentumç        ©ÚNotImplementedErrorÚsuperÚ__init__)ÚselfÚparamsÚlrr   Ú	dampeningÚweight_decayÚnesterovÚ
optim_bitsÚargsÚmin_8bit_sizeÚpercentile_clippingÚ
block_wise©Ú	__class__© úL/var/www/html/ai/venv/lib/python3.10/site-packages/bitsandbytes/optim/sgd.pyr   	   s   õzSGD.__init__)	r   r   r   Fr   Nr   r   T©Ú__name__Ú
__module__Ú__qualname__r   Ú__classcell__r   r   r   r   r      s    ôr   c                       ó.   e Zd Z								d	‡ fdd„	Z‡  ZS )
ÚSGD8bitr   FNr   r   Tc                    ó8   |dkrt dƒ‚tƒ  d||||fd|d|||	|
¡ d S )Nr   r   r   r	   é   r
   ©r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )   ó   õzSGD8bit.__init__©r   r   r   FNr   r   Tr   r   r   r   r   r#   (   ó    õr#   c                       r"   )
ÚSGD32bitr   FNr   r   Tc                    r$   )Nr   r   r   r	   r   r
   r&   r   r   r   r   H   r'   zSGD32bit.__init__r(   r   r   r   r   r   r*   G   r)   r*   N)Úbitsandbytes.optim.optimizerr   r   r#   r*   r   r   r   r   Ú<module>   s    