
    LMh                         d dl m Z  d dlmZ ddlmZ 	 d dlZn'# eef$ rZ		 d dl
mZ n# e$ r e	w xY wY dZ	[	ndZ	[	ww xY wddgiZd	gZ G d
 d	ej        j                  ZdS )    )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dS )r	   z,Keras callback for epoch and batch progress.Nc                     dS )Nr    logss    J/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/tqdm/keras.py<lambda>zTqdmCallback.<lambda>   s         c                      d fd	}|S )Nc                                }r6rt                    fdD                                  d                               |           d S )Nc                 <    g | ]}                     |d           S )r   )pop).0ir   s     r   
<listcomp>z?TqdmCallback.bar2callback.<locals>.callback.<locals>.<listcomp>   s%    111TXXa^^111r   F)refresh)r   set_postfixupdate)_r   nbardeltar   s    ` r   callbackz+TqdmCallback.bar2callback.<locals>.callback   so    dA 5 2::D1111S1111e444JJqMMMMMr   )Nr   )r   r   r   r    s   ``` r   bar2callbackzTqdmCallback.bar2callback   s4    	 	 	 	 	 	 	 	 r   r   c                 b   |rt          |fi |}|| _         ||d          | _        |                     | j                  | _        |r|r||z   dz
  |z  x| _        }n	dx| _        }|| _        |dk    r: ||dd          | _        |                     | j        ddgd	 
          | _        dS dS )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                 .    |                      dd          S Nr(   r   getr   s    r   r   z'TqdmCallback.__init__.<locals>.<lambda>A   s    488FA#6#6 r   r   r   )	r   
tqdm_class	epoch_barr!   on_epoch_endbatchesverbose	batch_baron_batch_end)selfepochs	data_size
batch_sizer2   r.   tqdm_kwargsr1   s           r   __init__zTqdmCallback.__init__    s    &  	< ;;{;;J$#&w??? --dn== 	* 	*&/*&<q&@Z%OODL77%))DL7a<<'ZgG5QQQDN $ 1 1Wf$566 !2 !8 !8D <r   c                     | j         j        } |d |dd                     }|-|| j        j        k    r| j                            |           d S d S d S )Nr6   nb_epochr$   )paramsr,   r/   r$   reset)r5   r   __r>   
auto_totals        r   on_train_beginzTqdmCallback.on_train_beginC   sj    VHffZ&>&>??
!jDN4H&H&HN  z 22222 "!&H&Hr   c           
         | j         j        |k     r| j         }|x|_        x|_        |_        | j        r| j        j        } |d |d |dd                               p| j        }| j        dk    r}t          | d          r| j	        
                                 |                     |ddd |d	d          pdz  
          | _	        |                     | j	        ddgd           | _        d S | j        dk    r8d |d	d          pdz  | j	        _        | j	                            |           d S t!          d          d S )Nsamples	nb_samplesteps   r3   r&   Tr   r8   )r$   r%   r'   
unit_scaler(   c                 .    |                      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initialr2   r>   r,   r1   hasattrr3   closer.   r!   r4   rH   r?   KeyError)r5   r#   r   r@   ebarr>   r$   s          r   on_epoch_beginzTqdmCallback.on_epoch_beginI   s   >e##>D8==DF=T&< 	4[_FF9ffVVGT22'4 '4 5 5 E8< |q  4-- +N((***!%gT FF<$;$;$@qA "1 "C "C %)$5$5N&(9:: %6 %< %<!!! "",-a1H1H1MA,N)$$5$111112333#	4 	4r   c                     t          | d          r| j                                         | j                                         d S )Nr3   )rL   r3   rM   r/   )r5   r   r@   s      r   on_train_endzTqdmCallback.on_train_end`   sB    4%% 	#N  """r   c                     t          | j        dd          }|dS ddlm}  ||           t          | dd          }| ||j                   dS dS )z*Displays in the current cell in Notebooks.	containerNr   )displayr3   )getattrr/   notebookrU   rT   )r5   rT   rU   r3   s       r   rU   zTqdmCallback.displaye   sz    DNK>>	F%%%%%%	D+t44	 GI'((((( ! r   c                      dS NTr   r   r   r   _implements_train_batch_hooksz*TqdmCallback._implements_train_batch_hooksp       tr   c                      dS rY   r   r   r   r   _implements_test_batch_hooksz)TqdmCallback._implements_test_batch_hookst   r[   r   c                      dS rY   r   r   r   r   _implements_predict_batch_hooksz,TqdmCallback._implements_predict_batch_hooksx   r[   r   )__name__
__module____qualname____doc__staticmethodr!   	tqdm_autor:   rB   rP   rR   rU   rZ   r]   r_   r   r   r   r	   r	      s        66">> 
 
 
 \
 #dtQ%!8 !8 !8 !8F3 3 34 4 4.  
	) 	) 	)   \   \   \  r   )r   	functoolsr   autor   re   r   ImportErrorAttributeErrore
tensorflow
__author____all__	callbacksCallbackr	   r   r   r   <module>rp      s               # # # # # #LLLL^$   $$$$$$$    	%$$$$
 k]+

i i i i i5?+ i i i i is    =(808=