
    l0j,                         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    M/home/wildlama/miniconda3/envs/lam/lib/python3.11/site-packages/tqdm/keras.py<lambda>zTqdmCallback.<lambda>   s         c                      d fd	}|S )Nc                      |          }|rCr*t          |          }D ]}|                    |d                               |d                               |           d S )Nr   F)refresh)r   popset_postfixupdate)_r   nibardeltar   s       r   callbackz+TqdmCallback.bar2callback.<locals>.callback   sv    dA 5 '::D  ' 'A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>B   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_sizer/   r+   tqdm_kwargsr.   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 )Nr3   nb_epochr!   )paramsr)   r,   r!   reset)r2   r   __r;   
auto_totals        r   on_train_beginzTqdmCallback.on_train_beginD   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   r0   r#   Tr   r5   )r!   r"   r$   
unit_scaler%   c                 .    |                      dd          S r'   r(   r   s    r   r   z-TqdmCallback.on_epoch_begin.<locals>.<lambda>Z   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_beginJ   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 )Nr0   )rI   r0   rJ   r,   )r2   r   r=   s      r   on_train_endzTqdmCallback.on_train_enda   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   )displayr0   )getattrr,   notebookrR   rQ   )r2   rQ   rR   r0   s       r   rR   zTqdmCallback.displayf   sz    DNK>>	F%%%%%%	D+t44	 GI'((((( ! r   c                      dS NTr   r   r   r   _implements_train_batch_hooksz*TqdmCallback._implements_train_batch_hooksq       tr   c                      dS rV   r   r   r   r   _implements_test_batch_hooksz)TqdmCallback._implements_test_batch_hooksu   rX   r   c                      dS rV   r   r   r   r   _implements_predict_batch_hooksz,TqdmCallback._implements_predict_batch_hooksy   rX   r   )__name__
__module____qualname____doc__staticmethodr   	tqdm_autor7   r?   rM   rO   rR   rW   rZ   r\   r   r   r   r	   r	      s        66">>    \ #dtQ%!8 !8 !8 !8F3 3 34 4 4.  
	) 	) 	)   \   \   \  r   )r   	functoolsr   autor   rb   r   ImportErrorAttributeErrore
tensorflow
__author____all__	callbacksCallbackr	   r   r   r   <module>rm      s               # # # # # #LLLL^$   $$$$$$$    	%$$$$
 k]+

j j j j j5?+ j j j j js    =(808=