U
    ¯Ê¹j  ã                   @   s,   d dl Z d dlmZ deeedœdd„ZdS )	é    N)Úadaptive_clip_gradÚnormç       @)ÚvalueÚmodeÚ	norm_typec                 C   sh   |dkrt jjj| ||d� nF|dkr8t jj | |¡ n,|dkrPt| ||d� ndsdtd|› d�ƒ‚dS )	a   Dispatch to gradient clipping method

    Args:
        parameters (Iterable): model parameters to clip
        value (float): clipping value/factor/norm, mode dependant
        mode (str): clipping mode, one of 'norm', 'value', 'agc'
        norm_type (float): p-norm, default 2.0
    r   )r   r   ZagcFzUnknown clip mode (z).N)ÚtorchÚnnÚutilsZclip_grad_norm_Zclip_grad_value_r   ÚAssertionError)Ú
parametersr   r   r   © r   úS/var/www/html/bwave/python/venv/lib/python3.8/site-packages/timm/utils/clip_grad.pyÚdispatch_clip_grad   s    	r   )r   r   )r   Ztimm.utils.agcr   ÚfloatÚstrr   r   r   r   r   Ú<module>   s   