
    Fg                         d dl m Z  d dlmZ ddlmZ 	 d dlZddgiZd	gZ G d
 d	ej                  j                        Zy# eef$ rZ		 d dl
mZ n# e$ r e	w xY wY dZ	[	GdZ	[	ww xY w)    )copy)partial   )tqdmN)keraszgithub.com/	casperdclTqdmCallbackc                       e Zd ZdZedd fd       ZddddefdZd Zd Z	d	 Z
d
 Zed        Zed        Zed        Zy)r	   z,Keras callback for epoch and batch progress.Nc                      y)Nr    logss    ?/var/www/openai/venv/lib/python3.12/site-packages/tqdm/keras.py<lambda>zTqdmCallback.<lambda>   s        c                      d fd	}|S )Nc                      |      }|r@r+t        |      }D cg c]  }|j                  |d       c} j                  |d       j                  |       y c c}w )Nr   F)refresh)r   popset_postfixupdate)_r   nibardeltar   s       r   callbackz+TqdmCallback.bar2callback.<locals>.callback   sW    dA:D-01STXXa^S1e4JJqM 2s   A)Nr   )r   r   r   r   s   ``` r   bar2callbackzTqdmCallback.bar2callback   s    	 r   r   c                 R   |rt        |fi |}|| _         ||d      | _        | j                  | j                        | _        |r|r||z   dz
  |z  x| _        }n	dx| _        }|| _        |dk(  r7 ||dd      | _        | j                  | j                  ddgd	 
      | _        yy)a^  
        Parameters
        ----------
        epochs  : int, optional
        data_size  : int, optional
            Number of training pairs.
        batch_size  : int, optional
            Number of training pairs per batch.
        verbose  : int
            0: epoch, 1: batch (transient), 2: batch. [default: 1].
            Will be set to `0` unless both `data_size` and `batch_size`
            are given.
        tqdm_class  : optional
            `tqdm` class to use for bars [default: `tqdm.auto.tqdm`].
        tqdm_kwargs  : optional
            Any other arguments used for all bars.
        epoch)totalunitr   NbatchF)r!   r"   leavesizec                 &    | j                  dd      S Nr%   r   getr   s    r   r   z'TqdmCallback.__init__.<locals>.<lambda>A   s    488FA#6r   r   r   )	r   
tqdm_class	epoch_barr   on_epoch_endbatchesverbose	batch_baron_batch_end)selfepochs	data_size
batch_sizer/   r+   tqdm_kwargsr.   s           r   __init__zTqdmCallback.__init__    s    &  ;{;J$#&w? --dnn=&/*&<q&@Z%OODL7%))DL7a<'gG5QDN $ 1 1Wf$56 !2 !8D r   c                     | j                   j                  } |d |dd             }|7|| j                  j                  k7  r| j                  j	                  |       y y y )Nr3   nb_epochr!   )paramsr)   r,   r!   reset)r2   r   __r;   
auto_totals        r   on_train_beginzTqdmCallback.on_train_beginC   sW    HfZ&>?
!jDNN4H4H&HNN  z 2 'I!r   c           
         | j                   j                  |k  r!| j                   }|x|_        x|_        |_        | j                  r| j
                  j                  } |d |d |dd                   xs | j                  }| j                  dk(  rut        | d      r| j                  j                          | j                  |ddd |d	d      xs dz  
      | _	        | j                  | j                  ddgd       | _        y | j                  dk(  r<d |d	d      xs dz  | j                  _        | j                  j                  |       y t!        d      y )Nsamples	nb_samplesteps   r0   r#   Tr   r5   )r!   r"   r$   
unit_scaler%   c                 &    | j                  dd      S r'   r(   r   s    r   r   z-TqdmCallback.on_epoch_begin.<locals>.<lambda>Y   s    txx':r   r*   r:   zUnknown verbosity)r,   r   last_print_ninitialr/   r;   r)   r.   hasattrr0   closer+   r   r1   rE   r<   KeyError)r2   r    r   r=   ebarr;   r!   s          r   on_epoch_beginzTqdmCallback.on_epoch_beginI   sI   >>e#>>D8==DF=T&<<[[__F9fVGT2'4 5 E8< ||q 4-NN((*!%gT F<$;$@qA "1 "C %)$5$5NN&(9: %6 %<! ",-a1H1MA,N)$$5$1233# r   c                     t        | d      r| j                  j                          | j                  j                          y )Nr0   )rI   r0   rJ   r,   )r2   r   r=   s      r   on_train_endzTqdmCallback.on_train_end`   s,    4%NN  "r   c                     t        | j                  dd      }|yddlm}  ||       t        | dd      }| ||j                         yy)z*Displays in the current cell in Notebooks.	containerNr   )displayr0   )getattrr,   notebookrR   rQ   )r2   rQ   rR   r0   s       r   rR   zTqdmCallback.displaye   sO    DNNK>	%	D+t4	 I''( !r   c                       yNTr   r   r   r   _implements_train_batch_hooksz*TqdmCallback._implements_train_batch_hooksp       r   c                       yrV   r   r   r   r   _implements_test_batch_hooksz)TqdmCallback._implements_test_batch_hookst   rX   r   c                       yrV   r   r   r   r   _implements_predict_batch_hooksz,TqdmCallback._implements_predict_batch_hooksx   rX   r   )__name__
__module____qualname____doc__staticmethodr   	tqdm_autor7   r?   rM   rO   rR   rW   rZ   r\   r   r   r   r	   r	      s    6"> 
 
 #dtQ%!8F34.
	)      r   )r   	functoolsr   autor   rb   r   ImportErrorAttributeErrore
tensorflow
__author____all__	callbacksCallbackr	   r   r   r   <module>rm      s|      # k]+

i5??++ i 	^$ $  	%s)   A   A$AAAAA$