o
    9wiF
                     @   sh   d dl mZmZ d dlmZ d dlmZ 							dd
edee dee dededede	fddZdS )    )OptionalText)	Optimizer)ReduceLROnPlateauNmin:0yE>MbP?      ?2   	optimizermonitor	directionmin_lrmax_lrfactorpatiencec           	      K   s:   | j D ]}||d< qt| |||ddd|ddd
d|d	d
S )aV  Wrapper around ReduceLROnPlateau learning rate scheduler

    Parameters
    ----------
    optimizer : Optimizer
        Optimizer
    min_lr : float, optional
        Defaults to 1e-8.
    max_lr : float, optional
        Defaults to 1e-3
    factor : float, optional
        Defaults to 0.5
    patience : int, optional
        Wait that many epochs with no improvement before reducing the learning rate.
        Defaults to 50.
    monitor : str, optional
        Value to monitor
    direction : {"min", "max"}, optional
        "min" (resp. "max") means smaller (resp. larger) is better.
    lrg-C6?relr   r   F)	moder   r   	thresholdthreshold_modecooldownr   epsverboseepochT)	schedulerintervalr   strict)param_groups_ReduceLROnPlateau)	r   r   r   r   r   r   r   kwargsg r"   o/home/ubuntu/sommelier/.venv/lib/python3.10/site-packages/pyannote/audio/cli/lr_schedulers/ReduceLROnPlateau.pyr      s$   
 
r   )Nr   r   r   r	   r
   )
typingr   r   torch.optimr   torch.optim.lr_schedulerr   r   floatintr"   r"   r"   r#   <module>   s0   