o
    2h                      @   sL   d dl mZ d dlmZ d dlmZ d dlmZ edG dd deZdS )	    )keras_export)Callback)io_utils)Progbarzkeras.callbacks.ProgbarLoggerc                       s   e Zd ZdZ fddZdd Zd#ddZd#d	d
Zd#ddZd#ddZ	d#ddZ
d#ddZd#ddZd#ddZd#ddZd#ddZdd Zdd Zd#dd Zd!d" Z  ZS )$ProgbarLoggera  Callback that prints metrics to stdout.

    Args:
        count_mode: One of `"steps"` or `"samples"`.
            Whether the progress bar should
            count samples seen or steps (batches) seen.

    Raises:
        ValueError: In case of invalid `count_mode`.
    c                    s2   t    d| _d | _d | _d| _d| _d| _d S )Nr      F)super__init__seenprogbartargetverboseepochs_called_in_fitself	__class__ ]/var/www/html/chatgem/venv/lib/python3.10/site-packages/keras/src/callbacks/progbar_logger.pyr	      s   

zProgbarLogger.__init__c                 C   s2   |d }|dkr
d}|| _ |d | _|d | _d S )Nr   autor   r   steps)r   r   r   )r   paramsr   r   r   r   
set_params   s   
zProgbarLogger.set_paramsNc                 C   s
   d| _ d S )NT)r   r   logsr   r   r   on_train_begin&   s   
zProgbarLogger.on_train_beginc                 C   s   | j s|   |   d S d S N)r   _reset_progbar_maybe_init_progbarr   r   r   r   on_test_begin*   s   zProgbarLogger.on_test_beginc                 C   s   |    |   d S r   )r   r   r   r   r   r   on_predict_begin/   s   zProgbarLogger.on_predict_beginc                 C   sH   |    |   | jr | jdkr"td|d  d| j  d S d S d S )Nr   zEpoch /)r   r   r   r   r   	print_msgr   epochr   r   r   r   on_epoch_begin3   s
    zProgbarLogger.on_epoch_beginc                 C   s   |  || d S r   _update_progbarr   batchr   r   r   r   on_train_batch_end9   s   z ProgbarLogger.on_train_batch_endc                 C   s   | j s| || d S d S r   )r   r(   r)   r   r   r   on_test_batch_end<   s   zProgbarLogger.on_test_batch_endc                 C   s   |  |d  d S r   r'   r)   r   r   r   on_predict_batch_end@   s   z"ProgbarLogger.on_predict_batch_endc                 C   s   |  | d S r   _finalize_progbarr$   r   r   r   on_epoch_endD      zProgbarLogger.on_epoch_endc                 C   s   | j s
| | d S d S r   )r   r/   r   r   r   r   on_test_endG   s   zProgbarLogger.on_test_endc                 C   s   |  | d S r   r.   r   r   r   r   on_predict_endK   r1   zProgbarLogger.on_predict_endc                 C   s   d| _ d | _d S )Nr   )r
   r   r   r   r   r   r   N   s   
zProgbarLogger._reset_progbarc                 C   s&   | j d u rt| j| jdd| _ d S d S )Nstep)r   r   	unit_name)r   r   r   r   r   r   r   r   r   R   s
   

z!ProgbarLogger._maybe_init_progbarc                 C   sH   |pi }|    |d | _| jdkr"| jj| jt| dd dS dS )zUpdates the progbar.r   FfinalizeN)r   r
   r   r   updatelistitemsr)   r   r   r   r(   X   s   

 zProgbarLogger._update_progbarc                 C   sD   |pi }| j d u r| j| _ | j | j_ | jj| j t| dd d S )NTr6   )r   r
   r   r8   r9   r:   r   r   r   r   r/   a   s
   

 zProgbarLogger._finalize_progbarr   )__name__
__module____qualname____doc__r	   r   r   r    r!   r&   r+   r,   r-   r0   r2   r3   r   r   r(   r/   __classcell__r   r   r   r   r      s$    











	r   N)	keras.src.api_exportr   keras.src.callbacks.callbackr   keras.src.utilsr   keras.src.utils.progbarr   r   r   r   r   r   <module>   s    