
    +h                         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/html/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   sS    dA:D-01TXXa^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#6 r   r   r   )	r   
tqdm_class	epoch_barr   on_epoch_endbatchesverbose	batch_baron_batch_end)selfepochs	data_size
batch_sizer0   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 )Nr4   nb_epochr"   )paramsr*   r-   r"   reset)r3   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   r1   r$   Tr   r6   )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initialr0   r<   r*   r/   hasattrr1   closer,   r   r2   rF   r=   KeyError)r3   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                     | j                   r| j                  j                          | j                  j                          y r   )r0   r1   rK   r-   )r3   r   r>   s      r   on_train_endzTqdmCallback.on_train_end`   s)    <<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   )displayr1   )getattrr-   notebookrS   rR   )r3   rR   rS   r1   s       r   rS   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rW   r   r   r   r   _implements_test_batch_hooksz)TqdmCallback._implements_test_batch_hookst   rY   r   c                       yrW   r   r   r   r   _implements_predict_batch_hooksz,TqdmCallback._implements_predict_batch_hooksx   rY   r   )__name__
__module____qualname____doc__staticmethodr   	tqdm_autor8   r@   rN   rP   rS   rX   r[   r]   r   r   r   r	   r	      s    6"> 
 
 #dtQ%!8F34.
	)      r   )r   	functoolsr   autor   rc   r   ImportErrorAttributeErrore
tensorflow
__author____all__	callbacksCallbackr	   r   r   r   <module>rn      s|      # k]+

i5??++ i 	^$ $  	%s)   A   A$AAAAA$