
    nd                         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    *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_sizer3   r/   tqdm_kwargsr2   s           r   __init__zTqdmCallback.__init__    s    &  	< ;;{;;J$#&w??? --dn== 	* 	*&/*&<q&@Z%OODL77%))DL7a< 	8'ZgG5QQQDN $ 1 1Wf$566 !2 !8 !8D	8 	8r   c                     | j         j        } |d |dd                     }|-|| j        j        k    r| j                            |           d S d S d S )Nr7   nb_epochr%   )paramsr-   r0   r%   reset)r6   r   __r?   
auto_totals        r   on_train_beginzTqdmCallback.on_train_beginC   st    VHffZ&>&>??
 	3jDN4H&H 	3N  z 22222	3 	3 	3 	3r   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   r4   r'   Tr   r9   )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)r0   r   last_print_ninitialr3   r?   r-   r2   hasattrr4   closer/   r"   r5   rI   r@   KeyError)r6   r$   r   rA   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4-- +N((***!%gT FF<$;$;$@qA "1 "C "C %)$5$5N&(9:: %6 %< %<!!! " 4,-a1H1H1MA,N)$$5$111112333#	4 	4r   c                 x    | j         r| j                                         | j                                         d S r!   )r3   r4   rN   r0   )r6   r   rA   s      r   on_train_endzTqdmCallback.on_train_end`   s:    < 	#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   )displayr4   )getattrr0   notebookrV   rU   )r6   rU   rV   r4   s       r   rV   zTqdmCallback.displaye   s    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 rZ   r   r   r   r   _implements_test_batch_hooksz)TqdmCallback._implements_test_batch_hookst   r\   r   c                      dS rZ   r   r   r   r   _implements_predict_batch_hooksz,TqdmCallback._implements_predict_batch_hooksx   r\   r   )__name__
__module____qualname____doc__staticmethodr"   	tqdm_autor;   rC   rQ   rS   rV   r[   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   rf   r   ImportErrorAttributeErrore
tensorflow
__author____all__	callbacksCallbackr	   r   r   r   <module>rq      s               # # # # # #LLLL^$   $$$$$$$    	%$$$$
 k]+

i i i i i5?+ i i i i is    =(808=